===== Podstawy Sztucznej Inteligencji ===== * Kurs: Podstawy Sztucznej Inteligencji (WFAIS.IF-G210.0) * Prowadzący: * [[http://www.doit.fais.uj.edu.pl/katarzyna-grzesiak-kopec|dr Katarzyna Grzesiak-Kopeć]] (wykład) * [[https://krzysztof.kutt.pl/|dr inż. Krzysztof Kutt]] (laboratorium) ==== Laboratoria ==== ^ Nr ^ Poniedziałki ^ Wtorki ^ Materiały ^ | 1. | 04.10.2021 | 05.10.2021 | [[.:lab_intro|Wprowadzenie do SI]] | | 2. | 11.10.2021 | 12.10.2021 | [[.:lab_steer|Środowisko i sterowanie]] | | 3. | 18.10.2021 | 19.10.2021 | ::: | | 4. | 25.10.2021 | 26.10.2021 | [[.:lab_path|Szukanie ścieżek]] | | 5. | 08.11.2021 | 09.11.2021 | ::: | | 6. | 15.11.2021 | 16.11.2021 | [[.:lab_trees|Drzewa zachowań]] | | 7. | 22.11.2021 | 23.11.2021 | ::: | | 8. | 29.11.2021 | 30.11.2021 | Śródsemestralne prezentacje projektów | | 9. | 06.12.2021 | 07.12.2021 | [[.:lab_rules|Modele regułowe]] | | 10. | 13.12.2021 | 14.12.2021 | ::: | | 11. | 20.12.2021 | 21.12.2021 | [[.:lab_minimax|MiniMax]] | | 12. | 03.01.2022 | 04.01.2022 | ::: | | 13. | 10.01.2022 | 11.01.2022 //[offline]// | [[.:lab_genetic|Algorytmy genetyczne]] | | 14. | 17.01.2022 | 18.01.2022 | ::: | | 15. | 24.01.2022 | 25.01.2022 | Finalne prezentacje projektów | ==== Zasady zaliczenia ==== * **100 EXP** stanowi 100% łącznej liczby punktów (MAX) z laboratorium. Składają się na to: * 6x**9 EXP** - zdobywane podczas laboratoriów (szczegóły przy każdym z laboratoriów) * Pracujemy samodzielnie albo w parach * Z każdego laboratorium należy zdobyć min. 1 EXP * Zadania prezentujemy w czasie laboratorium, albo dosyłamy na maila prowadzącego do 23:59 w dniu w którym odbyło się drugie spotkanie z danego tematu * W przypadku spóźnienia, punktacja za zadanie wynosi: **x*(0.5^n)**, gdzie **n** to liczba rozpoczętych tygodni spóźnienia, a **x** to uzyskana liczba EXP * **46 EXP** - projekt zaliczeniowy * Cel: **Implementacja AI w grze** * Grupy 2-4 osobowe (nie muszą być w obrębie jednej grupy laboratoryjnej) * Dowolne środowisko, dowolny gatunek * Własna gra (np. z poprzedniego semestru), bot do istniejącej gry, ... \\ Kilka inspiracji: * Gra sportowa (piłka nożna jest lepsza niż pong) * RPG (nacisk na ciekawych NPC?) * RTS (własna prosta gra vs. bot do StarCrafta?) * Strzelanka (bot do Quake’a?) * **Konieczne:** * Algorytm ustalania ogólnej strategii działania * Metoda wyboru aktualnej decyzji * Algorytmy poruszania się (w celu realizacji aktualnej decyzji) * **Oceniane:** * Śródsemestralna prezentacja: * **10 EXP** Przygotowany "szablon" algorytmu - może to być tylko zbiór mockupów (np. funkcja losująca zwracająca zawsze wartość 42), ale działający i pokazujący pomysł * Finalna prezentacja: * **12 EXP** Dobór algorytmów do zadania //(oceniane przez prowadzącego)// * **12 EXP** Implementacja //(oceniane przez prowadzącego)// * **12 EXP** Finalny efekt (złudzenie inteligencji dla gracza/obserwatora) //(oceniane przez grupę)// * Dozwolone są **dwie nieusprawiedliwione** nieobecności. * Każda kolejna nieobecność skutkuje odjęciem **10 EXP**. * __Skala ocen:__ * >= 90 EXP -- bdb * >= 80 EXP -- db+ * >= 70 EXP -- db * >= 60 EXP -- dst+ * >= 50 EXP -- dst * < 50 EXP -- ndst ==== Dowiedz się więcej! ==== === Wiedza === * **[[https://www.redblobgames.com/|Red Blob Games]]** -- różne algorytmy przedstawione w prosty sposób, **bardzo przydatne źródło** * Daniel Shiffman - [[https://natureofcode.com/|The Nature of Code]] (2012) * O symulowaniu rzeczywistości (dla nas interesujące są m.in. fragmenty o symulacji naturalnego poruszania się) * Całość dostępna **online**: [[https://natureofcode.com/book/]] * Kod w Processing: [[https://github.com/nature-of-code/noc-examples-processing|oryginalny]], [[https://github.com/nature-of-code/noc-examples-p5.js|wersja p5.js]] * Mat Buckland - [[http://www.ai-junkie.com/books/toc_pgaibe.html|Programming Game AI by Example]] (2004) * [[https://www.jblearning.com/catalog/productdetails/9781556220784|Kod C++]] * [[https://www.sallyx.org/sally/en/game-ai/|Kod Java]] === p5.js === * Processing - język programowania do "graficznych" zastosowań (również do nauki programowania) * WWW: [[https://processing.org/]] * p5.js - processing w JavaScript: * WWW: [[https://p5js.org/]] * Dokumentacja: [[https://p5js.org/reference/]] * Edytor online: [[https://editor.p5js.org/]] === Sprawdź się! === * [[https://www.codingame.com/|CodinGame.com]]