Skip to content

Commit 56013e9

Browse files
authored
Add files via upload
1 parent a5c2a92 commit 56013e9

File tree

1 file changed

+77
-4
lines changed

1 file changed

+77
-4
lines changed

README.md

+77-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,77 @@
1-
# Graph Coloring Problem
2-
This project consists in the implementation of algorithms to solve the NP-hard problem of Minimum Graph Coloring.
3-
4-
An heuristic algorithm along with an exact algorithm will be implemented.
1+
# Minimum Graph Coloring Problem
2+
3+
![GitHub last commit](https://img.shields.io/github/last-commit/1danielsc/GraphColoringProblem) ![GitHub issues](https://img.shields.io/bitbucket/issues-raw/1danielsc/GraphColoingProblem) ![Programming language](https://img.shields.io/github/languages/top/1danielsc/GraphColoringProblem)
4+
5+
> Status: Developing ⚠️
6+
7+
8+
## Table of Contents
9+
10+
- [Description](#1-description)
11+
- [Requirements](#2-requirements)
12+
- [Compilation](#3-compilation)
13+
- [How to run it](#4-how-to-run-it)
14+
- [Roadmap](#5-roadmap)
15+
- [License](#6-license)
16+
17+
18+
## 1. Description
19+
20+
The Minimum Graph Coloring is a well-known NP-Hard combinatorial optimization problem that consists on assigning the least number of different colors to the vertices of a graph such that every two adjacent vertices are colored with distinct colors.
21+
22+
This project aims to find the chromatic number of an undirected graph.
23+
24+
Three heuristic algorithms were implemented, one based on Simulated Annealing metaheuristic, along with two exact algorithms.
25+
26+
The DIMACS graphs are used as instance files. Available [here](https://mat.tepper.cmu.edu/COLOR04/INSTANCES/) and [here](https://unsat.github.io/npbench/graphcoloring.html).
27+
28+
## 2. Requirements
29+
You should have [Java JDK 11](https://www.oracle.com/java/technologies/downloads/#java11) installed on your computer.
30+
31+
32+
## 3. Compilation
33+
34+
35+
36+
You should open the command line and and then open the directory on which you extracted the project.
37+
38+
Being on NP-Hard directory, you should execute the following code on the command line:
39+
40+
- cd src
41+
- cd Classes
42+
- javac *.java
43+
44+
## 4. How to run it
45+
46+
Access the directory _src_ through the command line and then type _java Classes.Application_ and execute it.
47+
48+
### 4.1 Instance File
49+
50+
As soon as you run the program, you'll be asked to type the name of a instance file to compute its chromatic number.
51+
52+
You should write the file name along with ".txt" at the end.
53+
54+
>Example: david.txt
55+
56+
### 4.2 Running exact algorithms
57+
58+
You'll also be asked whether you'd like or not to run the Brute Force and Backtracking exact algorithms.
59+
60+
For those you'd like to run, it is enough to type "yes".
61+
62+
### 4.3 Setting up Simulated Annealing parameters
63+
64+
Before running the heuristic based on Simulated Annealing, you'll be asked to set the initial temperature (T_0), the iterations per temperature (L) and the cooling rate (alpha).
65+
66+
## 5. Roadmap
67+
68+
Features to be added and corrected in the future:
69+
70+
- Change the random neighbor method of Simulated Annealing as it has not improved the solution quality.
71+
72+
73+
## 6. License
74+
75+
[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)
76+
77+
[MIT licensed.]("https://github.com/1DanielSC/BinarySearchTree/blob/main/LICENSE")

0 commit comments

Comments
 (0)