Sztuczna Inteligencja i Systemy Doradcze

Podobne dokumenty
SID Wykład 2 Przeszukiwanie

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Sztuczna Inteligencja i Systemy Doradcze

SID Wykład 3 Przeszukiwanie iteracyjne

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Sztuczna Inteligencja i Systemy Doradcze

Heurystyczne metody przeszukiwania

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Wysokość drzewa Głębokość węzła

Kolorowanie wierzchołków grafu

Sortowanie topologiczne skierowanych grafów acyklicznych

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Metody przeszukiwania

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Porządek symetryczny: right(x)

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Rozwiązywanie problemów metodą przeszukiwania

Heurystyki. Strategie poszukiwań

Wprowadzenie do Sztucznej Inteligencji

Sztuczna Inteligencja i Systemy Doradcze

Wprowadzenie do Sztucznej Inteligencji

Algorytmy i struktury danych. wykład 5

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

Sztuczna Inteligencja Projekt

Przykładowe B+ drzewo

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Wstęp do programowania. Listy. Piotr Chrząstowski-Wachtel

Wprowadzenie do Sztucznej Inteligencji

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Podstawowe własności grafów. Wykład 3. Własności grafów

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Podstawy sztucznej inteligencji

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

WYKŁAD 11 Uczenie maszynowe drzewa decyzyjne

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Wstęp do Sztucznej Inteligencji

Teoria obliczeń i złożoność obliczeniowa

Złożoność obliczeniowa

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Problemy z ograniczeniami

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Poprawność semantyczna

a) 7 b) 19 c) 21 d) 34

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Algorytmy i struktury danych

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Wybrane podstawowe rodzaje algorytmów

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy Informatyki. Sprawność algorytmów

Efektywność Procedur Obliczeniowych. wykład 5

Przykłady problemów optymalizacyjnych

Drzewa poszukiwań binarnych

Indukowane Reguły Decyzyjne I. Wykład 3

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Optymalizacja. Wybrane algorytmy

Problem spełnienia ograniczeń. w oparciu o: K. Marriott, P.J. Stuckey. Programming with Constraints. An Introduction

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

PROBLEMY NIEROZSTRZYGALNE

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Optimizing Programs with Intended Semantics

Programowanie dynamiczne i algorytmy zachłanne

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Adam Meissner SZTUCZNA INTELIGANCJA

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Programowanie w VB Proste algorytmy sortowania

Luty 2001 Algorytmy (4) 2000/2001

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Algorytmy i struktury danych.

Algorytm simplex i dualność

Tomasz M. Gwizdałła 2012/13

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD V: Agent wciąż szuka rozwiązania (choć już nie na ślepo)

Wstęp do programowania

Szeregowanie zadań. Wykład nr 3. dr Hanna Furmańczyk

Algorytmy i Struktury Danych

Techniki optymalizacji

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Metody Programowania

Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

Transkrypt:

Sztuczna Inteligencja i Systemy Doradcze Przeszukiwanie przestrzeni stanów problemy z więzami Przeszukiwanie przestrzeni stanów problemy z więzami 1

Problemy z wiezami (CSP) Ogólnie: stan jest czarną skrzynką, dla której: można sprawdzić, czy jest celem dana jest wartość funkcji oceny użyteczności stanu można obliczyć sąsiednie stany CSP: stan jest zdefiniowany przez zmienne X i z wartościami z dziedziny D i test celu jest zbiorem więzów (ograniczeń) specyfikujących dopuszczalne kombinacje wartości dla podzbiorów zmiennych CSP jest prostym przykładem formalnego języka do reprezentacji stanów Reprezentacja CSP umożliwia skonstruowanie algorytmów bardziej efektywnych niż ogólne algorytmy przeszukiwania Przeszukiwanie przestrzeni stanów problemy z więzami 2

Przyklad CSP: Kolorowanie mapy Western Australia Northern Territory South Australia Queensland New South Wales Victoria Tasmania Zmienne WA, NT, Q, NSW, V, SA, T Dziedziny D i = {red, green, blue} Więzy: sąsiednie regiony mają mieć różne kolory np. WA NT (jeśli symbol należy do języka), lub (WA, NT) {(red, green), (red, blue), (green, red), (green, blue),...} Przeszukiwanie przestrzeni stanów problemy z więzami 3

