Skip to the content.

Graph Coloring

Screen Shot License

🚀 Getting Started

A cross-platform application to build graphs and run graph coloring algorithms on them, you can download this app from :

🍄 Introduction

Graph coloring

Graph coloring is one of the most important concepts in graph theory and is used in many real-time applications in computer science. It can be defined as a problem of how to assign colors to certain elements of a graph given some constraints. It is especially used in science research areas such as data mining, image segmentation, clustering, image capturing, networking etc. Vertex coloring is the most common application of graph coloring. In vertex coloring, given m colors, the aim is to find the coloring of vertices of the graph such that no two adjacent vertices have the same color (Here, adjacent means that an edge directly connects two vertices). If this goal is achieved, the graph is said to have proper coloring.

Algorithms

Welsh Powell

The algorithm used is a greedy coloring, so it is guaranteed to find a coloring that may or may not be optimal. The specific algorithm is the Welsh-Powell algorithm. Read more about it on Wikipedia.

The standard HS mimics the music improvisation process to solve optimization problems. However, it is not suitable for binary representations. This is due to the pitch-adjusting operator not being able to perform the local search in the binary space

Genetic Algorithm

A genetic algorithm is a search heuristic that is inspired by Charles Darwin’s theory of natural evolution. This algorithm reflects the process of natural selection where the fittest individuals are selected for reproduction in order to produce offspring of the next generation.

✨ Features

Supported Algorithms:

Editing

Import Graph

Export Graph

👦 Implementation

I used angular and electron for developing my application for cross-platform application

Currently runs with:

👽 Develop

If you want to build this app locally or develop this repo

npm install

To build for development

 npm start

You can deactivate “Developer Tools” by uncommenting win.webContents.openDevTools(); in main.ts.

Included Commands

You can find commands for build-in browser or Windows, Linux , mac in package.json

☑ TODO

Algorithms

Algorithm Improvement

Application

👬 Contribution

Help me in this application with your feedback and your discussion

Please title your issue with [Bug] or [Feature Request] depending on if your issue is a bug or a feature request.