background image

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 

background image

 

  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.