Algorytm minimalnych konfliktów

W informatyce algorytm min-konfliktów jest algorytmem wyszukiwania lub heurystyczną metodą rozwiązywania problemów spełniania ograniczeń .

Biorąc pod uwagę początkowe przypisanie wartości wszystkim zmiennym problemu spełniania ograniczeń, algorytm losowo wybiera zmienną ze zbioru zmiennych z konfliktami naruszającymi jedno lub więcej jego ograniczeń. Następnie przypisuje tej zmiennej wartość, która minimalizuje liczbę konfliktów. Jeśli istnieje więcej niż jedna wartość z minimalną liczbą konfliktów, wybierana jest losowo. Ten proces losowego wyboru zmiennej i przypisywania wartości minimalnego konfliktu jest powtarzany aż do znalezienia rozwiązania lub osiągnięcia wcześniej wybranej maksymalnej liczby iteracji.

Ponieważ problem spełniania ograniczeń można interpretować jako problem wyszukiwania lokalnego , gdy wszystkie zmienne mają przypisaną wartość (nazywaną stanem pełnym), algorytm minimalnych konfliktów można postrzegać jako heurystykę naprawy, która wybiera stan z minimalną liczbą konfliktów.

Algorytm

     
           jest  algorytm  MIN-KONFLIKTY  :  konsola.  csp  , Problem spełnienia ograniczeń.  max_steps  , Dozwolona liczba kroków przed poddaniem się.  stan_bieżący  , Początkowe przypisanie wartości do zmiennych w pliku csp.  dane wyjściowe:  Zestaw rozwiązań wartości dla zmiennej  lub  niepowodzenia  .  dla  i ← 1  do  max_steps  zrobić  jeśli  stan_bieżący  jest rozwiązaniem  csp  wtedy 
             
           

      return  current_state  set  var  ← losowo wybrana zmienna ze zbioru zmiennych będących w konflikcie KONFLIKT[  csp  ]  set  value  ← wartość v dla  var  minimalizująca KONFLIKTY(  var  ,  v  ,  current_state  ,  csp  )  set  var  wartość  w  current_state  return  niepowodzenie 

Chociaż nie jest to określone w algorytmie, dobre wstępne przypisanie może mieć kluczowe znaczenie dla szybkiego podejścia do rozwiązania. Użyj zachłannego algorytmu z pewnym poziomem losowości i pozwól, aby przypisanie zmiennych przełamało ograniczenia, gdy żadne inne przypisanie nie będzie wystarczające. Losowość pomaga minimalnym konfliktom uniknąć lokalnych minimów utworzonych przez początkowe przypisanie algorytmu zachłannego. W rzeczywistości problemy spełniania ograniczeń, które najlepiej reagują na rozwiązanie z minimalnymi konfliktami, dobrze sobie radzą tam, gdzie zachłanny algorytm prawie rozwiązuje problem. Kolorowanie mapy problemy radzą sobie słabo z Algorytmem Chciwym oraz Min-Konfliktami. Podobszary mapy mają tendencję do utrzymywania swoich kolorów na stałym poziomie, a minimalne konflikty nie mogą wspinać się po wzgórzach, aby wyrwać się z lokalnego minimum. Funkcja KONFLIKTY zlicza liczbę ograniczeń naruszonych przez określony obiekt, przy założeniu, że znany jest stan pozostałej części przypisania.

Historia

Chociaż sztuczna inteligencja i optymalizacja dyskretna znały problemy spełniania ograniczeń i uzasadniały je od wielu lat, dopiero na początku lat 90. ten proces rozwiązywania dużych CSP został skodyfikowany w formie algorytmicznej. Na początku Mark Johnston z Space Telescope Science Institute poszukiwał metody planowania obserwacji astronomicznych za pomocą Kosmicznego Teleskopu Hubble'a . We współpracy z Hansem-Martinem Adorfem z Europejskiego Centrum Koordynacyjnego Teleskopu Kosmicznego stworzył sieć neuronową zdolną do rozwiązywania zabawek n -problem hetmanów (dla 1024 hetmanów). Steven Minton i Andy Philips przeanalizowali algorytm sieci neuronowej i podzielili go na dwie fazy: (1) wstępne przypisanie przy użyciu algorytmu zachłannego i (2) fazy minimalizacji konfliktów (później nazwane „min-konfliktami”). Artykuł został napisany i przedstawiony na AAAI-90; Philip Laird przedstawił matematyczną analizę algorytmu.

Następnie Mark Johnston i personel STScI wykorzystali min-konflikty do zaplanowania czasu obserwacji astronomów na Kosmicznym Teleskopie Hubble'a.

Przykład

Animacja rozwiązywania min-konfliktów 8-królowych. Pierwszy etap przypisuje kolumny zachłannie minimalizując konflikty, a następnie rozwiązuje

Min-Conflicts rozwiązuje problem N -Queens, losowo wybierając kolumnę z szachownicy do zmiany przypisania hetmana. Algorytm przeszukuje każdy potencjalny ruch pod kątem liczby konfliktów (liczby atakujących hetmanów), pokazanej na każdym kwadracie. Algorytm przesuwa hetmana na pole z minimalną liczbą konfliktów, losowo rozwiązując remisy. Zauważ, że liczba konfliktów jest generowana przez każdy nowy kierunek, z którego hetman może zaatakować. Jeśli dwie królowe zaatakowałyby z tego samego kierunku (rzędu lub po przekątnej), konflikt liczy się tylko raz. Należy również zauważyć, że jeśli hetman znajduje się w pozycji, w której ruch spowodowałby większy konflikt niż jego obecna pozycja, nie wykonuje ruchu. Wynika z tego, że jeśli hetman jest w stanie minimalnego konfliktu, nie musi się ruszać.

Czas działania tego algorytmu przy rozwiązywaniu N -Queens jest niezależny od rozmiaru problemu. Algorytm ten rozwiąże nawet problem miliona hetmanów średnio w 50 krokach. To odkrycie i obserwacje doprowadziły do ​​​​wielu badań w 1990 roku i zapoczątkowały badania nad lokalnymi problemami wyszukiwania oraz rozróżnieniem między łatwymi i trudnymi problemami. N -Queens jest łatwy do wyszukiwania lokalnego, ponieważ rozwiązania są gęsto rozmieszczone w przestrzeni stanów. Jest również skuteczny w przypadku trudnych problemów. Na przykład był używany do planowania obserwacji dla Kosmicznego Teleskopu Hubble'a , skracając czas potrzebny do zaplanowania tygodniowych obserwacji z trzech tygodni do około 10 minut.

Zobacz też

Linki zewnętrzne

  • [1] Mikroforma heurystyczna min-konfliktów: eksperyment i wyniki teoretyczne / Steven Minton… [i in.]. NASA, Ames Research Center, Oddział Badań nad Sztuczną Inteligencją. Rozesłane do bibliotek depozytowych w mikrofiszach.