Przyklad CSP: Kolorowanie mapy Western Australia Northern Territory South Australia Queensland New South Wales Victoria Tasmania Rozwiązania są wartościowaniami spełniającymi wszystkie więzy, np. {WA = red, NT = green, Q =red, NSW =green, V =red, SA =blue, T =green} Przeszukiwanie przestrzeni stanów problemy z więzami 4

Graf zaleznosci Binarny CSP: każde ograniczenie dotyczy co najwyżej dwóch zmiennych Graf zależności: wierzchołki odpowiadają zmiennym, krawędzie więzom WA NT Q SA NSW V Victoria T Algorytmy dla binarnego CSP używają struktury grafu do przyspieszenia szukania, np. Tasmania jest problem niezależnym od pozostałych regionów! Przeszukiwanie przestrzeni stanów problemy z więzami 5

Rodzaje problemow CSP Zmienne dyskretne dziedziny skończone rozmiaru d O(d n ) pełnych wartościowań np. boolowskie CSP, w tym problem spełnialności (NP-zupełny) dziedziny nieskończone (liczby całkowite, słowa, etc.) np. planowanie zadań, zmienne: daty początku i końca zadań wymaga języka więzów, np. StartJob 1 + 5 StartJob 3 problemy z więzami liniowymi są obliczalne w ogólności nierozstrzygalne Zmienne ciągłe np. momenty początku i końca obserwacji przez Teleskop Hubble a problemy z więzami liniowymi można rozwiązać w czasie wielomianowym (programowanie liniowe) Przeszukiwanie przestrzeni stanów problemy z więzami 6

Rodzaje wiezow Więzy unarne dotyczą pojedynczych zmiennych, np. SA green Więzy binarne dotyczą dwu zmiennych, np. SA WA Więzy wyższego rzędu dotyczą 3 lub więcej zmiennych, np. w kryptoarytmetyce Preferencje (więzy nieostre), np. red jest lepszy niż green często reprezentowane przez funkcję kosztu przypisania wartości do zmiennej problemy optymalizacyjne z więzami Przeszukiwanie przestrzeni stanów problemy z więzami 7

Przyklad: kryptoarytmetyka T W O + T W O F O U R F T U W R O X 3 X 2 X 1 Zmienne: F T U W R O X 1 X 2 X 3 Dziedziny: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Więzy: F, T, U, W, R, O wszystkie różne O + O = R + 10 X 1 X 1 + W + W = U + 10 X 2 X 2 + T + T = O + 10 X 3 X 3 = F Przeszukiwanie przestrzeni stanów problemy z więzami 8

Rzeczywiste problemy CSP Problem przydziału np. kto którą klasę będzie uczyć? Problem rozplanowania zadań np. gdzie i kiedy będą odbywać się poszczególne zajęcia? Konfiguracja sprzętowa Arkusze elektroniczne Logistyka Zaplanowanie produkcji Planowanie kondygnacji Wiele rzeczywistych problemów ma zmienne o wartościach rzeczywistych Przeszukiwanie przestrzeni stanów problemy z więzami 9

Przeszukiwanie przyrostowe z powracaniem Stany: zmienne częściowo przypisane (tzn. tylko niektóre) więzy zawsze spełnione dla ustalonych zmiennych Stan początkowy: pusty zbiór przypisań { } Funkcja następnika: przypisuje wartość do nieprzypisanej zmiennej tak, żeby nie powodować konfliktu więzów z dotychczasowym przypisaniem porażka, gdy ustalenie kolejnej zmiennej jest niewykonalne Cel: pełne przypisanie zmiennych 1) Dla problemu z n zmiennymi każde rozwiązanie jest na głębokości n warto używać przeszukiwania wgłab 2) Ścieżka jest nieistotna, przypisanie zmiennych jest przemienne, np. [najpierw W A = red potem N T = green] to tak samo jak [najpierw NT =green potem WA =red] wystarczy rozważyć jeden ustalony porządek przypisywania zmiennych Przeszukiwanie przestrzeni stanów problemy z więzami 10

