<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">A complete algorithm to solve the graph-coloring problem</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Huberto</forename><surname>Ayanegui</surname></persName>
							<email>hayanegui@gmail.com</email>
							<affiliation key="aff0">
								<orgName type="department" key="dep1">Facultad de Ciencias Basicas</orgName>
								<orgName type="department" key="dep2">Ingenieria y Tecnologia</orgName>
								<orgName type="institution">Universidad Autonoma de Tlaxcala</orgName>
								<address>
									<addrLine>Calzada de Apizaquito s/n</addrLine>
									<settlement>Apizaco</settlement>
									<region>Tlaxcala</region>
									<country key="MX">Mexico</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Alberto</forename><surname>Chavez-Aragon</surname></persName>
							<email>albertochz@gmail.com</email>
							<affiliation key="aff0">
								<orgName type="department" key="dep1">Facultad de Ciencias Basicas</orgName>
								<orgName type="department" key="dep2">Ingenieria y Tecnologia</orgName>
								<orgName type="institution">Universidad Autonoma de Tlaxcala</orgName>
								<address>
									<addrLine>Calzada de Apizaquito s/n</addrLine>
									<settlement>Apizaco</settlement>
									<region>Tlaxcala</region>
									<country key="MX">Mexico</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A complete algorithm to solve the graph-coloring problem</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">B30F0F0A55ED061F03153878F9F052D6</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T12:24+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>graph coloring</term>
					<term>simulated annealing</term>
					<term>threshold accepting</term>
					<term>davis &amp; putnam</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The Graph k-Colorability Problem (GCP) is a well known NP-hard problem which consist in finding the k minimum number of colors to paint the vertices of a graph in such a way that any two vertices joined by an edge have always different colors. Many years ago, Simulated Annealing (SA) was used for graph coloring task obtaining good results; however SA is not a complete algorithm and it not always gets the optimal solution. In this paper GCP is transformed into the Satisfiability Problem and then it is solved using a algorithm that uses the Threshold Accepting algorithm (a variant of SA) and the Davis &amp; Putnam algorithm. The new algorithm is a complete one and so it gets better quality that the classical simulated annealing algorithm.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Let G=(V,E) be a graph where V is a set of vertices and E is a set of edges. A kcoloring of G is a partition of V into k sets {V 1 , …, V k }, such that no two vertices in the same set are adjacent, i.e., if v, w belong to V i , 1 i k, then (v, w) not belong to E. The sets {V 1 , …, V k } are referred to as colors. The chromatic number, x(G), is defined as the minimum k for which G is k-colorable. The Graph k-Colorability Problem (GCP) can be stated as follows. Given a graph G, find x(G) and the corresponding coloring. GCP is a NP-hard problem <ref type="bibr" target="#b0">[1]</ref>.</p><p>GCP is very important because it has many applications; some of them are planning and scheduling problems <ref type="bibr" target="#b1">[2]</ref> <ref type="bibr" target="#b2">[3]</ref>, timetabling <ref type="bibr" target="#b3">[4]</ref>, map coloring <ref type="bibr" target="#b4">[5]</ref> and many others. Since GCP is a NP-hard problem, until now there are not known deterministic methods that can solved it in a polynomial time <ref type="bibr" target="#b0">[1]</ref>. So non-deterministic algorithms have been built to solve it; one of them is Simulated Annealing (SA) <ref type="bibr" target="#b5">[6]</ref> that has been used on GCP with good results <ref type="bibr" target="#b6">[7]</ref> <ref type="bibr" target="#b7">[8]</ref>. However, SA is not a complete algorithm and it not always gets the optimal solution.</p><p>The approach used in this paper is to transform GCP into a Satisfiability Problem (or SAT problem) <ref type="bibr" target="#b10">[12]</ref> and then use the algorithm proposed in this paper. We propose to use iteratively the Threshold Accepting (TA) algorithm (a variant of Simulated Annealing) <ref type="bibr" target="#b8">[9]</ref> and then a Davis and Putnam algorithm <ref type="bibr" target="#b9">[10]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Simulated annealing and threshold accepting</head><p>Simulated annealing (SA) <ref type="bibr" target="#b5">[6]</ref> is a stochastic computational technique derived from statistical mechanics to find near global-minimum-cost solutions to large optimization problems. In many instances, finding the global minimum value of an objective function with many degrees of freedom subject to conflicting constraints is an NPcomplete problem, since the objective function will tend to have many local minimums. A procedure for solving optimization problems of this type should sample the search space in such a way that it has a high probability of finding the optimal or a near-optimal solution in a reasonable time. Over the past decade, SA has proven to be a powerful technique that meets these criteria for a wide range of problems. SA exploits an analogy between the way a metal cool and freezes into a minimum energy crystalline structure (the annealing process) and the search for a minimum in a more general system. SA makes a random search which not only accepts changes that increase its cost function f, but also some that decrease it. For this reason, SA uses a control parameter c, which by analogy with the original application is known as the "System Temperature", c starts out high and gradually decreases.</p><p>A deteriorating random move from solution S i to S j is accepted with a probability exp -(f(S j )-f(S i ))/c . If this move is not deteriorating (the new solution S j is better than the previous one S i ) then it is accepted and a new random move is proposed again. When the temperature is high, a bad move can be accepted. As c tends to zero, SA becomes more demanding through accept just better moves. The algorithm for minimization is shown below:</p><formula xml:id="formula_0">Procedure SIMULATED ANNEALING Begin INITIALIZE(S i =initial_solution, c=initial_temperature) k = 0 Repeat Repeat S j = PERTURBATION(S i ) If COST(S j ) &lt;= COST(S i ) Then S i = S j Else If exp(-INC_COST/c) &gt; random[0,1) Then S i = S j Until stochastic equilibrium k = k + 1 c = COOLING(c)</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Until thermal equilibrium End</head><p>The INITIALIZE function starts the initial solution S i and the initial temperature c. The PERTURBATION function makes a random perturbation from S i to generate a neighborhood solution S j . The COST function gets the cost from a solution. The INC_COST function gets the difference in cost between S j and S i . Finally, the COOLING function decreases the actual temperature parameter c.</p><p>A variant of Simulated Annealing (SA) is the Threshold Accepting method (TA). It was designed by Dueck &amp; Scheuer <ref type="bibr" target="#b8">[9]</ref> in order to get a more efficient algorithm than Simulated Annealing. The principal difference, between SA and TA, is the mechanism of accepting the solution randomly chosen from the set of neighbors of the current solution. While SA uses a probabilistic model (see equation ( <ref type="formula">1</ref>)), TA uses a static model: if the difference between the cost values of the chosen solution S j and the current one S i is smaller than a threshold T (or temperature), TA accepts moving to the chosen solution. Otherwise it stays at the current solution. Again, the threshold parameter T is a positive control parameter which decreases with increasing number of iterations and converges to value near to 0. Henceforth, in every iteration some solution deterioration are allowed; this deterioration depends on the current threshold T (see equation ( <ref type="formula">2</ref>)); in this way only improving solutions with almost none deterioration solution are accepted at the end of the process.</p><formula xml:id="formula_1">p(S 1 , S 2 ) = exp(min{f(S 1 )-f(S 2 ), 0}/c) (1)</formula><p>COST(S j ) &lt; COST(S i ) +T  accept S j <ref type="bibr" target="#b1">(2)</ref> For SAT problems, using a good tune method Threshold Accepting yields better results than Simulated Annealing. This could be because TA does not compute the probabilistic function <ref type="bibr" target="#b0">(1)</ref> and does not expend a lot of time making random decisions. The Threshold Accepting algorithm for minimization is the following:</p><formula xml:id="formula_2">Procedure THRESHOLD ACCEPTING Begin INITIALIZE (S i = initial_solution, T = initial_threshold or temperature) k = 0 Repeat Repeat S j = PERTURBATION(S i ) E = COST(S j ) -COST(S i ) If E &lt; T Then S i = S j Until stochastic equilibrium k = k + 1 T = DECREASE_THRESHOLD(T) Until Thermal Equilibrium End</formula><p>Here, the DECREASE_THRESHOLD function is equivalent to the COOLING function in SA and the threshold T is named "temperature" in order to make more evident that TA belongs to Simulated Annealing Like Algorithms class (SALA). SALA uses Simulated-annealing approach with two main loops: internal loop named Metropolis Cycle and external loop called Temperature Cycle. Number of iterations in internal and external loop usually are tuned experimentally <ref type="bibr" target="#b5">[6]</ref>, <ref type="bibr" target="#b8">[9]</ref>. However, recently an analytical method using a Markov model was proposed to tune TA solving SAT problems.</p><p>External loop executed from a initial temperature T i until a final temperature T f and the internal loop builds a Markov chain of length L k which depends on the temperature value T k (k represents the sequence index in Temperature cycle). A strong relation exists between T k and L k in a way that:</p><formula xml:id="formula_3">If T k , L k 0 and if T k 0, L k . (<label>3</label></formula><formula xml:id="formula_4">)</formula><p>Due to TA is applied through a neighborhood structure, V, (PERTURBATION function makes a random perturbation from S i to generate a neighborhood solution S j ), the maximum number of different solutions that can be rejected from S i is the size of its neighborhoods, |V Si |. Then the maximum length of a Markov chain in a TA algorithm is the number of samples that must be taken in order to evaluate an expected fraction of different solutions from V Si at the final temperature T f , this is:</p><formula xml:id="formula_5">L f = C|V Si | . (<label>4</label></formula><formula xml:id="formula_6">)</formula><p>where C varies from 1 C 4.6 (exploration from 63% until 99%), L f is the length of the Markov chain at T f . From (3), L k must be incremented in a similar but inverse way that T k is decremented. Then for the geometric reduction cooling function used by Kirkpartick <ref type="bibr" target="#b5">[6]</ref> , and Dueck and Scheuer <ref type="bibr" target="#b8">[9]</ref>,</p><formula xml:id="formula_7">T k+1 = T k . (<label>5</label></formula><formula xml:id="formula_8">)</formula><p>the incremental Markov chain function must be:</p><formula xml:id="formula_9">L k+1 = L k . (<label>6</label></formula><formula xml:id="formula_10">)</formula><p>where</p><formula xml:id="formula_11">= exp((ln L f -ln L i ) / n). (<label>7</label></formula><formula xml:id="formula_12">)</formula><p>Here, L i is the length of the Markov chain at T i , usually L i = 1, and n is the number of temperature steps from T i to T f through <ref type="bibr" target="#b4">(5)</ref>.</p><p>Now, the maximum and minimum cost increment produced through the neighborhood structure are:</p><formula xml:id="formula_13">Z Vmax = Max{COST(S j ) -COST(S i )}. (<label>8</label></formula><formula xml:id="formula_14">)</formula><formula xml:id="formula_15">Z Vmin = Min{COST(S j ) -COST(S i )}. (<label>9</label></formula><formula xml:id="formula_16">)</formula><p>for all S j V Si , and for all S i S Then T i and T f must be calculated as:</p><formula xml:id="formula_17">T i = Z Vmax . (<label>10</label></formula><formula xml:id="formula_18">)</formula><formula xml:id="formula_19">T f Z Vmin . (<label>11</label></formula><formula xml:id="formula_20">)</formula><p>This way of determining the initial temperature enable TA to accept any possible transition at the beginning of the process, since T i is set as the maximum deterioration in cost that may be produced through the neighborhood structure. Similarly, T f enables TA to have control of the climbing probability until the algorithm performs a greedy local search.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Davis &amp; Putnam Method</head><p>Satisfiablity Problem <ref type="bibr" target="#b10">[12]</ref> (or SAT) is very important in complexity theory.</p><p>Let be a propositional formula like formula <ref type="bibr" target="#b10">(12)</ref>:</p><formula xml:id="formula_21">F = F 1 &amp; F 2 &amp; … &amp; F n (<label>12</label></formula><formula xml:id="formula_22">)</formula><p>where every F i is a disjunction.</p><p>Every F i is a disjunction of propositional formulas such as X 1 v X 2 v..v X r . Every F i is a clause and every X j is a literal. Every literal can take a truth value (0 or false, 1 or truth). In Satisfiability problem a set of values for the literals should be found, in such a way that the evaluation of (12) be true; otherwise if <ref type="bibr" target="#b10">(12)</ref> is not true, we say that F is unsatisfiable. Besides we say that ( <ref type="formula" target="#formula_21">12</ref>) is in Conjunctive Normal Form or CNF.</p><p>The Davis &amp; Putnam method is widely regarded as one of the best deterministic methods for deciding the satisfiability <ref type="bibr" target="#b10">[12]</ref> of a set of propositional clauses <ref type="bibr" target="#b9">[10]</ref>. It is also a complete resolution method. This procedure calls itself after rewriting the input formula according to a number of rules for generating a smaller formula with the same truth value. The rules used for the Davis &amp; Putnam method are: Rule 1: if the input formula has no clauses, then it is satisfiable Rule 2: if it has a clause with no literals, it is unsatisfiable Rule 3:if it has a clause with exactly one literal, then make the literal true and rewrite the formula accordingly Rule 4:if some variable appear only positively or negatively, then pick one such variable and assign a value to it to make the literal true, and rewrite the formula accordingly</p><p>If none rule could be applied, one picks up an arbitrary variable as a branching point and two new formulas are derived by assigning 0 and 1 to this variable. If one of the calls returns with the positive answer the input is satisfiable; otherwise, it is unsatisfiable. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>The Davis &amp; Putnam algorithm is shown below:</head><formula xml:id="formula_23">V from C Endif Endfor Return formula End_SUBSTITUTION Node 1: X 11 v X 12 v X 13 v X 14 Node 2: X 21 v X 22 v X 23 v X 24 Node 3: X 31 v X 32 v X 33 v X 34 Node 4: X 41 v X 42 v X 43 v X 44</formula><p>2) To avoid the fact that a node has more that one color, add the formula X ij ~X ik 3) In order to be sure that two nodes (V i ,V j ) connected with an arc have different colors, add a clause such that if V i has color k, V j should not be color with this color. This clause is writing as X ik ~X jk . 4) In order to know which nodes are connected with an edge, an adjacent matrix A of the graph is needed; its elements are:</p><formula xml:id="formula_24">1 if i is connected with j A ij = 0 otherwise</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Fig. 1. Graph coloring example</head><p>The reduction of a graph to the Conjunctive Normal Form (CNF) generates so many clauses even for small graphs. For example, for a full graph with 7 nodes (42 edges), 308 clauses with 98 literals can be generated. If we use Davis &amp; Putnam algorithm to color a graph, we could start coloring with R colors (the graph's degree or from a number given). If it is not possible to color it, then we can increase R and try again.</p><p>Due to find a large chromatic number x(G) is a very hard task for a complete method as Davis &amp; Putnam (it demands many resources), we need an incomplete method to help in this task. For this reason we have chosen the Threshold Accepting method. TA will search the chromatic number, but as it is known TA not always get the optimal solution. By this reason, the number found by TA is send to a Davis &amp; Putnam procedure, and this one will get the optimal solution. The complete process is shown in the figure <ref type="figure">2</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Fig.2. Description of the coloring process</head><p>Any graph can be colored with Gmax+1 colors, where Gmax represents the graph degree. For this reason, TA will try coloring with Gmax colors. If TA gets a success, then TA will try to color with Gmax-1, and so on. When TA finishes, it sends to the output the minimum k of colors founded. In other case, when TA can not color with Gmax colors, then it will send k=Gmax+1 to Davis &amp; Putnam procedure.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Fig.3. Binary partitions</head><p>Davis &amp; Putnam will attempt to decrease the value of k through binary partitions. The first attempt, Davis &amp; Putnam will choose the number of colors given by (1+k)/2. If the coloring is right, it will color with (1+(1+k)/2)/2 colors, i.e., the left half. Otherwise, the algorithm will color with ((1+k)/2+k)/2 colors, the right half. This process continues until Davis &amp; Putnam cannot decrease k. So, the chromatic number was found. This situation is shown in figure <ref type="figure">2</ref>.</p><p>The figure <ref type="figure">3</ref> shows an example where TA found the number nine as its better solution and it is send to Davis &amp; Putnam procedure. When Davis &amp; Putnam takes the last TA solution, using binary partitions and other rules the optimal solution is waited. For example in the case of the figure <ref type="figure">3</ref>, if Davis &amp; Putnam can not color with five colors, it moves to other alternative, trying with seven colors. Finally, in the last partition, i.e. (7+9)/2, can not color the graph and so the result is a chromatic number equal to nine.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion</head><p>In this paper we presented an algorithm based on Threshold Accepting and Davis &amp; Putnam, to solve the Graph k-Colorability Problem. Because this problem is an NPhard problem there is not a known deterministic efficient (polinomial) method. Nondeterministic methods are in general more efficient but an optimal solution is not guarantee. This method is a new alternative that promises to be more efficient that the previous ones. The main contributions of this paper are enumerated below. 1) We proposed a way to transform the graph k-colorability problem into a satisfiability problem. 2) In order to solve the former problem we proposed a new approach which makes use of the threshold accepting and Davis &amp; Putnam algorithms. 3) The resulting algorithm is complete and using it we can get better results that the wellknown simulated annealing algorithm.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Function</head><label></label><figDesc>DAVIS-PUTNAM(In formula : clauses list) Begin REDUCE(formula, vreduce) If formula is empty Then Return vreduce Else If formula has a clause with no literals Then Return fail Else Choose a literal V from formula valuation=DAVIS-PUTNAM(SUBSTITUTION(true,V, formula)) If valuation != fail Then Return ADD(V=true, vreduce, valuation) valuation=DAVIS-PUTNAM(SUBSTITUTION(false,V, formula)) If valuation != fail Then Return ADD(V=false, vreduce, valuation) Return fail Endif End DAVIS-PUTNAM Function SUBSTITUTION (TF, V, formula) Begin For Each one clause C In formula Do If [C contain V and TF=true]or [C contain ~V and TF=false] Then delete C from formula Else If [C contain V and TF=false]or [C contain ~V and TF=true] Then delete</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="9,144.95,215.75,305.30,216.50" type="bitmap" /></figure>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The DAVIS-PUTNAM function is the main function and it selects randomly a literal to set a true a group of values in order to create unitary clauses. If that true set values is not the correct solution the complement set of true values is tried. If the new assignment is neither a satisfiable solution, then the formula is unsatisfiable.</p><p>The function SUBTITUTION makes the propagation of one literal over all the clauses in formula, deleting clauses where occurs the positive literal L and its value is 1 (true). Therefore the clauses where ~L occurs can delete that literal.</p><p>The REDUCE function carries out the search of unitary clauses, so that it can be possible propagate through the function SUBSTITUTION.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Graph Coloring through Accepting and Davis &amp; Putnam</head><p>Informally coloring a graph with k colors or Graph k-Colorability Problem (GCP) is stated as follows: Is it possible to assign one of k colors to each node of a graph G=(V,E), such that no two adjacent nodes be assigned the same color? If answer is positive we say that the graph is k-colorable and k is the chromatic number x(G). It is possible to transform Graph k-Colorability Problem (GCP) into Satisfiability problem (SAT); that means that for a given graph G=(V,E) and a number k, it is possible to derive a CNF formula F such that F is satisfiable only in the case that G is kcolorable. The formulation of GCP as SAT is made assigning X Boolean variables as follow:</p><p>1) Take every node and assign a Boolean variable X ij for every node i and color j; the disjunction of all these variables. In this way every node will have at least one color. Therefore, in the case of figure <ref type="figure">1</ref>, we have the clauses:</p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Computers and Interactability: A Guide to the Theory of NP-Completeness</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">R</forename><surname>Garey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">S</forename><surname>Johnson</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1979">1979</date>
			<publisher>Freeman</publisher>
			<pubPlace>San Francisco</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Design Planning, Scheduling and Control Problems of Flexible Manufacturing</title>
		<author>
			<persName><forename type="first">K</forename><surname>Stecke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Annals of Operations Research</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="page" from="3" to="12" />
			<date type="published" when="1985">1985</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">A Graph Coloring Algorithm for Large Scheduling Problems</title>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">T</forename><surname>Leighton</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. Res. Nat. Bur. Standard</title>
		<imprint>
			<biblScope unit="volume">84</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="489" to="506" />
			<date type="published" when="1979">1979</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A Technique for Coloring a Graph Applicable to Large Scale Timetable Problems</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">C</forename><surname>Wood</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computer Journal</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="page" from="317" to="322" />
			<date type="published" when="1969">1969</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">New Methods to Color Vertices of a Graph</title>
		<author>
			<persName><forename type="first">D</forename><surname>Brelez</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Comm. ACM</title>
		<imprint>
			<biblScope unit="volume">22</biblScope>
			<biblScope unit="page" from="251" to="256" />
			<date type="published" when="1979">1979</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Optimization by Simulated Annealing</title>
		<author>
			<persName><forename type="first">S</forename><surname>Kirkpatrick</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">D</forename><surname>Gelatt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">P</forename><surname>Vecchi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Science</title>
		<imprint>
			<biblScope unit="volume">220</biblScope>
			<biblScope unit="page" from="671" to="680" />
			<date type="published" when="1983">1983</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Some Experiments with Simulated Annealing for Coloring Graphs</title>
		<author>
			<persName><forename type="first">M</forename><surname>Chams</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Hertz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>De Werra</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">European Journal of Operational Research</title>
		<imprint>
			<biblScope unit="volume">32</biblScope>
			<biblScope unit="page" from="260" to="266" />
			<date type="published" when="1987">1987</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Optimization by Simulated Annealing: An Experimental Evaluation; Part II: Graph Coloring and Number Partitioning</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">S</forename><surname>Johnson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">R</forename><surname>Aragon</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">A</forename><surname>Mcgeoch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Schevon</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Oper. Res</title>
		<imprint>
			<biblScope unit="volume">39</biblScope>
			<biblScope unit="page" from="378" to="406" />
			<date type="published" when="1991">1991</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Threshold Accepting: A General Purpose Optimization Algorithm Appearing Superior to Simulated Annealing</title>
		<author>
			<persName><forename type="first">Dueck</forename><surname>Gunter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Scheuer</forename><surname>Tobias</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Computational Physics</title>
		<imprint>
			<biblScope unit="volume">90</biblScope>
			<biblScope unit="page" from="161" to="175" />
			<date type="published" when="1990">1990</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">A Computing Procedure for Quantification Theory</title>
		<author>
			<persName><forename type="first">M</forename><surname>Davis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Putnam</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of the Association for Computing Machinery</title>
		<imprint>
			<biblScope unit="volume">7</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="201" to="215" />
			<date type="published" when="1960">1960</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Science and Technology Center in Discrete Mathematics and Theoretical Computer Science</title>
	</analytic>
	<monogr>
		<title level="m">Dimacs Series in Discrete Mathematics and Theoretical Computer Science</title>
				<editor>
			<persName><forename type="first">Jun</forename><surname>Gu</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Panos</forename><surname>Pardalos</surname></persName>
		</editor>
		<editor>
			<persName><surname>Ding-Zhu</surname></persName>
		</editor>
		<imprint/>
	</monogr>
	<note>Satisfiability Problem: Theory and Applications</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
