Warszawa, dn. 20.12.2011r.
Wojskowa Akademia Techniczna
im. Jarosława Dąbrowskiego
w Warszawie
Laboratorium przedmiotu
SYSTEMY EKSPERCKIE
Temat: Zaprojektowad i zaimplementowad algorytm heurystyczny (najpierw
najlepszy) ustawiający na szachownicy n x n polowej n hetmanów tak, aby nie
atakowały się wzajemnie.
Słuchacz: Konrad Czupryn
Grupa: I8C1S1
Rok akademicki: 2011/2012
Semestr: VII
Prowadzący: dr inż. Roman Wantoch-Rekowski
Język użyty do zaimplementowania rozwiązania: Java,
Środowisko użyte do zaimplementowania rozwiązania: NeatBeans,
Opis rozwiązania:
Do zaimplementowania rozwiązania problemu n-hetmanów na n x n szachownicy powołana
została klasa Hetman z funkcjami odpowiedzialnymi za operacje takie jak: wyświetlenie
szachownicy ,wstawienie hetmana, usunięcie hetmana,
W Klasie zawarta jest metoda wybierzPole(), która posiada funkcję heurystyczną. Funkcja
heurystyczna zwraca indeks kolumny dla której wartośd jest największa.
Do rozwiązanie zadania służy metoda rozwiaz(), metoda sprawdza, czy w kolumnie o podanym
indeksie, będącym wartością zwracaną przez funkcję heurystyczną, czy można w którymś wierszu
wstawid hetmana, jeśli nie jest to spełnione, to metoda usuwa ostatnio postawionego hetmana i
funkcja ponownie wybiera indeks kolumny w której najkorzystniej byłoby ustawid hetmana.
Dzieje się tak do momentu aż atrybut ustawioneHetmany osiągnie wartośd H, oznaczad to będzie
że wszystkich hetmanów udało się ustawid.
Po naciśnięciu przycisku Start zostaje przedstawiona graficznie sytuacja na szachownicy. Można
przyjąd opóźnienie od 10 do 1000 ms. Po rozstawieniu wszystkich hetmanów wyświetlana jest
liczba kroków i przedstawiona zostaje sytuacja na szachownicy.