Solving Constraint Satisfaction Problems in Java - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Solving Constraint Satisfaction Problems in Java

Description:

Solving Constraint Satisfaction Problems in Java Nico van Hanxleden Houwert nhouwert_at_iprofs.nl * * * * * * * * * * * * * * * * * Topics Wat zijn Constraint ... – PowerPoint PPT presentation

Number of Views:179
Avg rating:3.0/5.0
Slides: 29
Provided by: IPR9
Category:

less

Transcript and Presenter's Notes

Title: Solving Constraint Satisfaction Problems in Java


1
SolvingConstraint Satisfaction Problemsin Java
  • Nico van Hanxleden Houwert
  • nhouwert_at_iprofs.nl

2
Topics
  • Wat zijn Constraint Satisfaction Problems?
  • Wat maakt CSPs zo lastig?
  • Hoe los je ze op?
  • Java CSP frameworks
  • Demonstratie en code

3
Wat zijn CSPs?
  • Normale problemen reguliere algoritmes
  • B.v. omrekenen graden Celcius ? Fahrenheit
  • Lage complexiteit, eenduidig algoritme
  • Input ? berekening ? output
  • Stapje verder zoekprobleem legpuzzel
  • Niet eenduidig
  • Ietwat zoeken
  • Maar niet complex
  • En probleem kan in
  • stukken gehakt worden

4
Planning Commerciële Haven
  • Variabelen 10 schepen, 5 aanlegplaatsen
  • Welk schip wanneer op welke aanlegplaats?
  • Veel constraints (voorwaarden)
  • Opstellen van goed of optimaal rooster
  • Puzzelprobleem, geen eenduidig algoritme
  • Hoge complexiteit / veel afhankelijkheden
  • Niet deelbaar
  • Grote zoekruimte
  • 510 10.000.000 mogelijkheden
  • Oplossingmogelijkheid brute-force 3u rekentijd

5
10 Jaar Later
  • 20 schepen en 10 aanlegplaatsen
  • 1020 mogelijkheden -gt 3.000.000.000 jaar
  • 100x krachtigere processor aanschaffen?
  • Probleem in stukken hakken 2x 3u 6u?
  • Dit is een CSP
  • Zoekprobleem geen eenduidig algoritme
  • Hoge complexiteit / veel afhankelijkheden /
    constraints
  • Zeer grote zoekruimte
  • Combinatorische explosie

6
Andere voorbeelden van CSPs
  • Opstellen van vluchtroosters op Schiphol
  • Opstellen treinroosters bij de NS
  • Opstellen rooster voor de J-Fall
  • Puzzels (schaken, dammen, Sudoku,
    kruiswoordpuzzels, GO, etc.)
  • Logistieke problemen
  • Resource allocation
  • Elektronica (circuit design)

7
Wat maakt CSPs zo lastig?
  • Zoek-/puzzel-problemen
  • Niet oplosbaar middels reguliere algoritmes
  • Clay Mathematics Institute biedt 1.000.000,-
  • Hoge mate van complexiteit
  • Veel afhankelijkheden
  • Zeer grote zoekruimten
  • Combinatorische explosie

8
N-Queens
9
N-Queens
  • N-queens is een CSP
  • Zoekruimte
    mogelijkheden
  • 8-queens 64x63x62x61x60x59x58x57 / 8!
    4.426.165.368 mogelijkheden
  • Slechts 92 oplossingen,
  • waarvan slechts 12 uniek (speld in hooiberg)
  • 1 mogelijkheid/msec 51 dagen rekentijd
  • 20-queens 88.418.346.767.849.338.466.287 jaar
    88,5 triljard jaar (combinatorische explosie)

10
Algoritmiek voor CSPs
  • Recht-toe/recht-aan algoritmes zijn er niet
  • Brute-force algoritmes werken niet
  • Zoekalgoritmes?

11
Backtracking
- Backtracking (depth- first search) -
Efficiënter dan brute- force, maar niet
voldoende - Constant op fouten stuiten en
moeten backtracken is duur - Supercomputer
komt momenteel tot /- n25 binnen enkele uren
12
Hoe los je CSPs dan wel op?
  • Allereerst, formele definitie CSP
  • Verzameling variabelen V x1, ..., xn
  • Verzameling domeinen D d1, , dn
  • Verzameling constraints C c1, , cm
  • B.v.
  • V x, y, z
  • Dx Dy Dz 010,
  • C1 x 4, C2 x lt y, C3 y gt z

13
Weergave Middels CSP-Graaf
  • 3 variabelen, 3 domeinen, 3 constraints
  • 1 unaire constraint, 2 binaire constraints
  • Oplossing (b.v.) x 4, y 6, z 5

