Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S1)

Sylabus przedmiotu Wstęp do sztucznej inteligencji:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia stacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów nauki techniczne, studia inżynierskie
Profil ogólnoakademicki
Moduł
Przedmiot Wstęp do sztucznej inteligencji
Specjalność przedmiot wspólny
Jednostka prowadząca Katedra Metod Sztucznej Inteligencji i Matematyki Stosowanej
Nauczyciel odpowiedzialny Przemysław Klęsk <pklesk@wi.zut.edu.pl>
Inni nauczyciele Joanna Kołodziejczyk <Joanna.Kolodziejczyk@zut.edu.pl>
ECTS (planowane) 2,0 ECTS (formy) 2,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny Grupa obieralna

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW4 15 0,80,62zaliczenie
laboratoriaL4 15 1,20,38zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1matematyka
W-2algorytmy i struktury danych
W-3podstawy programowania
W-4programowanie obiektowe

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Zapoznanie studentów z różnymi algorytmy przeszukiwania grafów stanów z dostosowaniem ich do różnych problemów praktycznych.
C-2Zapoznanie studentów z podstawowymi elementami gier dwuosobowych o pełnej informacji. Zapoznanie z algorytmami przeszukiwania drzew gier i wyboru najlepszego ruchu.
C-3Ukształtowanie rozumienia pojęć heurystyka, wypłata, strategia, efekt horyzontu.
C-4Zapoznanie studentów z zadaniami klasyfikacji i aproksymacji danych (jako zadaniami uczenia maszynowego). Zapoznanie z podstawowymi sieciami neurnowymi przeznaczonymi do tych zadań.
C-5Zapoznanie studentów z problemami optymalizacji dyskretnej. Ukształtowanie rozumienia rozwiązywania tych problemów poprzez metody losowe ukierunkowane (algorytmy genetyczne).
C-6Zapoznanie studentów z historią, podstawowymi problemami i definicjami sztucznej inteligencji.

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Zapoznanie studentów z szalbonem klas przygotowanych w języku Java do implementacji algorytmu A* oraz ze środowiskiem Eclipse. Wstępna implementacja układanki sudoku.2
T-L-2Implementacja układanki sudoku. Testowanie działania poprzez zmiany (utrudnienia) w stanie początkowym. Obserwowanie liczby odwiedzonych stanów przez algorytm oraz liczby rozwiązań. Postawienie zadania domowego - implementacja programu do rozwiązywania układanki puzzle n^2 - 1 (na bazie zakończonej implementacji dla sudoku).2
T-L-3Sprawdzenie działania programu do rozwiązywania układanki puzzle n^2 - 1. Zapoznanie się z szablonem klas (Java) przeznaczonych do przeszukiwania drzew gier dwuosobowych oraz z silnikiem algorytmu przycinanie alpha-beta. Postawienie zadania domowego - implementacja programu grającego przeciwko człowiekowi w grę connect4.3
T-L-4Sprawdzenie działania programów studentów do gry w grę connect4. Testy nastawy różnych głębokości drzewa.Testy rozgrywek program kontra program. Analiza różnych możliwych heurystyek oceniających liście drzewa gry.2
T-L-5Implementacja w MATLABie algorytmu uczenia perceptronu Rosenblatt'a w wersji liniowej dla problemu na płaszczyźnie. Testowanie liczby kroków aktualizacyjnych ze względu na zmiany: współczynnika uczenia, rozmiaru zbioru danych, zmniejszenia marginesu separacji. Postawienie zadania domowego - implementacji programu do klasyfikacji binarnej nieliniowej z wykorzystaniem przekształcenia jądrowego.2
T-L-6Implementacja w MATLABie sieci neurnowej MLP dla aproksymacji funkcji dwóch zmiennych. Testowanie skuteczności uczenia ze względu na liczbę neuronów, wartość współczynnika uczenia, liczbę kroków uczących. Postawienie zadania domowego - dobranie odpowiedniej liczby neuronów techniką krzyżowej walidacji.2
T-L-7Implementacja w MATLABie algorytmu genetycznego do rozwiązywania problemu plecakowego. W tym: implementacja przynajmniej dwóch metod selekcji i dwóch metod krzyżowania. Postawienie zadania domowego - porównania rozwiązań genetycznych z rozwiązaniem dokładnym opartym na kracie.2
15
wykłady
T-W-1Definicje sztucznej inteligencji i problemy stawiane w ramach niej m.in.: problem przeszukiwania grafów i drzew gier, problem n-hetmanów, puzzle n^2-1, sudoku i minmalne sudoku. problem Jeepa, problem plecakowy, problem komiwojażera, dylemat więźnia, iterowany dylemat więźnia, problem klasyfikacji danych, gra w naśladownictwo (test Turinga), sztuczne życie i automaty komórkowe, gra w życie Conwaya. Wzmianka o Statystycznej Teorii Uczenia Vapnika. Poglądy Minsky'ego o sztucznej inteligencji.2
T-W-2Szczegółowe omówienie algorytmów do przeszukiwania grafów: Breadth-First-Search, Best-First-Search, A*, Dijkstry. Pojęcie heurystyki. Efektywne struktury danych wykorzystywane w tych algorytmach: mapa haszująca, kolejka priorytetowa.2
T-W-3Szczegółowe omówienie algorytmów i pojęć z zakresu gier dwuosobowych o pełnej informacji. Algorytmy: MIN-MAX i przycinanie "alfa-beta". Złożoność obliczeniowa i pamięciowa. Efekt horyzontu.2
T-W-4Klasyfikacja danych (liniowa, binarna) na przykładzie perceptronu Rosenblatt'a. Schemat działania - przebieg wprzód. Algorytm uczenia. Liniowa separowalność danych. Twierdzenie Novikoffa o zbieżności i jego dowód.2
T-W-5Sieć neuronowa Multi-Layer-Perceptron. Sigmoidalna funkcja aktywacji. Uczenie w trybie on-line i off-line. Matematyczne wyprowadzenie metody wstecznej propagacji błędu back-propagation. Wzmianka o wariantach tej metody. Złożoność sieci - testowanie i krzyżowa walidacja.3
T-W-6Algorytmy genetyczne w problemach optymalizacji. Schemat głównej pętli genetycznej. Funkcja przystosowania. Metody selekcji: ruletkowa, rankingowa, turniejowa. Problem eksploracja a eksploatacja, uwagi o zbieżności i utrzymywaniu różnorodności w populacji. Krzyżowanie jedno, dwu i wielopunktowe. Mutacja i jej rola w AG dla problemów dyskretnych i ciągłych. Przykłady problemów: plecakowy, komiwojażera. Dokładne rozwiązanie problemu plecakowego za pomocą programowania dynamicznego i kraty.2
T-W-7Kolokwium zaliczeniowe.2
15

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1Napisanie programu do rozwiązywania układanki puzzle n^2-1. Przygotowanie się do sprawdzianu z algorytmów do przeszukiwania grafów.4
A-L-2Napisanie programu do gry w grę connect4 (w tym ułożenie własnej heurystyki oceniającej liście drzewa). Przygotowanie się do sprawdzianu z drzew gier.4
A-L-3Napisanie programu do wykrywania odpowiedniej liczby neuronów w sieci MLP poprzez krzyżową walidację. Przygotowanie się do sprawdzianu z sieci MLP.4
A-L-4Napisanie programu porównującego rozwiązanie genetyczne dla problemu plecakowego z rozwiązaniem dokładnym opartym na kracie. Przygotowanie się do sprawdzianu z algorytmów genetycznych.4
A-L-5Udział w zajęciach laboratoryjnych15
A-L-6Zapoznanie się z materiłami (.pdf) dotyczącymi nieliniowej klasyfikacji (przekształcenie jądrowe + perceptron Rosenblatt'a) i wykonanie programu.4
35
wykłady
A-W-1Udział w wykładzie7
A-W-2Konsultacje z prowadzącym.2
A-W-3Przygotowanie się do kolokwium zaliczeniowego.13
A-W-4Zaliczenie formy zajęć.2
24

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykład informacyjny.
M-2Metoda przypadków.
M-3Gry dydaktyczne.
M-4Metody programowane z użyciem komputera.
M-5Pokaz.

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Pięć sprawdzianów (10 minutowych) na zakończenie każdego bloku tematycznego w trakcie laboratoriów.
S-2Ocena formująca: Pięć ocen programów realizowanych przez studentów jako zadania domowe na laboratoriach.
S-3Ocena podsumowująca: Ocena końcowa za laboratoria jako średnia ważona z: - ocen za sprawdziany (waga 40%), - ocen za programy (waga 60%).
S-4Ocena podsumowująca: Ocena końcowa za wykłady z kolokwium zaliczeniowego.

Zamierzone efekty kształcenia - wiedza

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_C/16_W01
Zna i rozumie podstawowe problemy stwawiane w ramach sztucznej inteligencji (ze szczególnym uwzględnieniem problemów: przeszukiwania grafów i drzew gier, klasyfikacji oraz optymalizacji dyskretnej), a także zna podstawowe algorytmy przeznaczonego do rozwiązywania ich.
I_1A_W12C-1, C-2, C-3, C-4, C-5, C-6M-1, M-2, M-5S-4

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_C/16_U01
Potrafi zaprogramować: algorytmy przeszukiwania grafów (A*, BFS), algorytmy przeszukiwania drzew gier (przycinanie alfa-beta), algorytmy uczenia sieci neuronowych (reguła perceptronu, back-propagation dla MLP), podstawowy algorytm genetyczny.
I_1A_U15, I_1A_U19C-1, C-2, C-3, C-4, C-5, C-6M-2, M-3, M-4S-1, S-2, S-3

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_1A_C/16_W01
Zna i rozumie podstawowe problemy stwawiane w ramach sztucznej inteligencji (ze szczególnym uwzględnieniem problemów: przeszukiwania grafów i drzew gier, klasyfikacji oraz optymalizacji dyskretnej), a także zna podstawowe algorytmy przeznaczonego do rozwiązywania ich.
2,0
3,0Uzyskanie przynajmniej 50% punktów z pisemnego kolokwium zaliczeniowego, sprawdzającego rozumienie podstawowych pojęć, problemów i algorytmów w ramach SI.
3,5
4,0
4,5
5,0

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_1A_C/16_U01
Potrafi zaprogramować: algorytmy przeszukiwania grafów (A*, BFS), algorytmy przeszukiwania drzew gier (przycinanie alfa-beta), algorytmy uczenia sieci neuronowych (reguła perceptronu, back-propagation dla MLP), podstawowy algorytm genetyczny.
2,0
3,0Uzyskanie przynajmniej 50% wartości średniej ważonej ocen za programy (60% wagi) oraz ze krótkie sprawdziany pisemne (40% wagi). Oceny cząstkowe wykazują znajomość i umiejętność zaprogramowania algorytmów.
3,5
4,0
4,5
5,0

Literatura podstawowa

  1. E. Feigenbaum, J. Feldman, Maszyny matematyczne i myślenie, PWN, 1963
  2. L. Rutkowski, Metody i techniki sztucznej inteligencji, PWN, 2005
  3. D. Rutkowska, M. Piliński, L. Rutkowski, Sieci neuronowe, algorytmy genetyczne i systemy rozmyte, PWN, 1997

Literatura dodatkowa

  1. S. Osowski, Sieci neuronowe w ujęciu algorytmicznym, WNT, 1996
  2. A. Piegat, Modelowanie i sterowanie rozmyte, EXIT, 1999

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Zapoznanie studentów z szalbonem klas przygotowanych w języku Java do implementacji algorytmu A* oraz ze środowiskiem Eclipse. Wstępna implementacja układanki sudoku.2
T-L-2Implementacja układanki sudoku. Testowanie działania poprzez zmiany (utrudnienia) w stanie początkowym. Obserwowanie liczby odwiedzonych stanów przez algorytm oraz liczby rozwiązań. Postawienie zadania domowego - implementacja programu do rozwiązywania układanki puzzle n^2 - 1 (na bazie zakończonej implementacji dla sudoku).2
T-L-3Sprawdzenie działania programu do rozwiązywania układanki puzzle n^2 - 1. Zapoznanie się z szablonem klas (Java) przeznaczonych do przeszukiwania drzew gier dwuosobowych oraz z silnikiem algorytmu przycinanie alpha-beta. Postawienie zadania domowego - implementacja programu grającego przeciwko człowiekowi w grę connect4.3
T-L-4Sprawdzenie działania programów studentów do gry w grę connect4. Testy nastawy różnych głębokości drzewa.Testy rozgrywek program kontra program. Analiza różnych możliwych heurystyek oceniających liście drzewa gry.2
T-L-5Implementacja w MATLABie algorytmu uczenia perceptronu Rosenblatt'a w wersji liniowej dla problemu na płaszczyźnie. Testowanie liczby kroków aktualizacyjnych ze względu na zmiany: współczynnika uczenia, rozmiaru zbioru danych, zmniejszenia marginesu separacji. Postawienie zadania domowego - implementacji programu do klasyfikacji binarnej nieliniowej z wykorzystaniem przekształcenia jądrowego.2
T-L-6Implementacja w MATLABie sieci neurnowej MLP dla aproksymacji funkcji dwóch zmiennych. Testowanie skuteczności uczenia ze względu na liczbę neuronów, wartość współczynnika uczenia, liczbę kroków uczących. Postawienie zadania domowego - dobranie odpowiedniej liczby neuronów techniką krzyżowej walidacji.2
T-L-7Implementacja w MATLABie algorytmu genetycznego do rozwiązywania problemu plecakowego. W tym: implementacja przynajmniej dwóch metod selekcji i dwóch metod krzyżowania. Postawienie zadania domowego - porównania rozwiązań genetycznych z rozwiązaniem dokładnym opartym na kracie.2
15

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Definicje sztucznej inteligencji i problemy stawiane w ramach niej m.in.: problem przeszukiwania grafów i drzew gier, problem n-hetmanów, puzzle n^2-1, sudoku i minmalne sudoku. problem Jeepa, problem plecakowy, problem komiwojażera, dylemat więźnia, iterowany dylemat więźnia, problem klasyfikacji danych, gra w naśladownictwo (test Turinga), sztuczne życie i automaty komórkowe, gra w życie Conwaya. Wzmianka o Statystycznej Teorii Uczenia Vapnika. Poglądy Minsky'ego o sztucznej inteligencji.2
T-W-2Szczegółowe omówienie algorytmów do przeszukiwania grafów: Breadth-First-Search, Best-First-Search, A*, Dijkstry. Pojęcie heurystyki. Efektywne struktury danych wykorzystywane w tych algorytmach: mapa haszująca, kolejka priorytetowa.2
T-W-3Szczegółowe omówienie algorytmów i pojęć z zakresu gier dwuosobowych o pełnej informacji. Algorytmy: MIN-MAX i przycinanie "alfa-beta". Złożoność obliczeniowa i pamięciowa. Efekt horyzontu.2
T-W-4Klasyfikacja danych (liniowa, binarna) na przykładzie perceptronu Rosenblatt'a. Schemat działania - przebieg wprzód. Algorytm uczenia. Liniowa separowalność danych. Twierdzenie Novikoffa o zbieżności i jego dowód.2
T-W-5Sieć neuronowa Multi-Layer-Perceptron. Sigmoidalna funkcja aktywacji. Uczenie w trybie on-line i off-line. Matematyczne wyprowadzenie metody wstecznej propagacji błędu back-propagation. Wzmianka o wariantach tej metody. Złożoność sieci - testowanie i krzyżowa walidacja.3
T-W-6Algorytmy genetyczne w problemach optymalizacji. Schemat głównej pętli genetycznej. Funkcja przystosowania. Metody selekcji: ruletkowa, rankingowa, turniejowa. Problem eksploracja a eksploatacja, uwagi o zbieżności i utrzymywaniu różnorodności w populacji. Krzyżowanie jedno, dwu i wielopunktowe. Mutacja i jej rola w AG dla problemów dyskretnych i ciągłych. Przykłady problemów: plecakowy, komiwojażera. Dokładne rozwiązanie problemu plecakowego za pomocą programowania dynamicznego i kraty.2
T-W-7Kolokwium zaliczeniowe.2
15

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Napisanie programu do rozwiązywania układanki puzzle n^2-1. Przygotowanie się do sprawdzianu z algorytmów do przeszukiwania grafów.4
A-L-2Napisanie programu do gry w grę connect4 (w tym ułożenie własnej heurystyki oceniającej liście drzewa). Przygotowanie się do sprawdzianu z drzew gier.4
A-L-3Napisanie programu do wykrywania odpowiedniej liczby neuronów w sieci MLP poprzez krzyżową walidację. Przygotowanie się do sprawdzianu z sieci MLP.4
A-L-4Napisanie programu porównującego rozwiązanie genetyczne dla problemu plecakowego z rozwiązaniem dokładnym opartym na kracie. Przygotowanie się do sprawdzianu z algorytmów genetycznych.4
A-L-5Udział w zajęciach laboratoryjnych15
A-L-6Zapoznanie się z materiłami (.pdf) dotyczącymi nieliniowej klasyfikacji (przekształcenie jądrowe + perceptron Rosenblatt'a) i wykonanie programu.4
35
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Udział w wykładzie7
A-W-2Konsultacje z prowadzącym.2
A-W-3Przygotowanie się do kolokwium zaliczeniowego.13
A-W-4Zaliczenie formy zajęć.2
24
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_C/16_W01Zna i rozumie podstawowe problemy stwawiane w ramach sztucznej inteligencji (ze szczególnym uwzględnieniem problemów: przeszukiwania grafów i drzew gier, klasyfikacji oraz optymalizacji dyskretnej), a także zna podstawowe algorytmy przeznaczonego do rozwiązywania ich.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W12ma podstawową wiedzę dotyczącą metod sztucznej inteligencji
Cel przedmiotuC-1Zapoznanie studentów z różnymi algorytmy przeszukiwania grafów stanów z dostosowaniem ich do różnych problemów praktycznych.
C-2Zapoznanie studentów z podstawowymi elementami gier dwuosobowych o pełnej informacji. Zapoznanie z algorytmami przeszukiwania drzew gier i wyboru najlepszego ruchu.
C-3Ukształtowanie rozumienia pojęć heurystyka, wypłata, strategia, efekt horyzontu.
C-4Zapoznanie studentów z zadaniami klasyfikacji i aproksymacji danych (jako zadaniami uczenia maszynowego). Zapoznanie z podstawowymi sieciami neurnowymi przeznaczonymi do tych zadań.
C-5Zapoznanie studentów z problemami optymalizacji dyskretnej. Ukształtowanie rozumienia rozwiązywania tych problemów poprzez metody losowe ukierunkowane (algorytmy genetyczne).
C-6Zapoznanie studentów z historią, podstawowymi problemami i definicjami sztucznej inteligencji.
Metody nauczaniaM-1Wykład informacyjny.
M-2Metoda przypadków.
M-5Pokaz.
Sposób ocenyS-4Ocena podsumowująca: Ocena końcowa za wykłady z kolokwium zaliczeniowego.
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Uzyskanie przynajmniej 50% punktów z pisemnego kolokwium zaliczeniowego, sprawdzającego rozumienie podstawowych pojęć, problemów i algorytmów w ramach SI.
3,5
4,0
4,5
5,0
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_C/16_U01Potrafi zaprogramować: algorytmy przeszukiwania grafów (A*, BFS), algorytmy przeszukiwania drzew gier (przycinanie alfa-beta), algorytmy uczenia sieci neuronowych (reguła perceptronu, back-propagation dla MLP), podstawowy algorytm genetyczny.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U15potrafi wykorzystywać poznane metody, modele matematyczne oraz symulacje komputerowe do rozwiązywania prostych problemów inżynierskich
I_1A_U19ma umiejętność wyboru algorytmu i struktur danych do rozwiązania określonego zadania inżynierskiego
Cel przedmiotuC-1Zapoznanie studentów z różnymi algorytmy przeszukiwania grafów stanów z dostosowaniem ich do różnych problemów praktycznych.
C-2Zapoznanie studentów z podstawowymi elementami gier dwuosobowych o pełnej informacji. Zapoznanie z algorytmami przeszukiwania drzew gier i wyboru najlepszego ruchu.
C-3Ukształtowanie rozumienia pojęć heurystyka, wypłata, strategia, efekt horyzontu.
C-4Zapoznanie studentów z zadaniami klasyfikacji i aproksymacji danych (jako zadaniami uczenia maszynowego). Zapoznanie z podstawowymi sieciami neurnowymi przeznaczonymi do tych zadań.
C-5Zapoznanie studentów z problemami optymalizacji dyskretnej. Ukształtowanie rozumienia rozwiązywania tych problemów poprzez metody losowe ukierunkowane (algorytmy genetyczne).
C-6Zapoznanie studentów z historią, podstawowymi problemami i definicjami sztucznej inteligencji.
Metody nauczaniaM-2Metoda przypadków.
M-3Gry dydaktyczne.
M-4Metody programowane z użyciem komputera.
Sposób ocenyS-1Ocena formująca: Pięć sprawdzianów (10 minutowych) na zakończenie każdego bloku tematycznego w trakcie laboratoriów.
S-2Ocena formująca: Pięć ocen programów realizowanych przez studentów jako zadania domowe na laboratoriach.
S-3Ocena podsumowująca: Ocena końcowa za laboratoria jako średnia ważona z: - ocen za sprawdziany (waga 40%), - ocen za programy (waga 60%).
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Uzyskanie przynajmniej 50% wartości średniej ważonej ocen za programy (60% wagi) oraz ze krótkie sprawdziany pisemne (40% wagi). Oceny cząstkowe wykazują znajomość i umiejętność zaprogramowania algorytmów.
3,5
4,0
4,5
5,0