CSCI 5240 Combinatorial Search and Optimization with Constraints CSC5240 - Introduction
Administrative Tidbits Instructor: Jimmy Lee, SHB 1009, x38426, <jlee@cse.cuhk.edu.hk> Tutor: Kobi Lei, SHB 1005, x38422, <kmlei@cse.cuhk.edu.hk> Course information dissemination and discussion: newsgroup <cuhk.cse.csci5240> and homepage <http://www.cse.cuhk.edu.hk/csci5240> Evaluation criteria: assignments (30%), paper presentation (30%), and project (40%) CSC5240 - Introduction
The Graph Coloring Problem Color the following graph using {R,G,B} so that no neighbouring nodes share the same color CSC5240 - Introduction
Crytarithmetic Puzzles S E N D D O N A L D +) M O R E +) G E R A L D ------------------ ----------------------- M O N E Y R O B E R T CSC5240 - Introduction
Solution of Numerical Systems Real variables 3X1 + 4X2 + 6X3 > 5 12X1 - 6X2 + 7X3 = 67 X12 + X22 >= 7 CSC5240 - Introduction
SAT and Boolean Systems Variables are of Boolean type X1X2 + X2X3 + X3X4 + X4X5 = T X1X2X3 + X2X3X4 = F X1X3X4 + X1X2 + X5 = T X2X4 + X5X1 = T CSC5240 - Introduction
Scene Labelling Probably the first constraint satisfaction problem Recognize objects in 3D scene by interpreting lines in 2D drawings + - CSC5240 - Introduction
Interactive Graphics CSC5240 - Introduction
Scheduling Problems Production scheduling (InSol Ltd.) Well-activity scheduling (Saga Petroleum) Planning production of jets (Dassault Aviation) CSC5240 - Introduction
Car Sequencing Sequence the cars on production conveyer belt, satisfying various resource constraints Posed as a challenge to the AI community in 1986 Breakthrough using constraints in 1988 CSC5240 - Introduction
Application Domains - 1 Timetabling, resource allocation, spatial and temporal reasoning, binpacking Airport counter allocation, Nurse rostering, Ship berth allocation, Flight crew rostering, Train rescheduling, Basketball league scheduling Network management and configuration Telecommunication networks cabling planning, Optimal placement of base stations in wireless networks CSC5240 - Introduction
Application Domains - 2 Molecular biology: DNA sequencing Scene labeling, manufacturing, AI planning Finite element analysis, linear programming Analog and digital circuit design VLSI CAD, circuit simulation Satellite camera scheduling More … What do the examples share in common? CSC5240 - Introduction
Constraint Satisfaction Problems A finite set of unknowns, each of which is associated with a set of feasible values Problem-specific conditions are imposed on the unknowns to limit the combinations of values that the unknowns can take The aim is to find a “consistent” assignment of values to the unknowns Extremely difficult to solve!!!! CSC5240 - Introduction
Constraint Programming - 1 A C program for converting Fahrenheit (F) to Celsius (C) would contain: C := (F - 32) * 5/9 How about converting Celcius to Fahrenheit? F := 32 + 9/5 * C How about converting temperatures to and from Kelvin (K) as well? CSC5240 - Introduction
Constraint Programming - 2 K := C - 273 C := K + 273 K := 290.78 + 5/9*F F := 523.4 + 9/5*K Wouldn’t it be nice if we can simply state the following relationship ? C = (F - 32) * 5/9 K = C - 273 CSC5240 - Introduction
Constraint Programming - 3 Constraint Programming is declarative: programmer states the relations between a set of objects and the constraint solver finds a solution satisfying the relations multimodal: the ability to solve many different problems with the same program, even if they were not anticipated when the program was written extensible: easy to modify and extend CSC5240 - Introduction
Course Outline - 1 Constraint Satisfaction Techniques Basic terminologies and definitions Examining various constraint domains Algorithms for constraint satisfaction and optimization Mathematical programming Systematic and local search Finite domain constraints and combinatorial problems CSC5240 - Introduction
Course Outline - 2 Programming with Constraints Use of Constraint Programming systems CP = Modeling + Search Simple modeling techniques Controlling search Model search Solution search Modeling with finite domain constraints CSC5240 - Introduction
Constraint programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming: the user states the problem, the computer solves it. Eurgene C. Freuder, 1997 CSC5240 - Introduction
Summary An emergent software technology with strong theoretical foundation and widespread commercial interest Identified in 1997 by ACM as one of the strategic directions in computing research Read the success stories of 4C in the course page CSC5240 - Introduction
Mystery Shoppers Problem Details of the problem available at the course homepage A well-known cosmetic company wants to evaluate the performance of her 35 salesladies, who station at the company's counters at 19 department stores in 4 different geographical regions. For this purpose, the company has hired 40 secret agents of different categories (age, professions, etc) to disguise as shoppers to visit the salesladies. Each shopper has to visit 3 to 4 salesladies and each saleslady has to be visited by 4 shoppers. Two of these visits must be in the first two weeks. The visits must be scheduled in such a way that each saleslady must be visited by shoppers of different varieties, and that shoppers should visit salesladies in different geographic regions. The assessment period is 4 weeks. CSC5240 - Introduction
Acknowledgement With the consent of Roman Bartak, I have shamelessly adopted and adapted a number of slides produced by him for use in this presentation I am solely responsible, however, for any errors therein CSC5240 - Introduction