Biblioteka do tworzenia agentów w środowisku RoboCup Robotics Biblioteka do tworzenia agentów w środowisku RoboCup
RoboCup – narzędzia RoboCup Server – serwer udostępniający wirtualne środowisko do gry w piłkę nożna SoccerWindow – program monitorujący i wizualizujący to co dzieje się podczas gry na serwerze
Wiedza Wiedza jest strukturą zamodelowaną w języku UML Wiedza stanowi w projekcie składnicę wszelkich informacji jakie otrzymuje ze środowiska agent Wiedza przechowuje informację o widzianych zawodnikach, piłce oraz o flagach rozmieszczonych na boisku W wiedzy zaimplementowane są różne algorytmy ułatwiające modelowanie podstawowych zachowań agenta
Wiedza – algorytmy Algorytmy zastosowane wiedzy: Obliczanie pozycji bezwzględnej gracza na podstawie informacji o jego położeniu względem flag Obliczanie bezwzględnej pozycji innych obiektów w zależności od pozycji własnej, znanej odległości do tych obiektów oraz kąta, pod którym je widzimy
Schemat drzewa decyzyjnego Tu rozpoczyna się proces decyzyjny Jeśli warunek nie jest prawdziwy to pobierany jest kolejny wyzwalacz Pobierany jest pierwszy wyzwalacz - akcja-korzeń (root-action) - zwykła akcja (basic-action) Sprawdzany jest warunek - akcja-liść (leaf-action) - warunek (condition) - wyzwalacz (trigger) Jeśli warunek jest prawdziwy to przechodzimy do tej akcji i kontunuujemy algorytm
Algorytm przechodzenia drzewa decyzyjnego Ustaw akcję-korzeń jako aktualną akcję Jeżeli aktualna akcja to akcja-liść to po jej wykonaniu wróć do 1 Pobierz pierwszy wyzwalacz aktualnej akcji Sprawdź czy prawdziwy jest warunek bierzącego wyzwalacza: Tak – ustaw akcję z bierzącego wyzwalacza jako aktualną akcję i przejdź do 2 Nie – pobierz kolejny wyzwalacz aktualnej akcji i przejdź do 4, jeżeli aktuana akcja nie ma więcej wyzwalaczy to przejdź do 1
Drzewo decyzyjne Zachowanie agenta modelowane jest za pomocą drzewa decyzyjnego tworzonego w plikach XML Wykorzystywane są również klasy – napisane w języku Java – których zadaniem jest określanie ścieżki przechodzenia po drzewie decyzyjnym Projekt posiada szereg napisanych warunków, które umożliwiają tworzenie wirtualnego gracza, np.: warunki sprawdzające stany gry, czy piłka jest widoczna, czy można podać piłkę
Modelowanie agenta Do modelowania drzewa można używać warunków predefiniowanych jak i warunków stworzonych przez siebie Drzewo decyzyjne może korzystać z poddrzew decyzyjnych definiowanych w innych plikach XML – pozwala to na tworzenie zrozumiałego i czytelnego kodu
Autorzy Marcin Jaskulski Marcin Jędraszczyk Łukasz Pilarski