We completed the description of search landscape characteristics by adding the concepts of plateaus, basins and barriers. Moreover, with focus on the SAT problem, we discussed the phenomenon of phase transition which explains where problems become harder. This concept is related with the concept of solution backbones. Finally, we shortly mentioned the concept of epistasis and the NK model.
In regards to the Traveling Salesman Problem, we gave the solution of Exercise 1 in the weekly notes of Week 3 and pointed out which of the four 3-opt reconstructions is used for the asymmetric TSP. In addition, with concern to efficiency, we mentioned which are data structures that are most suitable. We then discussed Construction Heuristics and Iterative Improvements for the other permutation problem: the SMTWTP. We considered the earliest due date, modified due date and apparent urgency heuristics and the interchange, insert and swap neighborhood based iterative improvements. We pointed out possible speed-ups in the neighborhood exploration of the insert and interchange operators. Afterward, we focused on assignment problems, giving the definition of neighborhood operators and relative distances. The assignment problem we considered is the graph coloring problem and for this one we review three construction heuristics: those based on greedy coloring with static or dynamic order (this last one called DSATUR) and the one based on the partition representation (RLF). In addition we review the different approaches with the corresponding neighborhoods and evaluation functions for solving the GCP by iterative improvement. The material relative to the GCP is treated in the survey [1] available from the course section Literature.
In the third part of the lecture we focused on Iterative Improvement Extensions. These arise when there is more than one neighborhood available. The union or composition is not the best choice and Variable Neighborhood Descent or Variable Depth Search are preferred. An example of Variable Depth Search is the Lin Kernighan algorithm for the TSP. We outlined the general procedure of this algorithm.
Note: completing all exercises with code development can be perhaps demanding for a single week time with also assignments from other courses. It is however important to try at least to answer the questions and design in all the details the algorithms. Clearly, understanding which are all the details requires practice, ie, code implementation.
In the lecture we discussed the phase transition for the SAT problem. This phenomenon has been studied also in other combinatorial problems. Appealing for its similarity with the SUDOKU is the Latin Square Completion problem. A demo, available at http://www.cs.cornell.edu/gomes/QUASIdemo.html, characterizes the rise of the phase transition on this problem. Explore the demo.
Implement the following construction heuristics for the Graph Coloring Problem (all based on the greedy coloring heuristic):
Provide an analysis of the computational complexity for each heuristic and test the heuristics on the instance DSJC1000.5 available from the DIMACS repository for graph coloring benchmark instances (http://mat.gsia.cmu.edu/COLOR04/). Report the results by means of a histogram of the number of colors found from a sample of 100 runs per heuristic. The C++ code for reading the instances and a solution checker program are available from the section Course Resources.
Implement an Iterative Best Improvement for Graph Coloring under the
approach
-fixed, complete improper colorings with
one-exchange neighborhood. Use one of the construction heuristics from
Exercise 2 to provide a starting solution and a random reassignment of
vertices when removing one color. Devote particular attention at
implementation of the delta evaluation in a one exchange move. In
particular find a way to examine the whole neighborhood in
,
where
is the set of vertices currently involved in a constraint
violation. In order to do this, an auxiliary matrix
is
needed reporting the delta for each pair
. Determine the
computational complexity to initialize the matrix and update it after
each one-exchange move. Test the obtained algorithm on the instance
DSJC1000.5 and plot a histogram of the improvement occurred in
each run over the construction heuristic which provides the initial
solution.
Exercise 1 suggested that the SUDOKU can be formalized as a graph
coloring problem. In this case the graph is a structured graph very
similar to Latin Squares. Take an instance of SUDOKU and code it as an
instance for graph coloring. Test the algorithms developed in Exercises
2 and 3 on this instance. Note that it is possible to deal with the
preassignment of colors in two ways: 1) treating them as fixed color
assignments in the algorithm 2) transforming the graph
with
precolored vertices in an uncolored graph
. Show how to achieve
case 2).