Przeszukiwanie przyrostowe z powracaniem Przeszukiwanie przyrostowe z powracaniem (ang. backtracking) przeszukiwanie wgłąb, każdy krok to ustalenie wartości jednej zmiennej kolejność przypisywania zmiennych jest ustalona jeśli ustalenie kolejnej zmiennej jest niewykonalne bez łamania więzów następuje powrót, tzn. cofnięcie niektórych przypisań function Backtracking-Search(csp) returns solution/failure return Recursive-Backtracking([ ], csp) function Recursive-Backtracking(assigned, csp) returns solution/failure if assigned is complete then return assigned var Select-Unassigned-Variable(Variables[csp], assigned, csp) for each value in Order-Domain-Values(var, assigned, csp) do if value is consistent with assigned according to Constraints[csp] then result Recursive-Backtracking([var = value assigned], csp) if result failure then return result end return failure Przeszukiwanie przestrzeni stanów problemy z więzami 11

Przesz. przyrostowe z powracaniem: przyklad Przeszukiwanie przestrzeni stanów problemy z więzami 12

Przesz. przyrostowe z powracaniem: przyklad Przeszukiwanie przestrzeni stanów problemy z więzami 13

Przesz. przyrostowe z powracaniem: przyklad Przeszukiwanie przestrzeni stanów problemy z więzami 14

Przesz. przyrostowe z powracaniem: przyklad Przeszukiwanie przestrzeni stanów problemy z więzami 15

Przesz. przyrostowe z powracaniem: wlasnosci Uniwersalność?? Metoda jest uniwersalna dla wszystkich problemów z więzami Złożoność pamięciowa?? Pamięta dotychczasowe przypisanie liniowa Złożoność czasowa?? W każdym węźle sprawdza wszystkie możliwe przypisania do jednej zmiennej rozgałezienie drzewa przesz. b = rozmiar dziedziny zmiennych d drzewo przeszukiwań ma d n liści Efektywność?? Rozwiązuje problem n-hetmanów dla n 25 Przeszukiwanie przestrzeni stanów problemy z więzami 16

Heurystyki przyspieszajce Wybór zmiennej najbardziej ograniczającej spośród najbardziej ograniczonych Wybór wartości zmiennej najmniej ograniczającej Sprawdzenie wprzód Binarny CSP: Sprawdzenie spójności łukowej Analiza grafu zależności Przeszukiwanie przestrzeni stanów problemy z więzami 17

Wybor zmiennej: najbardziej ograniczona Wybór zmiennej w kolejnym kroku przeszukiwania: nabardziej ograniczona zmienna, tzn. zmienna z najmniejszą liczbą dopuszczalnych wartości Przeszukiwanie przestrzeni stanów problemy z więzami 18

Wybor zmiennej: najbardziej ograniczajaca Wybór zmiennej spośród najbardziej ograniczonych zmiennych: nabardziej ograniczająca zmienna, tzn. zmienna z największą liczbą więzów z pozostałymi zmiennymi Przeszukiwanie przestrzeni stanów problemy z więzami 19

Wybor wartosci: najmniej ograniczajaca Wybór wartości dla zmiennej wybranej w kolejnym kroku przeszukiwania: najmniej ograniczająca wartość, tzn. wartość, która eliminuje najmniej wartości dla pozostałych zmiennych Allows 1 value for SA Allows 0 values for SA Przeszukiwanie przestrzeni stanów problemy z więzami 20

Wybor wartosci: najmniej ograniczajaca Wybór wartości dla zmiennej wybranej w kolejnym kroku przeszukiwania: najmniej ograniczająca wartość, tzn. wartość, która eliminuje najmniej wartości dla pozostałych zmiennych Allows 1 value for SA Allows 0 values for SA Połączenie heurystyk: wybór najbardziej ograniczającej spośród najbardziej ograniczonych zmiennych oraz wybór najmniej ograniczającej wartości zmiennej umożliwia znalezienie rozwiązania dla problemu 1000-hetmanów Przeszukiwanie przestrzeni stanów problemy z więzami 21

Sprawdzenie wprzod Pomysł: Przeszukiwanie sprawdza, czy dotychczas przypisane zmienne nie eliminują wszystkich wartości dla którejś z nieprzypisanych zmiennych Cofa się, jeśli któraś zmienna nie ma już żadnej dopuszczalnej wartości WA NT Q NSW V SA T Przeszukiwanie przestrzeni stanów problemy z więzami 22

Sprawdzenie wprzod Pomysł: Przeszukiwanie sprawdza, czy dotychczas przypisane zmienne nie eliminują wszystkich wartości dla którejś z nieprzypisanych zmiennych Cofa się, jeśli któraś zmienna nie ma już żadnej dopuszczalnej wartości WA NT Q NSW V SA T Przeszukiwanie przestrzeni stanów problemy z więzami 23

