Podczas ostatniej edycji tematów tygodnia pojawił się temat "Drzewa klasyfikacyjne", które można ostatecznie powiązać z AI. Troszkę poopowiadałem o tym, chociaż nie skupiłem się na różnego rodzaju algorytmach genetycznych czy ogólnie sztucznej inteligencji. Temat ten odżył dość niedawno i na studiach pojęcie sztucznej sieci neuronowej było raczej science fiction (chociaż na upartego już wtedy były).
Aktualnie mamy rozgrywkę LuigI/O i troszkę o tym (i innych projektach opowiemy).
LuigI/O
LuigI/O to projekt przejścia całej gry Super Mario Bros (gra z NES / Pegasus z 1985 roku - znana u nas ze składanek 9999999999999999 w 1 z bazarów).
Oczywiście postacią zielonego Mario gra sztuczna inteligencja używając emulatora (i save stateów). Wczoraj po 7 dniach, 19 godzinach, 14 minutach i 54 sekundach udało mu się przejść planszę 5-3 ;)
Projekt oczywiście trwa już z 3 miesiące, więc (co możecie się domyślić) nie jest to AI za szybkie ;) Twórcy starają się maksymalnie przyspieszyć czas przechodzenia poziomów.
Ogólnie nie jestem ekspertem od algorytmów genetycznych, więc nie wiem jak działa (ale się wypowiem). Pozwala się przejść iluś osobnikom z generacji 0 kawałek planszy. Potem bierze się najlepsze wyniki i krzyżuje (ich wiedzę?), przez co kolejna generacja jest lepsza od poprzedniej. I tak aż Luigi przejdzie dany poziom.
Piglet
Piglet to piękna cyber-kobieta-prosiak. Nie wiem czemu autor stwierdził, że to ona - może dlatego, że to pewnego rodzaju sztuczna inteligencja. Ogólnie myśląc o AI myślimy o komputerze, który podejmuje decyzje, jednak często mogą to być irracjonalne decyzje nie na podstawie dowodów. W pewien sposób Piglet tak działa.
Weźmy dla przykładu Mario. Jak idziemy w lewo to świat się kończy i nie możemy iść - niewidzialna ściana. Jak idziemy w prawo to świat się przesuwa, dużo rzeczy zaczyna się dziać. A skoro dużo się dzieje, to dla bota jest lepiej niż jak nic się nie dzieje. I w ten sposób Piglet próbuje przejść poziom - na podstawie decydowania czy dzieje się dużo w pamięci emulatora. Jeśli dana czynność dużo nie zmienia w ekosystemie to jest uznawana za nudną (a gra uruchamia się od save state).
Ogólnie sam się tym bawiłem chwilę, ale na rezultaty raczej trzeba parę dni poczekać (jak to w AI). Dla przykładu mam filmik z Youtube z Pokemon Yellow, w którym Red wychodzi z domu po 6 godzinach ;)
Piglet to dodatek do VisualBoy Advance (ale musi obsługiwać skrypty LUA - jest specjalna wersja nieoficjalna do TASów).
Code bullet i ich gry.
Code bullet to kanał na Youtube https://www.youtube.com/channel/UC0e3QhIYukixgh5VVpKHH9Q/undefined zajmujący się tematyką AI. Na podstawie oryginalnych gier tworzą ich kopie, a potem oskryptowują z wykorzystaniem algorytmów genetycznych. Jest to o tyle ciekawe, że ich gry są (przynajmniej część) darmowa i Open Source, więc można postawić je u siebie (lub oglądać przez przeglądarkę) i samemu odtworzyć zadania.
Tutaj dla przykładu film o najtrudniejszej grze świata:
A tutaj możecie przetestować jak AI sobie poradzi (lub samemu przejść):
https://code-bullet.github.io/WorldsHardestGameAI/WHG/
Rezultat
Nie jestem pewien co sądzić o sztucznej inteligencji grającej w gry. Wydaje się to być przyszłością, ale na razie jest z tym dość słabo. I want to belive. Na razie ludzie nie mają czego się bać, szczególnie gdy przeszli Super Smash Bros z rekordem świata co do klatki (tak już wszystko jest wymaksowane)!
Czy kiedykolwiek komputery będą tak inteligentne jak ludzie? Tak, ale bardzo krótko.
~ jacekw
Na razie to nie grozi, ale zobaczymy co przyniesie przyszłość ;)