Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Graph coloring
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Applications == === Scheduling === Vertex coloring models to a number of [[Scheduling (computing)|scheduling problems]].{{sfnp|Marx|2004}} In the cleanest form, a given set of jobs need to be assigned to time slots, each job requires one such slot. Jobs can be scheduled in any order, but pairs of jobs may be in ''conflict'' in the sense that they may not be assigned to the same time slot, for example because they both rely on a shared resource. The corresponding graph contains a vertex for every job and an edge for every conflicting pair of jobs. The chromatic number of the graph is exactly the minimum ''makespan'', the optimal time to finish all jobs without conflicts. Details of the scheduling problem define the structure of the graph. For example, when assigning aircraft to flights, the resulting conflict graph is an [[interval graph]], so the coloring problem can be solved efficiently. In [[bandwidth allocation]] to radio stations, the resulting conflict graph is a [[unit disk graph]], so the coloring problem is 3-approximable. === Register allocation === {{Main|Register allocation}} A [[compiler]] is a [[computer program]] that translates one [[computer language]] into another. To improve the execution time of the resulting code, one of the techniques of [[compiler optimization]] is [[register allocation]], where the most frequently used values of the compiled program are kept in the fast [[processor register]]s. Ideally, values are assigned to registers so that they can all reside in the registers when they are used. The textbook approach to this problem is to model it as a graph coloring problem.{{sfnp|Chaitin|1982}} The compiler constructs an ''interference graph'', where vertices are variables and an edge connects two vertices if they are needed at the same time. If the graph can be colored with ''k'' colors then any set of variables needed at the same time can be stored in at most ''k'' registers. === Other applications=== The problem of coloring a graph arises in many practical areas such as sports scheduling,{{sfnp|Lewis|2021|loc=Chapter 8: Designing sports leagues|pp=221β246}} designing seating plans,{{sfnp|Lewis|2021|loc=Chapter 7: Designing seating plans|pp=203β220}} exam timetabling,{{sfnp|Lewis|2021|loc=Chapter 9: Designing university timetables|pp=247β276}} the scheduling of taxis,{{sfnp|Lewis|2021|loc=Section 1.1.3: Scheduling taxis|pp=5β6}} and solving [[Sudoku]] puzzles.{{sfnp|Lewis|2021|loc=Section 6.4: Latin squares and sudoku puzzles|pp=172β179}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)