Sprawdzenie wprzod Pomysł: Przeszukiwanie sprawdza, czy dotychczas przypisane zmienne nie eliminują wszystkich wartości dla którejś z nieprzypisanych zmiennych Cofa się, jeśli któraś zmienna nie ma już żadnej dopuszczalnej wartości WA NT Q NSW V SA T Przeszukiwanie przestrzeni stanów problemy z więzami 24

Sprawdzenie wprzod Pomysł: Przeszukiwanie sprawdza, czy dotychczas przypisane zmienne nie eliminują wszystkich wartości dla którejś z nieprzypisanych zmiennych Cofa się, jeśli któraś zmienna nie ma już żadnej dopuszczalnej wartości WA NT Q NSW V SA T Przeszukiwanie przestrzeni stanów problemy z więzami 25

Spojnosc lukowa Sprawdzenie wprzód propaguje informacje z przypisanych do nieprzypisanych więzów, ale nie od razu wykrywa wszystkie konflikty WA NT Q NSW V SA T NT i SA nie mogą być oba niebieskie! Spojność łukowa sprawdza spełnialność więzów lokalnie pomiędzy nieprzypisanymi zmiennymi Przeszukiwanie przestrzeni stanów problemy z więzami 26

Spojnosc lukowa Spójność łukowa jest określona dla binarnych CSP: Łuk X Y jest spójny wtw dla każdej wartości x na zmiennej X istnieje dopuszczalna wartość y na zmiennej Y Najprostsza forma propagacji więzów sprawdza, czy każdy łuk jest spójny WA NT Q NSW V SA T Przeszukiwanie przestrzeni stanów problemy z więzami 27

Spojnosc lukowa Spójność łukowa jest określona dla binarnych CSP: Łuk X Y jest spójny wtw dla każdej wartości x na zmiennej X istnieje dopuszczalna wartość y na zmiennej Y Najprostsza forma propagacji więzów sprawdza, czy każdy łuk jest spójny WA NT Q NSW V SA T Przeszukiwanie przestrzeni stanów problemy z więzami 28

Spojnosc lukowa Spójność łukowa jest określona dla binarnych CSP: Łuk X Y jest spójny wtw dla każdej wartości x na zmiennej X istnieje dopuszczalna wartość y na zmiennej Y Najprostsza forma propagacji więzów sprawdza, czy każdy łuk jest spójny WA NT Q NSW V SA T Jeśli X eliminuje pewną wartość, spójność łukowa dla zmiennych związanych z X musi być ponownie sprawdzona Przeszukiwanie przestrzeni stanów problemy z więzami 29

Spojnosc lukowa Spójność łukowa jest określona dla binarnych CSP: Łuk X Y jest spójny wtw dla każdej wartości x na zmiennej X istnieje dopuszczalna wartość y na zmiennej Y Najprostsza forma propagacji więzów sprawdza, czy każdy łuk jest spójny WA NT Q NSW V SA T Jeśli X eliminuje pewną wartość, spójność łukowa dla zmiennych związanych z X musi być ponownie sprawdzona Sprawdzenie spójności łukowej wykrywa konflikty wcześniej niż sprawdzanie wprzód Przeszukiwanie przestrzeni stanów problemy z więzami 30

Spojnosc lukowa: algorytm function AC-3(csp) returns the CSP, possibly with reduced domains inputs: csp, a binary CSP with variables {X 1, X 2,..., X n } local variables: queue, a queue of arcs, initially all the arcs in csp while queue is not empty do (X i, X j ) Remove-First(queue) if Remove-Inconsistent-Values(X i, X j ) then for each X k in Neighbors[X i ] do add (X k, X i ) to queue function Remove-Inconsistent-Values(X i, X j ) returns true iff we remove a value removed false for each x in Domain[X i ] do if no value y in Domain[X j ] allows (x,y) to satisfy the constraint between X i and X j then delete x from Domain[X i ]; removed true return removed Przeszukiwanie przestrzeni stanów problemy z więzami 31

Spojnosc lukowa: wlasnosci Złożoność czasowa?? O(n 2 d 3 ), można poprawić do O(n 2 d 2 ) ale nie wykrywa wszystkich konfliktów w czasie wielomianowym! Użyteczność?? Sprawdzenie może być wykonywane po każdym przypisaniu Przeszukiwanie przestrzeni stanów problemy z więzami 32