14
Hoe los je CSPs dan wel op?
  • Basis systematic search backtracking
  • Maar, verrijkt met een aantal technieken
  • Consistency techniques
  • Deze worden uitgevoerd voordat gezocht wordt
  • Node-consistency verwijdert alle unaire
    constraints werkt de domains bij
  • Arc-consistency een binaire constraint tussen 2
    variabelen X en Y is arc consistent indien alle
    waarden in beide domeinen consistent zijn met de
    constraint. Een arc consistency algoritme
    verwijdert alle waarden uit de domeinen waarvoor
    dit niet geldt

15
Constraint Propagation
  • Intelligente vorm van backtracking
  • Gewone backtracking instantieert variabelen
    incrementeel, en herstelt van ongeldige
    instantiaties nadat deze gedetecteerd zijn
  • Constraint propagation voorkomt ongeldige
    instantiaties door deze van tevoren te detecteren
    en ze over te slaan
  • Dit door de constraints te integreren
    (propageren) in het zoekproces

16
Constraint Propagation
  • Instantieer een variabele
  • Kijk naar de andere variabelen die middels een
    constraint hiermee verbonden zijn
  • Verwijder uit de domains van die andere
    variabelen alle waarden die in conflict zijn met
    de huidige variabele (n.a.v. de constraints)
  • Zodra de domain(s) leeg zijn weet je dat je niet
    verder hoeft te zoeken in die richting -gt
    backtrack

17
Backtracking vs. Constraint Prop.
  • Backtracking Constraint prop.

18
Variable Ordering
  • In welke volgorde variabelen bezoeken?
  • Statische dynamische ordering algoritmes
  • MRV (Minimum Remaining Values)
  • Heuristiek Fail First Principle To succeed,
    try first where you are most likely to fail
  • Variabele met de minst resterende waarden
    (kleinste domein)
  • Hiermee doodlopende takken in de zoekboom z.s.m.
    detecteren, en hiermee de grootte van de zoekboom
    minimaliseren

19
Value Ordering
  • Zodra de volgende te bezoeken variabele bepaald
    is in welke volgorde de mogelijke waarden
    toekennen?
  • Populair algoritme LCV (Least Constraining
    Value)
  • Heuristiek kies de waarde die de minste waarden
    uit de domeinen van de andere variabelen
    elimineert

20
Hoe los je CSPs dan wel op?
  • Samenvattend
  • Kunnen we CSPs efficiënter oplossen?
  • Yes we can
  • Node-consistency arc-consistency
  • Constraint propagation (intelligente
    backtracking)
  • Dynamic variable ordering dynamic value
    ordering
  • Echter - als developer wil je je focussen op het
    probleem, en niet op alle algoritmen (en
    varianten erop)

21
Java CSP Frameworks
  • Commerciële en open-source frameworks beschikbaar
  • Voordelen
  • Off-the-shelf algoritmes
  • Abstractielaag waarmee CSPs eenvoudiger
    gemodelleerd kunnen worden
  • O.a. ILOG en CREAM

22
CREAM
23
N-Queens in CREAM
  • Eerst n-queens als CSP modelleren
  • n variabelen
  • representatie
  • Qi Q1, , Qn
  • index is kolom, waarde rij
  • n domeinen (1n)
  • constraints 4 typen

1. ongelijke kolommen
1. i ? j ? (automatisch)
2. ongelijke rijen
2. Qi ? Qj ? ? Qn
3. ongelijke diagonalen \
3. Qii ? Qjj ? ? Qnn
4. ongelijke diagonalen /
4. Qi-i ? Qj-j ? ? Qn-n
1, 2, 6, 5, 7, 3, 8,
4
24
N-Queens in CREAM
public class QueensCSPSolver // Declare
Network, Solver, Solution and Variables
IntVariable queens Network net Solver
solver Solution sol ... void
solveQueens(int nrQueens) queens new
IntVariablenrQueens // Initialise
Variables with their Domains for (int i 0
i lt nrQueens i) queensi new
IntVariable(net, 1, nrQueens)
25
N-Queens in CREAM
// Add the first set of Constraints //
(Queens must be on different rows) new
NotEquals(net, queens) ... //
Initialise the solver solver new
DefaultSolver(net) // Solve the
problem iterate through all solutions for
(solver.start() solver.waitNext()
solver.resume()) // Get a solution
solution solver.getSolution()
26
N-Queens in CREAM
// Print the solution // Uses
solution.getIntValue(queensi)
printBoard()
// Stop the solver solver.stop()
  • Korte demonstratie
  • Backtracking n 8 ok, n 20 ok, n 30 nok
  • CSP/CREAM n 8 ok, n 20 ok, n 50 ok, n 70
    ok, n 100 ok,

27
Enkele Statistieken
28
Afsluiting
  • Samenvattend
  • Q A
  • Meer informatie en whitepapers www.iprofs.nl
Write a Comment
User Comments (0)
About PowerShow.com