Analiza grafu zaleznosci WA NT Q SA NSW V Victoria T Tasmania i kontynent są niezależnymi podproblemami Identyfikowalne jako spójne składowe grafu zależności Przeszukiwanie przestrzeni stanów problemy z więzami 33

Analiza grafu zaleznosci: efektywnosc Niech każdy podproblem ma c zmiennych z n wszystkich Złożoność czasowa: n/c d c, liniowa od n Przykład, n = 80, d = 2, c = 20 2 80 = 4 miliardy lat przy szybkości 10 milionów węzłów/sek 4 2 20 = 0.4 sekundy przy szybkości 10 milionów węzłów/sek Przeszukiwanie przestrzeni stanów problemy z więzami 34

CSP z drzewiastym grafem zaleznosci A C B D E F Twierdzenie: jeśli graf zależności dla binarnego CSP nie ma cyklu, problem można rozwiązać w czasie O(nd 2 ) Przeszukiwanie przestrzeni stanów problemy z więzami 35

CSP z drzewiastym grafem zaleznosci: algorytm 1. Wybiera jedną zmienną jako korzeń drzewa, porządkuje liniowo zmienne tak, że węzły bliżej korzenia poprzedzają dalsze węzły A C B D E F A B C D E F 2. Dla j malejącego od n do 2: RemoveInconsistent(Parent(X j ), X j ) 3. Dla j od 1 do n, ustal X j spójnie z Parent(X j ) Przeszukiwanie przestrzeni stanów problemy z więzami 36

CSP z prawie drzewiastym grafem zaleznosci Redukcja problemu z jedną zmienną niedrzewiastą : ustala wartość zmiennej niedrzewiastej i ogranicza dziedziny pozostałych zmiennych WA NT Q WA NT Q SA NSW NSW V Victoria V Victoria T T Redukcja problemu ze zbiorem zmiennych redukujących ustala (na wszystkie możliwe sposoby) zbiór zmiennych takich, że graf zależności dla pozostałych zmiennych jest drzewem Rozmiar zbioru redukującego = c złożoność O(d c (n c)d 2 ), bardzo szybkie dla małych c Przeszukiwanie przestrzeni stanów problemy z więzami 37

Iteracyjne poprawianie Stany: wszystkie zmienne przypisane, więzy niekoniecznie spełnione Stan początkowy: dowolny stan z pełnym przypisaniem zmiennych Funkcja następnika: zmienia wartość zmiennej powodującej konflikt więzów w bieżącym stanie Cel: wszystkie więzy spełnione Algorytmy: hill-climbing, symulowane wyżarzanie, algorytm genetyczny Przeszukiwanie przestrzeni stanów problemy z więzami 38

Minimalna liczba konfliktow: algorytm Stan początkowy: losowy lub zachłannie minimalizujący liczbę konfliktów Conflicts = liczba niespełnionych więzów po przypisaniu var = v function Min-Conflicts(csp,max-steps) returns a solution or failure inputs: csp, a constraint satisfaction problem max-steps, the number of steps allowed before giving up local variables: current, a complete assignment var, a variable value, a value for a variable current an initial complete assignment for csp for i = 1 to max-steps do var a randomly chosen, conflicted variable from Variables[csp] value the value v for var that minimizes Conflicts(var, v, current, csp) set var=value in current if current is a solution for csp then return current end return failure Przeszukiwanie przestrzeni stanów problemy z więzami 39

Minimalna liczba konfliktow: 4-hetmanow Stany: 4 hetmanów w 4 kolumnach (4 4 = 256 stanów) Operacje: przesunięcie hetmana w kolumnie Cel: brak konfliktów Ocena stanu: h(n) = liczba konfliktów h = 5 h = 2 h = 0 Przeszukiwanie przestrzeni stanów problemy z więzami 40

Minimalna liczba konfliktow: efektywnosc Z dużym prawdopodobieństwem rozwiązuje n-hetmanów z losowego stanu w prawie stałym czasie dla dowolnego n (np. n = 10,000,000) To samo zachodzi dla dowolnego losowo wygenerowanego CSP z wyjątkiem wąskiego zakresu wielkości R = liczba więzów liczba zmiennych CPU time critical ratio R Przeszukiwanie przestrzeni stanów problemy z więzami 41