Recent Changes · Search:

en pl

Functional Programming

Type Inference

Toss

  • (incorporates former Speagram)

Emacs

Kurs Pascala

Artificial General Intelligence

AI: Artificial Intelligence lab

Algorithmic Game Theory: Prediction Markets (po polsku)

Programming in Java

kurs pracy w systemie Linux

Evolutionary Algorithms

Animation

Data Stores and Data Mining

Language Understanding

Systemy Inteligentnych Agentów

Przetwarzanie Języka Naturalnego

Programowanie Funkcjonalne

PmWiki

pmwiki.org

add user

edit SideBar

SI /

SI

SI.SI History

Hide minor edits - Show changes to output

June 16, 2009, at 01:45 PM by lukstafi - DBp lookup
Changed line 200 from:
## Przeszukiwanie internetowych baz RDFowych: [[http://watson.kmi.open.ac.uk/Overview.html | watson]], [[http://swoogle.umbc.edu/ | Swoogle]], [[http://ec2.monrai.com:8890/facets/ | razorbase]]
to:
## Przeszukiwanie internetowych baz RDFowych: [[http://watson.kmi.open.ac.uk/Overview.html | watson]], [[http://swoogle.umbc.edu/ | Swoogle]], [[http://ec2.monrai.com:8890/facets/ | razorbase]], [[http://lookup.dbpedia.org/ | DBpedia URI Lookup]]
June 10, 2009, at 04:22 AM by lukstafi - transl
Changed lines 107-111 from:
## '''General Game Playing'''. To zadanie nie jest przypisane konkretnemu zestawowi zadań, bo obejmuje szerszy zakres materiału z wykładu. Można je oddać w terminie dowolnego zestawu zadań.
### Wersja podstawowa wariant ''(a)'': Uruchom system GGP: serwer gier i klientów (wykorzystaj dostępnego gotowego gracza).
### Wersja podstawowa wariant ''(b)'': Sformalizuj być może uproszczoną wersję jednej ze swoich ulubionych gier komputerowych (!) w ''Game Description Language''.
# Pracownia z gier 2: udoskonalenia i heurystyki
** [[http://en.wikipedia.org/wiki/Alpha-beta_pruning#Heuristic_improvements | Alfa-beta:
udoskonalenia]]
to:
## '''General Game Playing'''. (:if userlang pl:)To zadanie nie jest przypisane konkretnemu zestawowi zadań, bo obejmuje szerszy zakres materiału z wykładu. Można je oddać w terminie dowolnego zestawu zadań.(:if userlang en:)This exercise is not assigned to a particular deadline. You can submit it as from the later set.(:if:)
### (:if userlang pl:)Wersja podstawowa wariant(:if userlang en:)Basic version, option(:if:) ''(a)'': (:if userlang pl:)Uruchom system GGP: serwer gier i klientów (wykorzystaj dostępnego gotowego gracza).(:if userlang en:)Run the GGP system: the game server and clients, or connect a player to a running server (compile an existing player).(:if:)
### (:if userlang pl:)Wersja podstawowa wariant(:if userlang en:)Basic version, option(:if:) ''(b)'': (:if userlang pl:)Sformalizuj być może uproszczoną wersję jednej ze swoich ulubionych gier komputerowych (!) w(:if userlang en:)Formalize one of your favorite computer games, perhaps in a simplified version, in(:if:) ''Game Description Language''.
# (:if userlang pl:)Pracownia z gier 2:
udoskonalenia i heurystyki(:if userlang en:)Lab on games 2: refinements and heuristics(:if:)
** [[http://en.wikipedia.org/wiki/Alpha-beta_pruning#Heuristic_improvements | (:if userlang pl:)Alfa-beta: udoskonalenia(:if userlang en:)Alpha-beta pruning -- Heuristic improvements(:if:)
]]
Changed line 113 from:
** [[http://en.wikipedia.org/wiki/Transposition_table | Transposition table]] albo tzw. [[http://www.cs.ualberta.ca/~sutton/book/ebook/node68.html | afterstates]]
to:
** [[http://en.wikipedia.org/wiki/Transposition_table | Transposition table]] (:if userlang pl:)albo tzw.(:if userlang en:)or the so-called(:if:) [[http://www.cs.ualberta.ca/~sutton/book/ebook/node68.html | afterstates]]
Changed line 115 from:
** [[http://en.wikipedia.org/wiki/Expectiminimax | Gry losowe -- expecti(mini)max]]
to:
** [[http://en.wikipedia.org/wiki/Expectiminimax | (:if userlang pl:)Gry losowe(:if userlang en:)Random games(:if:) -- expecti(mini)max]]
Changed lines 120-123 from:
# Ostatnia grupa projektów: planowanie w przestrzeni planów, systemy regułowe, systemy eksperckie, agent, uczenie ze wzmocnieniem, zbiory danych ustrukturowanych: "relational learning".
## '''Uczący się system ekspercki'''. Być może znasz [[http://pl.wikipedia.org/wiki/20_pyta%C5%84 | grę w 20 pytań]], być może implementowałeś nawet kiedyś w BASICu program grający w nią, zgadujący słowo pomyślane przez gracza, i rozbudowujący drzewo decyzji poprzez zadawanie graczowi, po jego wygranej, pytania: jak zapytałbyś, żeby odróżnić twój przedmiot X od mojego zgadnięcia Y? Napisz system ekspercki będący udoskonaleniem tej gry. Taki system może mieć wiele zastosowań, np. w diagnostyce.
### Wersja podstawowa: zaprogramuj grę w 20 pytań, uczącą się jak wyżej. Wykorzystaj odpowiednie formularze z komentarzami tak, aby małym kosztem uzyskać od użytkownika poprawne językowo słowa-przedmioty do zgadywania oraz pytania o cechy rozważanego przedmiotu, z odpowiedziami "tak/nie". Zamiast budować drzewo decyzji, dla każdego znanego przedmiotu i każdego posiadanego pytania pamiętaj odpowiedź: tak / nie / nieznana (gdy pytanie nie było jeszcze dla tego przedmiotu zadane). Zgadując przedmiot, wystartuj od zbioru wszystkich znanych przedmiotów. Wybieraj pytania tak, by szybko zawęzić aktualnie rozpatrywany zbiór przedmiotów (np. po zawężeniu do aktualnego zbioru, pytanie ma tyle samo odpowiedzi "tak" co odpowiedzi "nie"). Odrzucaj z rozpatrywanego zbioru przedmioty, dla których odpowiedź jest inna niż udzielona przez gracza (zachowuj przedmioty z odpowiedzią "nieznana"). Zapamiętuj pytania systemu i odpowiedzi użytkownika, by na końcu gdy wiadomo już, o jaki przedmiot chodziło, uaktualnić odpowiedzi pytań z "nieznana" na odpowiednio "tak" lub "nie", a również wykryć konflikty jeśli odpowiedź się nie zgadza (to oznacza, że gracz wygrał, ale być może oszukiwał) i poinformować o tym.
### Rozszerzenie 1: automatycznie twórz i wykorzystuj ''reguły asocjacyjne''. Inaczej niż w "Data Mining", używaj jedynie niezawodnych reguł asocjacyjnych
: wyrzucaj reguły, dla których chociażby jeden znany przedmiot jest kontrprzykładem. Reguła asocjacyjna mówi, że jeśli odpowiedzi na pewien zestaw (dwóch, trzech, czterech) pytań są takie-a-takie, to odpowiedź na pewne inne pytanie będzie taka-a-taka. Do tworzenia reguł zaadoptuj jeden ze znanych algorytmów ([[http://en.wikipedia.org/wiki/Association_rule_learning | Association rule learning]]). W czasie zadawania pytań, gdy tylko pewna reguła "odpala" (odpowiedzi na odpowiednie pytania pokrywają się z jej przesłankami), sprawdź pytanie z jej wniosku: jeśli było już zadane, to w przypadku gdy reguła jest niepoprawna wykasuj ją, a jeśli nie było jeszcze zadane, to odłóż je na bok (tak jakby było już zadane). Powróć do pytań "rozstrzygniętych" przez reguły asocjacyjne dopiero, gdy pozostałe pytania nie rozstrzygną problemu -- pamiętaj, żeby wykasować reguły, które okażą się błędne.
to:
# (:if userlang pl:)Ostatnia grupa projektów: planowanie w przestrzeni planów, systemy regułowe, systemy eksperckie, agent, uczenie ze wzmocnieniem, zbiory danych ustrukturowanych: "relational learning".(:if userlang en:)The last set of projects: plan-space planning, rule engines / production systems, expert systems, agents, reinforcement learning, structured data sets: "relational learning".(:if:)
## (:if userlang pl:)'''Ucz
ący się system ekspercki'''. Być może znasz [[http://pl.wikipedia.org/wiki/20_pyta%C5%84 | grę w 20 pytań]], być może implementowałeś nawet kiedyś w BASICu program grający w nią, zgadujący słowo pomyślane przez gracza, i rozbudowujący drzewo decyzji poprzez zadawanie graczowi, po jego wygranej, pytania: jak zapytałbyś, żeby odróżnić twój przedmiot X od mojego zgadnięcia Y? Napisz system ekspercki będący udoskonaleniem tej gry. Taki system może mieć wiele zastosowań, np. w diagnostyce.(:if userlang en:)'''Learning expert system'''. Perhaps you know the [[http://en.wikipedia.org/wiki/Twenty_questions | Twenty questions]] quiz. Perhaps you have even implemented it in the old times, a program guessing a word and building a decision tree, grown by asking the player "How would you ask to distinguish my answer from the thing you thought about?" Write an expert system being an improved version of such game. The system can have many uses, like in diagnostics.(:if:)
### (:if userlang pl:)Wersja podstawowa: zaprogramuj grę w 20 pyta
ń, uczącą się jak wyżej. Wykorzystaj odpowiednie formularze z komentarzami tak, aby małym kosztem uzyskać od użytkownika poprawne językowo słowa-przedmioty do zgadywania oraz pytania o cechy rozważanego przedmiotu, z odpowiedziami "tak/nie".(:if userlang en:)Basic version: write a Twenty questions game-inspired program that learns as above. Use forms with comments so as to acquire from the user well formed words-things to guess and "yes/no" questions about features of the considered thing.(:if:) (:if userlang pl:)Zamiast budować drzewo decyzji, dla każdego znanego przedmiotu i każdego posiadanego pytania pamiętaj odpowiedź: tak / nie / nieznana (gdy pytanie nie było jeszcze dla tego przedmiotu zadane). Zgadując przedmiot, wystartuj od zbioru wszystkich znanych przedmiotów. Wybieraj pytania tak, by szybko zawęzić aktualnie rozpatrywany zbiór przedmiotów (np. po zawężeniu do aktualnego zbioru, pytanie ma tyle samo odpowiedzi "tak" co odpowiedzi "nie").(:if userlang en:)Instead of building the decision tree, for each known thing and each known question remember the answer: yes / no / unknown (when the question was not yet asked for that thing). When guessing the object, start from the set of all known objects. Select questions to quickly narrow the current set of objects considered (e.g. when restricted to the considered set, the question has as many "yes" as "no" answers).(:if:) (:if userlang pl:)Odrzucaj z rozpatrywanego zbioru przedmioty, dla których odpowiedź jest inna niż udzielona przez gracza (zachowuj przedmioty z odpowiedzią "nieznana"). Zapamiętuj pytania systemu i odpowiedzi użytkownika, by na końcu gdy wiadomo już, o jaki przedmiot chodziło, uaktualnić odpowiedzi pytań z "nieznana" na odpowiednio "tak" lub "nie", a również wykryć konflikty jeśli odpowiedź się nie zgadza (to oznacza, że gracz wygrał, ale być może oszukiwał) i poinformować o tym.(:if userlang en:)Discard the objects that disagree with the answer, but keep the objects with answer "unknown". Record the questions of the system and the answers of the user, in order to update the answers from "unknown", and also detect conflicts in knowledge (which means, that the player won, but perhaps by cheating).(:if:)
### (:if userlang pl:)Rozszerzenie 1: automatycznie twórz i wykorzystuj ''reguły asocjacyjne''. Inaczej niż w "Data Mining", używaj jedynie niezawodnych reguł asocjacyjnych: wyrzucaj reguły, dla których chociażby jeden znany przedmiot jest kontrprzykładem. Reguła asocjacyjna mówi, że jeśli odpowiedzi na pewien zestaw (jednego, dwóch, trzech, czterech) pytań są takie-a-takie, to odpowiedź na pewne inne pytanie będzie taka-a-taka. Do tworzenia reguł zaadoptuj jeden ze znanych algorytmów(:if userlang en:)Extension 1: create and use ''association rules''. Initially use only infallible rules: discard rules with at least one counterexample. An association rule says that when answers a set of (one, two, three, four, ...) questions are as given, then an answer to yet another question will be as given. You can use one of the known algorithms for(:if:) ([[http://en.wikipedia.org/wiki/Association_rule_learning | Association rule learning]]). (:if userlang pl:)W czasie zadawania pytań, gdy tylko pewna reguła "odpala" (odpowiedzi na odpowiednie pytania pokrywają się z jej przesłankami), sprawdź pytanie z jej wniosku: jeśli było już zadane, to w przypadku gdy reguła jest niepoprawna wykasuj ją, a jeśli nie było jeszcze zadane, to odłóż je na bok (tak jakby było już zadane). Powróć do pytań "rozstrzygniętych" przez reguły asocjacyjne dopiero, gdy pozostałe pytania nie rozstrzygną problemu -- pamiętaj, żeby wykasować reguły, które okażą się błędne.(:if userlang en:)During the inquiry, as soon as a rule "fires" (its premises agree with the questions asked so far), test the question from its conclusion: if it was answered already differently, remove the association rule, if it was not answered, [...] (:if:)
Added lines 181-182:
### [[http://jena.sourceforge.net/ARQ/Tutorial/ | SPARQL Tutorial]] przy [[http://jena.sourceforge.net/ | Java Semantic Web framework ''Jena'']]
### Innym enginem Javy do pracy z RDFami jest [[http://www.openrdf.org/ | Sesame]]
Deleted lines 186-187:
### [[http://jena.sourceforge.net/ARQ/Tutorial/ | SPARQL Tutorial]] przy [[http://jena.sourceforge.net/ | Java Semantic Web framework ''Jena'']]
### Innym enginem Javy do pracy z RDFami jest [[http://www.openrdf.org/ | Sesame]]
Changed line 189 from:
#### [[http://linkeddata.org/ |''LinkedData''] pozwala dobrać się do pojęcia poprzez http, np. [[http://dbpedia.org/resource/Busan]], [[http://dbpedia.org/resource/The_Lord_of_the_Rings]] (zwraca jako RDFy "/resource/" lub jako html dla przeglądarki "/page/")
to:
#### [[http://linkeddata.org/ |''LinkedData'']] pozwala dobrać się do pojęcia poprzez http, np. [[http://dbpedia.org/resource/Busan]], [[http://dbpedia.org/resource/The_Lord_of_the_Rings]] (zwraca jako RDFy "/resource/" lub jako html dla przeglądarki "/page/")
Changed line 179 from:
## [[http://www.w3.org/TR/rdf-primer/ | RDF]] ([[Primer]], [[http://www.w3.org/TR/rdf-concepts/ | Concepts]], [[http://www.w3.org/TR/rdf-syntax-grammar/ | Syntax]], [[http://www.w3.org/TR/rdf-mt/ | Semantics]], [[http://www.w3.org/TR/rdf-schema/ | Vocabulary]], and [[http://www.w3.org/TR/rdf-testcases/ | Test Cases]]) i [[http://www.w3.org/TR/rdf-sparql-query/ | SPARQL]]
to:
## [[http://www.w3.org/TR/rdf-primer/ | RDF]] ([[http://www.w3.org/TR/rdf-primer/ | Primer]], [[http://www.w3.org/TR/rdf-concepts/ | Concepts]], [[http://www.w3.org/TR/rdf-syntax-grammar/ | Syntax]], [[http://www.w3.org/TR/rdf-mt/ | Semantics]], [[http://www.w3.org/TR/rdf-schema/ | Vocabulary]], and [[http://www.w3.org/TR/rdf-testcases/ | Test Cases]]) i [[http://www.w3.org/TR/rdf-sparql-query/ | SPARQL]]
Changed lines 5-6 from:
to:
** [[#DBpedia | Systemy bogate w wiedzę 2: RDF i DBpedia]]
Changed line 178 from:
# Pracownia systemy bogate w wiedzę 2: ''RDF'', ''SPARQL'', ''OWL'', '''DBpedia''', '''Freebase'''
to:
# [[#DBpedia]] Pracownia systemy bogate w wiedzę 2: ''RDF'', ''SPARQL'', ''OWL'', '''DBpedia''', '''Freebase'''
Changed lines 201-203 from:
## [[http://www.freebase.com/ | Freebase]]
to:
## [[http://www.freebase.com/ | Freebase]] (from [[http://www.metaweb.com/ | Metaweb]])
*** ''Freebase'' jest rozszerzana przez zarejestrowanych użytkowników jak Wikipedia, ale użytkownicy nie mogą modyfikować istniejących fragmentów (żeby nie zepsuć aplikacji -- kompatybilność), co pogarsza jakość i zwiększa redundancję.
*** Kiepska (nieprzemyślana) obsługa negacji i braku wiedzy.
Added lines 206-215:
**** Patrz od strony 31.
**** Metaweb używa reprezentacji grafowej podobnej do RDF (ale swojej własnej przestrzeni nazw), z tym że po prawej stronie strzałki jest węzeł '''i/lub''' wartość, zamiast węzła lub wartości tak jak w RDF (czyli mamy czwórki a nie trójki).
**** MQL pozwala nie tylko czytać, ale też wstawiać do bazy (jak SQL).
**** MQL używa JSON.
**** Pola bez wartości w zapytaniu to odpowiedniki zmiennych wzorca.
**** Mocno bazuje na metaforze obiektu (hmm... JavaScrit?), pole @@"id":null@@ przechwytuje identyfikator obiektu ("subject" czyli pierwszy element trójki/czwórki).
***** Obiekt może mieć wiele identyfikatorów.
**** Są "dzikie karty" dla atrybutów, oraz operator inwersji biorący wartość i zwracający atrybut obiektu o tej wartości.
**** Inne wi&#281;zy ni&#380; r&#243;wno&#347;&#263; na atrybucie: @@"date_of_birth<" : "2000"@@ (od strony 78)
**** Wiele konstrukcji, ale nie mog&#281; znale&#378;&#263; zmiennych!
June 09, 2009, at 03:00 AM by lukstafi - Freebase
Added line 176:
## [[http://texai.org/papers/bootstrap-dialog-a-conversational-english-parsing-and-generation-system.pdf | The Texai English Bootstrap Dialog System]]
Changed lines 178-183 from:
## [[http://www.w3.org/TR/REC-rdf-syntax/ | RDF]] i [[http://www.w3.org/TR/rdf-sparql-query/ | SPARQL]]
to:
## [[http://www.w3.org/TR/rdf-primer/ | RDF]] ([[Primer]], [[http://www.w3.org/TR/rdf-concepts/ | Concepts]], [[http://www.w3.org/TR/rdf-syntax-grammar/ | Syntax]], [[http://www.w3.org/TR/rdf-mt/ | Semantics]], [[http://www.w3.org/TR/rdf-schema/ | Vocabulary]], and [[http://www.w3.org/TR/rdf-testcases/ | Test Cases]]) i [[http://www.w3.org/TR/rdf-sparql-query/ | SPARQL]]
*** RDF dostarcza struktury danych i narz&#281;dzi do przechowywania wiedzy, ale r&#243;wnie&#380; zr&#281;bu ontologii do jej ustrukturowania
## [[http://www.w3.org/TR/owl2-new-features/ | OWL2]], [[http://www.w3.org/TR/owl-features/ | OWL Features]], [[http://www.w3.org/TR/owl-guide/ | OWL Guide]], [[http://www.w3.org/TR/owl-ref/ | OWL Reference]]
*** Dopiero OWL [[http://www.w3.org/TR/owl-features/#s2 | dostarcza troch&#281; semantyki]] dla wiedzy: zr&#261;b ontologii zale&#380;no&#347;ci pomi&#281;dzy relacjami oraz narz&#281;dzia do wnioskowania.
*** OWL wprowadza ograniczenia na wyra&#380;alno&#347;&#263;, by umo&#380;liwi&#263; szybkie wnioskowania (logiki deskryptywne). OWL 2 jest bardziej ekspresywny ni&#380; OWL-DL. OWL Full to wariant bardziej zgodny z RDF Schema, "nieznacznie" wykraczaj&#261;c poza logiki deskryptywne.
*** [[http://en.wikipedia.org/wiki/Description_logic#Description_Logic_Reasoners | Solvery dla DL]], [[http://bossam.wordpress.com/ | Bossam: rule engine dla OWL
]]
Added line 189:
***** ([[http://esw.w3.org/topic/TaskForces/CommunityProjects/LinkingOpenData/DataSets | SWEO Community Project: Linking Open Data / Data sets]])
Changed lines 196-198 from:
### [[http://wiki.dbpedia.org/Publications?v=s9q | Publikacje]]
**** [[http://www.mkbergman.com/?p=354 | Did You Blink? The Structured Web Just Arrived]] (wczesny blog o DBpedii)
to:
### [[http://wiki.dbpedia.org/Publications?v=s9q | Publikacje]], wczesne blogi:
**** [[http://www.mkbergman.com/?p=354 | Did You Blink? The Structured Web Just Arrived]]
**** [[http://dezinformacja.org/tarpit/archiwum/dbpedia_niedowiarkom | DBpedia - niedowiarkom gw&#243;&#378;d&#378; do trumny]]
## Przeszukiwanie internetowych baz RDFowych: [[http://watson.kmi.open.ac.uk/Overview.html | watson]], [[http://swoogle.umbc.edu/ | Swoogle]], [[http://ec2.monrai.com:8890/facets/ | razorbase]]
## [[http://www.freebase.com/ | Freebase]]
### [[http://www.freebase.com/view/en/using_the_query_editor | Using the Query Editor]]
**** [[http://download.freebase.com/MQLReferenceGuide.pdf | Metaweb Query Language Reference Guide]]
### [[http://www.freebase.com/app/queryeditor | Query Editor]]
### [[http://rdf.freebase.com/ | Freebase RDF]] (Linked Data
)
### [[http://sets.narphorium.user.dev.freebaseapps.com/ | Przyk&#322;adowa aplikacja: Sets]] ([[http://acre.freebase.com/#app=/user/narphorium/sets&file=index | jej kod &#378;r&#243;d&#322;owy]])
### [[http://download.freebase.com/datadumps/ | Download: Freebase Data Dumps]]
June 09, 2009, at 12:51 AM by lukstafi - DBpedia
Changed line 168 from:
# Pracownia systemy bogate w wiedz&#281; 1 ('''Cyc''', '''RDF''', '''OWL''', '''Texai''')
to:
# Pracownia systemy bogate w wiedz&#281; 1: wnioskowanie, '''Cyc''', '''OpenCyc''', '''Texai'''
Deleted line 171:
# Pracownia systemy bogate w wiedz&#281; 2 ('''Cyc''', '''RDF''', '''OWL''', '''Texai''')
Added lines 176-191:
# Pracownia systemy bogate w wiedz&#281; 2: ''RDF'', ''SPARQL'', ''OWL'', '''DBpedia''', '''Freebase'''
## [[http://www.w3.org/TR/REC-rdf-syntax/ | RDF]] i [[http://www.w3.org/TR/rdf-sparql-query/ | SPARQL]]
### [[http://jena.sourceforge.net/ARQ/Tutorial/ | SPARQL Tutorial]] przy [[http://jena.sourceforge.net/ | Java Semantic Web framework ''Jena'']]
### Innym enginem Javy do pracy z RDFami jest [[http://www.openrdf.org/ | Sesame]]
## [[http://en.wikipedia.org/wiki/DBpedia | DBpedia]], [[http://wiki.dbpedia.org/About | DBpedia Project website]] to po pierwsze: Wikipedia przerobiona automatycznie na baz&#281; RDFow&#261;, ma m.in. wst&#281;py do wszystkich artyku&#322;&#243;w w kilku j&#281;zykach w tym po polsku, kategorie oraz [[http://en.wikipedia.org/wiki/MOS:INFOBOX | infoboxy]]; po drugie: ma ambicj&#281; agregata ontologii dla LinkedData (ontologia samej DBpedia jest p&#322;ytka, "organizuje infoboxy")
### [[http://wiki.dbpedia.org/OnlineAccess?v=tf8 | Dost&#281;p do DBpedii]]
#### [[http://linkeddata.org/ |''LinkedData''] pozwala dobra&#263; si&#281; do poj&#281;cia poprzez http, np. [[http://dbpedia.org/resource/Busan]], [[http://dbpedia.org/resource/The_Lord_of_the_Rings]] (zwraca jako RDFy "/resource/" lub jako html dla przegl&#261;darki "/page/")
#### [[http://dbpedia.org/sparql | ko&#324;c&#243;wka SPARQL]], np. [[http://tinyurl.com/n9qart | People who were born in Berlin before 1900]]
***** SPARQL jest poszerzony o "text search", przydatne m.in. do abstrakt&#243;w (wst&#281;p&#243;w artyku&#322;&#243;w)
#### [[http://wiki.dbpedia.org/Downloads32 | Download]]
### [[http://wiki.dbpedia.org/Interlinking?v=6j5 | Integracja z innymi &#378;r&#243;d&#322;ami]]: zwr&#243;&#263; uwag&#281; na "owl:sameAs" oraz "dbpprop:wordnet_type", np. [[http://dbpedia.org/page/Air_France]]
**** [[http://wiki.dbpedia.org/OpenCyc?v=uy6 | Integracja z (Open)Cyc]]
**** "owl:sameAs"="is owl:sameAs of" (r&#243;wno&#347;&#263; jest symetryczna), ale DBpedia i Freebase nie przeprowadzaj&#261; wnioskowania; proste wnioskowania mo&#380;na zakodowa&#263; jako kwerendy SPARQL
### [[http://wiki.dbpedia.org/Publications?v=s9q | Publikacje]]
**** [[http://www.mkbergman.com/?p=354 | Did You Blink? The Structured Web Just Arrived]] (wczesny blog o DBpedii)

Changed line 83 from:
### (:if userlang pl:)Rozszerzenie 2: ''najpierw'' rozwi&#261;&#380; &#322;amig&#322;&#243;wk&#281; algorytmicznie (wariant ''a'') lub wi&#281;zami (wariant ''b''), a nast&#281;pnie algorytmem A*. W jaki spos&#243;b przekszta&#322;ci&#322;e&#347; algorytm rozwi&#261;zywania problemu w heurystyk&#281;?(:if userlang en:)Extension 2: ''first'' solve the puzzle algorithmically (that is, by devising a puzzle-specific solution algorithm) case ''a'', or with constraints (case ''b''), and only then solve it using A*. How have you transformed the algorithm into the heuristic?(:if:)
to:
### (:if userlang pl:)Rozszerzenie 2: ''najpierw'' rozwi&#261;&#380; &#322;amig&#322;&#243;wk&#281; algorytmicznie (tzn. tak jak na pracowni z Programowania) (wariant ''a'') lub wi&#281;zami (wariant ''b''), a nast&#281;pnie algorytmem A*. W jaki spos&#243;b przekszta&#322;ci&#322;e&#347; algorytm rozwi&#261;zywania problemu w heurystyk&#281;?(:if userlang en:)Extension 2: ''first'' solve the puzzle algorithmically (that is, by devising a puzzle-specific solution algorithm) case ''a'', or with constraints (case ''b''), and only then solve it using A*. How have you transformed the algorithm into the heuristic?(:if:)
Changed lines 4-5 from:
** [[Attach:Soar.pdf | Om&#243;wienie systemu Soar]] ([[Attach:Soar.odp.zip | odp]])
to:
** [[Attach:Soar.pdf | Om&#243;wienie systemu Soar]] ([[Attach:Soar.odp | odp]])
Changed line 166 from:
## [[Attach:Soar.pdf | Om&#243;wienie systemu Soar]] ([[Attach:Soar.odp.zip | odp]])
to:
## [[Attach:Soar.pdf | Om&#243;wienie systemu Soar]] ([[Attach:Soar.odp | odp]])
Changed lines 4-5 from:
** [[Attach:Soar.pdf | Om&#243;wienie systemu Soar]] ([[Attach:Soar.odp | odp]])
to:
** [[Attach:Soar.pdf | Om&#243;wienie systemu Soar]] ([[Attach:Soar.odp.zip | odp]])
Changed line 166 from:
## [[Attach:Soar.pdf | Om&#243;wienie systemu Soar]] ([[Attach:Soar.odp | odp]])
to:
## [[Attach:Soar.pdf | Om&#243;wienie systemu Soar]] ([[Attach:Soar.odp.zip | odp]])
June 03, 2009, at 09:46 AM by lukstafi - SOAR
Changed lines 4-6 from:
** (:if userlang pl:)link Akinator do "20 pyta&#324;"(:if userlang en:)Akinator link under "20 questions"(:if:)
** [[http://aigamedev.com/open/article/clearance-based-pathfinding/ | Clearance-based Pathfinding and Hierarchical Annotated A* Search]] (AIGameDev
)
to:
** [[Attach:Soar.pdf | Om&#243;wienie systemu Soar]] ([[Attach:Soar.odp | odp]])
Added line 166:
## [[Attach:Soar.pdf | Om&#243;wienie systemu Soar]] ([[Attach:Soar.odp | odp]])
June 02, 2009, at 04:22 AM by lukstafi - OpenCyc lab
Changed lines 173-176 from:
## [[http://en.wikipedia.org/wiki/Web_Ontology_Language]]
to:
## [[http://videolectures.net/psm08_witbrock_lrk/ | Learning to Reason Knowledge Acquisition in Cyc]] (&#347;wietna prezentacja!)
*** [[http://videolectures.net/iswc08_witbrock_fsc/ | Free Semantic Content: Using OpenCyc in Semantic Web Applications]] (s&#322;absza, ale wi&#281;cej o Semantic Web)
## Indukcja, abdukcja.
## Parsowanie i generowanie j&#281;zyka naturalnego.
May 26, 2009, at 08:05 AM by lukstafi - CcTut
Changed line 171 from:
## [[http://agi-09.org/slides/friday/1_reed_opencyctutorial.ppt | Foundations of Knowledge Representation in Cyc]] (Stephen Reed)
to:
## [[http://agi-09.org/slides/friday/1_reed_opencyctutorial.ppt | Foundations of Knowledge Representation in Cyc]] (Stephen Reed) [[Attach:OpenCycTut.pdf]]
May 26, 2009, at 07:54 AM by lukstafi - Cyc
Deleted line 165:
# Jeszcze jedna grupa projekt&#243;w: systemy bogate w wiedz&#281;. (koniec maja)
Added lines 168-173:
# Pracownia systemy bogate w wiedz&#281; 1 ('''Cyc''', '''RDF''', '''OWL''', '''Texai''')
## [[http://www.opencyc.com/doc/tut/index_html?expand_all=1 | Cyc 101 Tutorial]]
### [[http://www.opencyc.com/cyc/doc/tut/DnLoad/opencyc.zip | all PPT slides]]
## [[http://agi-09.org/slides/friday/1_reed_opencyctutorial.ppt | Foundations of Knowledge Representation in Cyc]] (Stephen Reed)
# Pracownia systemy bogate w wiedz&#281; 2 ('''Cyc''', '''RDF''', '''OWL''', '''Texai''')
## [[http://en.wikipedia.org/wiki/Web_Ontology_Language]]
May 21, 2009, at 02:57 PM by lukstafi - hierarch Astar
Changed lines 5-6 from:
to:
** [[http://aigamedev.com/open/article/clearance-based-pathfinding/ | Clearance-based Pathfinding and Hierarchical Annotated A* Search]] (AIGameDev)
Added line 66:
** [[http://aigamedev.com/open/article/clearance-based-pathfinding/ | Clearance-based Pathfinding and Hierarchical Annotated A* Search]] (AIGameDev)
May 19, 2009, at 01:47 PM by lukstafi - Akinator
Changed lines 4-5 from:
** (:if userlang pl:)linki dot. rozwi&#261;zywania Sokobana(:if userlang en:)Sokoban solving links(:if:)
to:
** (:if userlang pl:)link Akinator do "20 pyta&#324;"(:if userlang en:)Akinator link under "20 questions"(:if:)
Added line 124:
*** [[http://en.akinator.com/ | Akinator]] zgaduje s&#322;ynne postacie.
May 14, 2009, at 12:54 AM by lukstafi - set 3
Changed lines 71-84 from:
# Projekt z przeszukiwania heurystycznego i gier: warianty
## '''Znajdowanie &#347;cie&#380;ki w dynamicznym &#347;rodowisku''': zaprogramuj agenta przechodz&#261;cego z punktu startowego do punktu docelowego w sytuacji, gdy mapa kt&#243;r&#261; dysponuje nie odpowiada dok&#322;adnie rzeczywisto&#347;ci, albo rzeczywisto&#347;&#263; jest zmienna.
### Wersja podstawowa: mamy sytuacj
&#281; podobn&#261; do rozpatrywanej na pracowni: szukamy &#347;cie&#380;ki na dwuwymiarowej arenie. Jednak mamy do dyspozycji dwie mapy: ''map&#281;'', kt&#243;ra jest w pe&#322;ni dost&#281;pna algorytmowi, oraz ''aren&#281;'', kt&#243;r&#261; b&#281;dziemy udost&#281;pnia&#263; algorytmowi tylko dla kom&#243;rek s&#261;siaduj&#261;cych z zajmowan&#261; przez agenta (mo&#380;esz udost&#281;pni&#263; bezpo&#347;rednio s&#261;siaduj&#261;ce b&#261;d&#378; s&#261;siaduj&#261;ce w ustalonym promieniu); algorytm oczywi&#347;cie powinien zapami&#281;tywa&#263; potrzebn&#261; informacj&#281;. Za&#322;&#243;&#380;my wst&#281;pnie, &#380;e mapa nie ma fa&#322;szywych przeszk&#243;d. Zaprowad&#378; agenta do celu minimalizuj&#261;c, w kolejno&#347;ci istotno&#347;ci: ilo&#347;&#263; rzeczywi&#347;cie podj&#281;tych przez agenta krok&#243;w, z&#322;o&#380;ono&#347;&#263; oblicze&#324; wykonywanych podczas ruchu agenta, z&#322;o&#380;ono&#347;&#263; oblicze&#324; wst&#281;pnych. Sugerowane algorytmy: "Adaptive A*", "Real-Time Adaptive A*", "Prioritorized Learning Real-Time A*".
**** Alternatywnie, agent dysponuje pe
&#322;n&#261; informacj&#261; o arenie, ale na arenie pojawiaj&#261; si&#281; nowe przeszkody w przypadkowych miejscach i momentach.
### Rozszerzenie 1: je&#347;li w wersji podstawowej udost&#281;pnia&#322;e&#347; algorytmowi jedynie kom&#243;rki areny bezpo&#347;rednio s&#261;siaduj&#261;ce z agentem, to teraz rozszerz "pole widzenia" do wi&#281;kszego promienia. Wariant ''(1a)'': wprowad&#378; "zawodno&#347;&#263; obserwacji": specjalne kom&#243;rki, kt&#243;re z s&#261;siedztwa wygl&#261;daj&#261; na osi&#261;galne, ale akcja wkroczenia na nie okazuje si&#281; niewykonalna. Wariant ''(1b)'': wprowad&#378; zmienny cel: na arenie cel mo&#380;e okaza&#263; si&#281; w innym miejscu, ni&#380; by&#322; na mapie (agent musi zaobserwowa&#263; kom&#243;rk&#281; prawdziwego celu, &#380;eby si&#281; przekona&#263;) -- jednak zwykle niedaleko od celu z mapy.
#### Rozszerzenie 2: wolno przemieszczaj&#261;cy si&#281; cel: po zbli&#380;eniu si&#281; agenta do celu, ten zaczyna ucieka&#263;.
### Rozszerzenie 3: uwzgl&#281;dnij mo&#380;liwo&#347;&#263; wyst&#281;powania na arenie "okazji": kom&#243;rek osi&#261;galnych, kt&#243;re nie by&#322;y osi&#261;galne na mapie. Sugerowane algorytmy: "Lifelong Planning A*", "D* Lite".
**** Alternatywnie, agent dysponuje pe&#322;n&#261; informacj&#261; o arenie
, ale arena mo&#380;e si&#281; w ka&#380;dej chwili "nieznacznie" zmieni&#263;.
## '''Konstrukcja heurystyk''': rozwi&#261;&#380; (napisz rozwi&#261;zywaczk&#281;) przy pomocy algorytmu A* jedn&#261; z [[http
://www.ii.uni.wroc.pl/~prych/SI/puzzle/ | &#322;amig&#322;&#243;wek z budapeszta&#324;skich mistrzostw]].
### Wersja podstawowa: [[http
://www.ii.uni.wroc.pl/~prych/SI/wstepne.html | Pawe&#322; Rychlikowski sugeruje ''Hiroimono'' lub ''Divide into Squares'']].
### Rozszerzenie 1: rozwi&#261;&#380; inn&#261; spo&#347;r&#243;d &#322;amig&#322;&#243;wek. Por&#243;wnaj opracowane przez ciebie heurystyki: jakie idee maj&#261; wsp&#243;lne, a co jest w nich specyficzne dla zadania?
### Rozszerzenie 2: ''najpierw'' rozwi&#261;&#380; &#322;amig&#322;&#243;wk&#281; algorytmicznie (wariant ''a'') lub wi&#281;zami
(wariant ''b''), a nast&#281;pnie algorytmem A*. W jaki spos&#243;b przekszta&#322;ci&#322;e&#347; algorytm rozwi&#261;zywania problemu w heurystyk&#281;?
## '''Sokoban''': rozwi
&#261;&#380; (napisz rozwi&#261;zywaczk&#281;) przy pomocy algorytmu A* gr&#281; logiczn&#261; Sokoban.
### Rozszerzenie 1 -- '''strategia a taktyka''': podziel rozwi&#261;zywaczk&#281; na dwa poziomy. Na poziomie strategicznym, algorytm A* szuka rozwi&#261;zania w przestrzeni stan&#243;w taktycznie istotnych, gdzie pojedyncza akcja wymaga wielu krok&#243;w magazyniera (w szczeg&#243;lno&#347;ci, dok&#322;adne po&#322;o&#380;enie magazyniera jest nieistotne, istotne s&#261; pozycje osi&#261;galne przez magazyniera). Na poziomie taktycznym, zaprogramuj mechanizm znajdowania konfiguracji taktycznie istotnych osi&#261;galnych z bie&#380;&#261;cej konfiguracji. Poziom taktyczny powinien zwraca&#263; zbi&#243;r akcji-taktyk: konfiguracja wynikowa (dla poziomu strategicznego), faktyczne ruchy magazyniera do wykonania (dla systemu gry). Przyk&#322;ad: @@#@@ to &#347;ciana, @@*@@ to skrzynia, tylko kra&#324;cowe pozycje s&#261; istotne:[@
to:
# (:if userlang pl:)Projekt z przeszukiwania heurystycznego i gier: warianty(:if userlang en:)Project on heuristic search and games: the set of exercises(:if:)
## (:if userlang pl:)'''Znajdowanie
&#347;cie&#380;ki w dynamicznym &#347;rodowisku''': zaprogramuj agenta przechodz&#261;cego z punktu startowego do punktu docelowego w sytuacji, gdy mapa kt&#243;r&#261; dysponuje nie odpowiada dok&#322;adnie rzeczywisto&#347;ci, albo rzeczywisto&#347;&#263; jest zmienna.(:if userlang en:)'''Finding a path in a dynamical environment''': code an agent to go from a source to a goal in case, where the map at its disposal is not exactly the reality, or if the reality changes over time.(:if:)
### (:if userlang pl:)Wersja podstawowa: mamy sytuacj
&#281; podobn&#261; do rozpatrywanej na pracowni: szukamy &#347;cie&#380;ki na dwuwymiarowej arenie. Jednak mamy do dyspozycji dwie mapy: ''map&#281;'', kt&#243;ra jest w pe&#322;ni dost&#281;pna algorytmowi, oraz ''aren&#281;'', kt&#243;r&#261; b&#281;dziemy udost&#281;pnia&#263; algorytmowi tylko dla kom&#243;rek s&#261;siaduj&#261;cych z zajmowan&#261; przez agenta (mo&#380;esz udost&#281;pni&#263; bezpo&#347;rednio s&#261;siaduj&#261;ce b&#261;d&#378; s&#261;siaduj&#261;ce w ustalonym promieniu); algorytm oczywi&#347;cie powinien zapami&#281;tywa&#263; potrzebn&#261; informacj&#281;. Za&#322;&#243;&#380;my wst&#281;pnie, &#380;e mapa nie ma fa&#322;szywych przeszk&#243;d. Zaprowad&#378; agenta do celu minimalizuj&#261;c, w kolejno&#347;ci istotno&#347;ci: ilo&#347;&#263; rzeczywi&#347;cie podj&#281;tych przez agenta krok&#243;w, z&#322;o&#380;ono&#347;&#263; oblicze&#324; wykonywanych podczas ruchu agenta, z&#322;o&#380;ono&#347;&#263; oblicze&#324; wst&#281;pnych. Sugerowane algorytmy: "Adaptive A*", "Real-Time Adaptive A*", "Prioritorized Learning Real-Time A*".(:if userlang en:)Basic version: we have a case similar to the one dealt with in the lab: searching for a path on a two-dimensional arena. But we are working with two maps: a ''map'' fully available to the algorithm and an ''arena'', which will be made available to the algorithm only for the cells neighboring with the agent (immediately, or within some radius); the algorithm should memorize the required information. Minimise, from more to less important: the amount of agent steps taken, the amount of computation per step, the amount of computation before the first step. Suggested algorithms: "Adaptive A*", "Real-Time Adaptive A*", "Proritorized Learning Real-Time A*".(:if:)
**** (:if userlang
pl:)Alternatywnie, agent dysponuje pe&#322;n&#261; informacj&#261; o arenie, ale na arenie pojawiaj&#261; si&#281; nowe przeszkody w przypadkowych miejscach i momentach.(:if userlang en:)Looking at it differently, the agent has access to complete information about the arena, but there are new obstacles popping up on the arena.(:if:)
### (:if userlang pl:)Rozszerzenie 1: je
&#347;li w wersji podstawowej udost&#281;pnia&#322;e&#347; algorytmowi jedynie kom&#243;rki areny bezpo&#347;rednio s&#261;siaduj&#261;ce z agentem, to teraz rozszerz "pole widzenia" do wi&#281;kszego promienia. Wariant ''(1a)'': wprowad&#378; "zawodno&#347;&#263; obserwacji": specjalne kom&#243;rki, kt&#243;re z s&#261;siedztwa wygl&#261;daj&#261; na osi&#261;galne, ale akcja wkroczenia na nie okazuje si&#281; niewykonalna. Wariant ''(1b)'': wprowad&#378; zmienny cel: na arenie cel mo&#380;e okaza&#263; si&#281; w innym miejscu, ni&#380; by&#322; na mapie (agent musi zaobserwowa&#263; kom&#243;rk&#281; fa&#322;szywego celu, &#380;eby si&#281; przekona&#263;) -- jednak zwykle niedaleko od celu z mapy.(:if userlang en:)Extension 1: if in the basic version you made available to the agent only the cells directly neighboring the agent, now introduce a broader scope of vision. Case ''(1a)'': introduce failing observations: special cells that look like passable, but when entered turn out to be obstacles. Case ''(1b)'': introduce variable goal: in the arena the goal can turn out to be in a different place than on the map (the agent must observe the false target to realise that), but not far from the map's target.(:if:)
#### (:if userlang pl:)Rozszerzenie 2: wolno przemieszczaj&#261;cy si&#281; cel: po zbli&#380;eniu si&#281; agenta do celu, ten zaczyna ucieka&#263;.(:if userlang en:)Extension 2: slowly moving target: when the agent approaches the target, the targets starts to move away.(:if:)
### (:if userlang pl:)Rozszerzenie 3: uwzgl&#281;dnij mo&#380;liwo&#347;&#263; wyst&#281;powania na arenie "okazji": kom&#243;rek osi&#261;galnych, kt&#243;re nie by&#322;y osi&#261;galne na mapie. Sugerowane algorytmy: "Lifelong Planning A*", "D* Lite".(:if userlang en:)Extension 3: consider "opportunities", cells that are obstacles on the map but are passable on the arena. Suggested algorithms: "Lifelong Planning A*", "D*", "D* Lite".(:if:)
**** (:if userlang pl:)Alternatywnie, agent dysponuje pe&#322;n&#261; informacj&#261; o arenie, ale arena mo&#380;e si&#281; w ka&#380;dej chwili "nieznacznie" zmieni&#263;.(:if userlang en:)In case the agent has full knowledge of the arena, the arena can change with time.(:if:)
## (:if userlang pl:)'''Konstrukcja heurystyk''': rozwi&#261;&#380; (napisz rozwi&#261;zywaczk&#281;) przy pomocy algorytmu A* jedn&#261; z [[http://www.ii.uni.wroc.pl/~prych/SI/puzzle/ | &#322;amig&#322;&#243;wek z budapeszta&#324;skich mistrzostw]].(:if userlang en:)'''Heuristics Design''': solve (write a solver) using the A* algorithm one of [[http://www.ii.uni.wroc.pl/~prych/SI/puzzle/ | puzzles from the Budapest Competition]].(:if:)
### (:if userlang pl:)Wersja podstawowa: [[http://www.ii.uni.wroc.pl/~prych/SI/wstepne.html | Pawe&#322; Rychlikowski sugeruje ''Hiroimono'' lub ''Divide into Squares'']].(:if userlang en:)Basic version: select one that you like, e.g. ''Hiroimono'' or ''Divide into Squares''(:if:)
### (:if userlang pl:)Rozszerzenie 1: rozwi&#261;&#380; inn&#261; spo&#347;r&#243;d &#322;amig&#322;&#243;wek. Por&#243;wnaj opracowane przez ciebie heurystyki: jakie idee maj&#261; wsp&#243;lne, a co jest w nich specyficzne dla zadania?(:if userlang en:)Solve another puzzle. Compare the heuristics you have built,: what ideas they share, and what is puzzle-specific?(:if:)
### (:if userlang pl:)Rozszerzenie 2: ''najpierw'' rozwi&#261;&#380; &#322;amig&#322;&#243;wk&#281; algorytmicznie (wariant ''a'') lub wi&#281;zami (wariant ''b''), a nast&#281;pnie algorytmem A*. W jaki spos&#243;b przekszta&#322;ci&#322;e&#347; algorytm rozwi&#261;zywania problemu w heurystyk&#281;?(:if userlang en:)Extension 2: ''first'' solve the puzzle algorithmically (that is, by devising a puzzle-specific solution algorithm) case ''a'', or with constraints (case ''b''), and only then solve it using A*. How have you transformed the algorithm into the heuristic?(:if:)
## (:if userlang pl:)'''Sokoban''': rozwi&#261;&#380; (napisz rozwi&#261;zywaczk&#281;) przy pomocy algorytmu A* gr&#281; logiczn&#261; Sokoban.(:if userlang en:)'''Sokoban''': solve (write a a solver) using the A* algorithm, the puzzles of Sokoban.(:if:)
### (:if userlang pl:)Rozszerzenie 1 -- '''strategia a taktyka''': podziel rozwi&#261;zywaczk&#281; na dwa poziomy. Na poziomie strategicznym, algorytm A* szuka rozwi&#261;zania w przestrzeni stan&#243;w taktycznie istotnych, gdzie pojedyncza akcja wymaga wielu krok&#243;w magazyniera (w szczeg&#243;lno&#347;ci, dok&#322;adne po&#322;o&#380;enie magazyniera jest nieistotne, istotne s&#261; pozycje osi&#261;galne przez magazyniera). Na poziomie taktycznym, zaprogramuj mechanizm znajdowania konfiguracji taktycznie istotnych osi&#261;galnych z bie&#380;&#261;cej konfiguracji. Poziom taktyczny powinien zwraca&#263; zbi&#243;r akcji-taktyk: konfiguracja wynikowa (dla poziomu strategicznego), faktyczne ruchy magazyniera do wykonania (dla systemu gry).(:if userlang en:)Extension 1 -- '''strategy vs. tactic''': divide the solver into two layers. On the strategic layer, use A* to search in the space of tactically important states, where a single action requires several steps of barrel pushing. On the tactical level, implement a mechanism to find important states reachable from a given state, where the path is a single "abstract" action of the strategic level. The tactic layer should be able to play the game from the abstract-action path found by the strategic layer (e.g. remember the pushes associated with each abstract action).(:if:) (:if userlang pl:)Przyk&#322;ad: @@#@@ to &#347;ciana, @@*@@ to skrzynia, tylko kra&#324;cowe pozycje s&#261; istotne:(:if userlang en:)Example: @@#@@ is a wall, @@*@@ is a barrel, only the end positions are important:(:if:)
[@
Changed lines 89-90 from:
### Rozszerzenie 2: wykorzystaj programowanie wi&#281;z&#243;w w implementacji pozmiomu taktycznego.
### Rozszerzenie 3: Nie proponuj poziomowi strategicznemu martwych konfiguracji w rodzaju zablokowanych skrzy&#324;:[@
to:
### (:if userlang pl:)Rozszerzenie 2: wykorzystaj programowanie wi&#281;z&#243;w w implementacji pozmiomu taktycznego.(:if userlang en:)Extension 2: use constraint solving/programming to in coding the tactic level.(:if:)
### (:if userlang pl:)Rozszerzenie 3: Nie proponuj poziomowi strategicznemu martwych konfiguracji w rodzaju zablokowanych skrzy&#324;:(:if userlang en:)Do not propose to the strategic level dead configurations, like with blocked barrels:(:if:)
[@
Changed lines 92-94 from:
###      #@] Wykrywaj martwe konfiguracje og&#243;lnym mechanizmem a nie przez r&#281;czne zakodowanie szczeg&#243;lnych przypadk&#243;w: np. przy pomocy wi&#281;z&#243;w, albo algorytmu A* odpalonego na istotnym dla danej skrzyni fragmencie konfiguracji, &#380;eby sprawdzi&#263; czy da si&#281; j&#261; ruszy&#263;.
*** Troch&#281; literatury:
**** [[http://www.cs.ualberta.ca/~games/Sokoban/ | Sokoban Solver Rolling Stone]], bardzo ciekawa strona, w szczeg&#243;lno&#347;ci
to:
###      #@] (:if userlang pl:)Wykrywaj martwe konfiguracje og&#243;lnym mechanizmem a nie przez r&#281;czne zakodowanie szczeg&#243;lnych przypadk&#243;w: np. przy pomocy wi&#281;z&#243;w, albo algorytmu A* odpalonego na istotnym dla danej skrzyni fragmencie konfiguracji, &#380;eby sprawdzi&#263; czy da si&#281; j&#261; ruszy&#263;.(:if userlang en:)Discover the dead configuration using a general mechanism rather than by hand-coding concrete cases: for example, by using constraint solving, or with a local A* search -- limited to pushing a barrel around.(:if:)
*** (:if userlang pl:)Troch
&#281; literatury:(:if userlang en:)Some links:(:if:)
**** [[http://www.cs.ualberta.ca/~games/Sokoban/ | Sokoban Solver Rolling Stone]], (:if userlang pl:)bardzo ciekawa strona, w szczeg
&#243;lno&#347;ci(:if userlang en:)a very interesting page, especially(:if:)
Changed line 96 from:
***** [[http://www.cs.ualberta.ca/~games/Sokoban/TALK/title.html |  Pushing the Limits: New Developments in Single-Agent Search]] Andreas Junghanns, Jonathan Schaeffer (prezentacja)
to:
***** [[http://www.cs.ualberta.ca/~games/Sokoban/TALK/title.html |  Pushing the Limits: New Developments in Single-Agent Search]] Andreas Junghanns, Jonathan Schaeffer ((:if userlang pl:)prezentacja(:if userlang en:)slides(:if:))
Changed lines 98-104 from:
**** Ta metoda nas nie interesuje, ale praca jest ciekawa: [[http://www.idsia.ch/~tom/publications/masterthesis.pdf | Evolving a compact, concept-based Sokoban solver]] (Tom Schaul)
## '''Gry z limitem czasowym'''
. '''Gry w czasie rzeczywistym'''.
### Wersja podstawowa wariant ''
(a)'': zaimplementuj lub zmodyfikuj istniej&#261;cy program-gr&#281; dwuosobow&#261;, tak aby pozwala&#322; na gr&#281; dw&#243;ch r&#243;&#380;nych algorytm&#243;w przeciw sobie (mo&#380;e to by&#263; ten sam algorytm ale z r&#243;&#380;nymi parametrami).
### Wersja podstawowa wariant ''(b)'': zaprogramuj modyfikacj&#281; algorytmu alfa-beta odci&#281;&#263; tak, aby przerywa&#322; obliczenia w momencie wyczerpania si&#281; czasu zegarowego przeznaczonego na ruch, zwracaj&#261;c najlepszy ruch wedle dokonanych oblicze&#324;. Wykorzystaj np. iteracyjne pog&#322;&#281;bianie.
### Rozszerzenie 2: zaproponuj / zaprogramuj (np.) modyfikacj&#281; algorytmu alfa-beta odci&#281;&#263; tak, aby dzia&
#322;a&#322; w ramach czasu zegarowego przeznaczonego mu na ca&#322;&#261; gr&#281;. Je&#347;li suma czas&#243;w zu&#380;ytych na podj&#281;cie ruch&#243;w przez gracza przekroczy ten czas, gracz przegrywa. Mo&#380;esz dla uproszczenia uzna&#263;, &#380;e algorytm my&#347;li tylko w czasie podejmowania przez siebie ruchu. Algorytm ma do dyspozycji czasy wykorzystane przez przeciwnika, graj&#261;cego z tym samym limitem. Mo&#380;liwie rozs&#261;dnie wyznacz ilo&#347;&#263; oblicze&#324;/czasy na poszczeg&#243;lne ruchy (mo&#380;esz eksperymentowa&#263;).
### Rozszerzenie 3: zmodyfikuj wariant ''(a)'', zaprogramuj wsp&#243;&#322;bie&#380;ne/r&#243;wnoleg&#322;e asynchroniczne dzia&#322;anie algorytm&#243;w. Tzn. ka&#380;dy gracz mo&#380;e wykona&#263; kilka ruch&#243;w pod rz&#261;d, je&#347;li drugi gracz nie zd&#261;&#380;y wykona&#263; ruchu w mi&#281;dzyczasie. Regu&#322;y twojej gry musz&#261; da&#263; si&#281; jako&#347; zinterpretowa&#263; w takiej sytuacji. Gdy gracze doprowadz&#261; do jakiego&#347; rodzaju stagnacji, to mog&#261; postulowa&#263; remis.
### Rozszerzenie 4: zaproponuj / zaprogramuj rozs&#261;dny spos&#243;b dysponowania czasem w sytuacji z rozrzerzenia 4, np. przetestuj r&#243;&#380;ne strategie.
to:
**** (:if userlang pl:)Ta metoda nas nie interesuje, ale praca jest ciekawa:(:if userlang en:)This method is not useful for us, but the work is interesting(:if:) [[http://www.idsia.ch/~tom/publications/masterthesis.pdf | Evolving a compact, concept-based Sokoban solver]] (Tom Schaul)
## (:if userlang pl:)'''Gry z limitem czasowym'''. '''Gry w czasie rzeczywistym'''.(:if userlang en:)'''Time-delimited Games'''. '''Real-Time Games'''.(:if:)
### (:if userlang pl:)Wersja podstawowa wariant ''(a)'': zaimplementuj lub zmodyfikuj istniej&#261;cy program-gr&#281; dwuosobow&#261;, tak aby pozwala&#322; na gr&#281; dw&#243;ch r&#243;&#380;nych algorytm&#243;w przeciw sobie (mo&#380;e to by&#263; ten sam algorytm ale z r&#243;&#380;nymi parametrami).(:if userlang en:)Basic version ''(a)'': implement a two-player game letting two different algorithms / sets of parameters play against each other.(:if:)
### (:if userlang pl:)Wersja podstawowa wariant ''(b)'': zaprogramuj modyfikacj&#281; algorytmu alfa-beta odci&#281;&#263; tak, aby przerywa&#322; obliczenia w momencie wyczerpania si&#281; czasu zegarowego przeznaczonego na ruch, zwracaj&#261;c najlepszy ruch wedle dokonanych oblicze&#324;. Wykorzystaj np. iteracyjne pog&#322;&#281;bianie.(:if userlang en:)Basic version ''(b)'': implement an alpha-beta pruning algorithm so that it stops computation and returns the best move found so far, when it rounds out of "wallclock" time.(:if:)
### (:if userlang pl:)Rozszerzenie 2: zaproponuj / zaprogramuj (np.) modyfikacj&#281; algorytmu alfa-beta odci&#281;&#263; tak, aby dzia&#322;a&#322; w ramach czasu zegarowego przeznaczonego mu na ca&#322;&#261; gr&#281;. Je&#347;li suma czas&#243;w zu&#380;ytych na podj&#281;cie ruch&#243;w przez gracza przekroczy ten czas, gracz przegrywa. Mo&#380;esz dla uproszczenia uzna&#263;, &#380;e algorytm my&#347;li tylko w czasie podejmowania przez siebie ruchu. Algorytm ma do dyspozycji czasy wykorzystane przez przeciwnika, graj&#261;cego z tym samym limitem. Mo&#380;liwie rozs&#261;dnie wyznacz ilo&#347;&#263; oblicze&#324;/czasy na poszczeg&#243;lne ruchy (mo&#380;esz eksperymentowa&#263;).(:if userlang en:)Extension 2: propose / code a modification of -- e.g. -- alpha-beta pruning so that it worked in the limits of clock time on the entire game. If the sum of times spent on selecting a move by a given player exceeds this time, that player loses. You can simplify assuming, that a player "thinks" only during its move (when you do not want to use multithreading). The algorithm can see the times spent by the other player, playing with the same limit. Decide reasonably what portion of the time left to spend on the next move (try experimenting).(:if:)
### (:if userlang pl:)Rozszerzenie 3: zmodyfikuj wariant ''(a)'', zaprogramuj wsp&#243;&#322;bie&#380;ne/r&#243;wnoleg&#322;e asynchroniczne dzia&#322;anie algorytm&#243;w. Tzn. ka&#380;dy gracz mo&#380;e wykona&#263; kilka ruch&#243;w pod rz&#261;d, je&#347;li drugi gracz nie zd&#261;&#380;y wykona&#263; ruchu w mi&#281;dzyczasie. Regu&#322;y twojej gry musz&#261; da&#263; si&#281; jako&#347; zinterpretowa&#263; w takiej sytuacji. Gdy gracze doprowadz&#261; do jakiego&#347; rodzaju stagnacji, to mog&#261; postulowa&#263; remis.(:if userlang en:)Extension 3: code concurrent asynchronic players: each algorithm can make several moves in a row if the other player still computes its move. The rules of the game need to be interpretable in this case. If the games somehow stagnates, the players can propose a draw.(:if:)
### (:if userlang pl:)Rozszerzenie 4: zaproponuj / zaprogramuj rozs&#261;dny spos&#243;b dysponowania czasem w sytuacji z rozrzerzenia 3, np. przetestuj r&#243;&#380;ne strategie.(:if userlang en:)Extension 4: propose / code a reasonable way to administer the time to compute a move in the context of extension 3, e.g. experiment with different strategies.(:if:)
May 05, 2009, at 06:57 AM by lukstafi - RL Soar
Added lines 164-165:
# Pracownia '''Soar''' 2, uczenie ze wzmocnieniem
## [[Attach:AGI/RL.pdf]]
April 28, 2009, at 04:35 PM by lukstafi - alchemy slides
Changed lines 61-65 from:
# Pracownia z przeszukiwania w przestrzeni stan&#243;w
** [[http://donyc.pop.e-wro.pl/astar/ | Przeszukiwanie labirynt&#243;w algorytmem A*]]
**
[[http://en.wikipedia.org/wiki/D*_search_algorithm | algorytm przeszukiwania D*]]
** [[Attach
:SearchDynamic.pdf | Przeszukiwanie A* w dynamicznym &#347;rodowisku]]
# Pracownia z wi&#281;z&#243;w i z gier
to:
# (:if userlang pl:)Pracownia z przeszukiwania w przestrzeni stan&#243;w(:if userlang en:)Lab on statespace search(:if:)
**
[[http://donyc.pop.e-wro.pl/astar/ | (:if userlang pl:)Przeszukiwanie labirynt&#243;w algorytmem(:if userlang en:)Pathfining using(:if:) A*]]
** [[http://en.wikipedia.org/wiki/D*_search_algorithm | (:if userlang pl:)algorytm przeszukiwania(:if userlang en:)dynamic search --(:if:) D*]]
** [[Attach:SearchDynamic.pdf | (:if userlang pl:)Przeszukiwanie A* w dynamicznym &#347;rodowisku(:if userlang en:)The A* search in a dynamical environment(:if:)]]
# (:if userlang pl:)Pracownia z wi&#281;z&#243;w i z gier(:if userlang en:)Lab on constraints and on games(:if:)
Changed lines 69-70 from:
** [[http://donyc.pop.e-wro.pl/checkers/ | aplet z warcabami]]
** [[http
://sourceforge.net/projects/minigosix/ | Mini Gosix (autor: Tautrimas Pajarskas)]] (gra planszowa Gosix stworzona przez: Pierre Canuel)
to:
** [[http://donyc.pop.e-wro.pl/checkers/ | (:if userlang pl:)aplet z warcabami(:if userlang en:)the checkers applet(:if:)]]
** [[http://sourceforge.net/projects/minigosix/ | Mini Gosix (autor: Tautrimas Pajarskas)]] (:if userlang pl:)(gra planszowa Gosix stworzona przez: Pierre Canuel)(:if userlang en:)(the Gosix board game created by Pierry Canuel)(:if:)
Added line 157:
*** Literatura: [[http://www.cs.washington.edu/homes/pedrod/803/ | 10-803: Markov Logic Networks]] (Machine Learning Department, Carnegie Mellon University)
April 27, 2009, at 01:57 PM by lukstafi - Sokoban
Changed lines 4-5 from:
** (:if userlang pl:)kolejny zestaw zada&#324;-projekt&#243;w(:if userlang en:)another set of exercises-projects (:if:)
to:
** (:if userlang pl:)linki dot. rozwi&#261;zywania Sokobana(:if userlang en:)Sokoban solving links(:if:)
Changed lines 93-98 from:
*** Troch&#281; literatury (ale inna metoda): [[http://www.idsia.ch/~tom/publications/masterthesis.pdf | Evolving a compact, concept-based Sokoban solver]] (Tom Schaul)
to:
*** Troch&#281; literatury:
**** [[http://www.cs.ualberta.ca/~games/Sokoban/ | Sokoban Solver Rolling Stone]], bardzo ciekawa strona, w szczeg&#243;lno&#347;ci
***** [[http://www.cs.ualberta.ca/~games/Sokoban/program.html | Our Program - Rolling Stone]]
***** [[http://www.cs.ualberta.ca/~games/Sokoban/TALK/title.html |  Pushing the Limits: New Developments in Single-Agent Search]] Andreas Junghanns, Jonathan Schaeffer (prezentacja)
**** [[http://www.sokobano.de/wiki/index.php?title=Solver | Sokoban Wiki: Simple solver]], [[http://www.sokobano.de/wiki/index.php?title=Solver_Statistics | Solver Statistics]]
**** Ta metoda nas nie interesuje, ale praca jest ciekawa
: [[http://www.idsia.ch/~tom/publications/masterthesis.pdf | Evolving a compact, concept-based Sokoban solver]] (Tom Schaul)
Changed lines 157-160 from:
# Jeszcze jedna grupa projekt&#243;w: systemy bogate w wiedz&#281;.
## Zaplanuj system ekspercki i stw
&#243;rz w Protege ontologi&#281; (szkielet bazy wiedzy) dla tego systemu.
### Rozszerzenie: podepnij
CLIPS lub inny system wnioskuj&#261;cy do bazy wiedzy stworzonej w Protege i zademonstruj przyk&#322;ad-"prototyp" zastosowania twojego systemu eksperckiego (wykorzystuj&#261;cy wnioskowanie na bazie wiedzy).
## Zaimplementuj system ekspercki wykorzystuj&#261;cy ontologi&#281; / baz&#281; wiedzy OpenCyc, lub jej uproszczenie do reprezentacji RDF w systemie Texai.
to:
# Pracownia '''Soar'''
## [[http
://sitemaker.umich.edu/soar/home | Soar Home]]
*** [[http://sourceforge
.net/project/showfiles.php?group_id=65490&package_id=101448 | Soar Suite 9.0]], [[http://sourceforge.net/project/showfiles.php?group_id=65490&package_id=289690 | Soar Suite 9.1 Beta]]
# Pracownia '''CLIPS'''
## [[http://clipsrules
.sourceforge.net/ | CLIPS Home]]
# Jeszcze jedna grupa projekt
&#243;w: systemy bogate w wiedz&#281;. (koniec maja)
Deleted line 119:
*** Sugestia: mo&#380;esz zapozna&#263; si&#281; z serialem ''House M.D''.
April 23, 2009, at 12:23 AM by lukstafi - system ekspercki 2
Added line 119:
## '''System ekspercki w zmiennym &#347;rodowisku'''. Zaprogramuj w Soar (lub by&#263; mo&#380;e w CLIPS) system ekspercki uwzgl&#281;dniaj&#261;cy, &#380;e obserwacja mo&#380;e wp&#322;ywa&#263; na badany obiekt (mo&#380;e by&#263; de facto interwencj&#261;), oraz &#380;e badany obiekt jest procesem -- zmienia si&#281; w czasie, z czasem ujawnia dodatkowe informacje.
Changed line 129 from:
## '''CLIPS'''.
to:
## '''CLIPS''' i Sokoban.
Changed line 120 from:
## '''Programowanie indukcyjne'''. Typy algebraiczne (czyli warianty, sumy roz&#322;&#261;czne produkt&#243;w typ&#243;w algebraicznych) daj&#261; bardzo wygodny spos&#243;b reprezentacji danych strukturalnych. Podejmiemy ambitne zadanie z maszynowego uczenia si&#281;: indukcj&#281; funkcji, czyli b&#281;dziemy konstruowa&#263; jak najoszcz&#281;dniejsz&#261; funkcj&#281;, kt&#243;ra dla zadanych danych wej&#347;ciowych wygeneruje zadane dane wyj&#347;ciowe. Zapoznaj si&#281; z artyku&#322;em Markusa Mottla [[Using Algebraic Datatypes as Uniform Representation for Structured Data -> http://ocaml.info/oefai/papers/algebraic_dts/index.html]], w szczeg&#243;lno&#347;ci z rozdzia&#322;em [[Generalizing Decision Tree Learning to Algebraic Datatypes -> http://ocaml.info/oefai/papers/algebraic_dts/algebraic_dts003.html]] i doko&#324;cz moj&#261; prototypow&#261; implementacj&#281; [[(Attach:FunProg/)funind.ml]].
to:
## '''Programowanie indukcyjne'''. Typy algebraiczne (czyli warianty, sumy roz&#322;&#261;czne produkt&#243;w typ&#243;w algebraicznych) daj&#261; bardzo wygodny spos&#243;b reprezentacji danych strukturalnych. Podejmiemy ambitne zadanie z maszynowego uczenia si&#281;: indukcj&#281; funkcji, czyli b&#281;dziemy konstruowa&#263; jak najoszcz&#281;dniejsz&#261; funkcj&#281;, kt&#243;ra dla zadanych danych wej&#347;ciowych wygeneruje zadane dane wyj&#347;ciowe. Zapoznaj si&#281; z artyku&#322;em Markusa Mottla [[Using Algebraic Datatypes as Uniform Representation for Structured Data -> http://ocaml.info/oefai/papers/algebraic_dts/index.html]], w szczeg&#243;lno&#347;ci z rozdzia&#322;em [[Generalizing Decision Tree Learning to Algebraic Datatypes -> http://ocaml.info/oefai/papers/algebraic_dts/algebraic_dts003.html]] i doko&#324;cz moj&#261; prototypow&#261; implementacj&#281; [[(Attach:ProgFun/)funind.ml]].
Changed line 117 from:
### Rozszerzenie 2: wykorzystaj r&#243;wnie&#380; zawodne regu&#322;y asocjacyjne, uwzgl&#281;dnij zar&#243;wno oszacowanie prawdopodobie&#324;stwa regu&#322;y ({$\frac{#(X \wedge Y)}{#X}$} dla regu&#322;y {$X \Rightarrow Y$}, gdzie {$#X$} zlicza, ile razy {$X$} jest prawdziwe) jak i jako&#347;&#263; tego oszacowania (jak cz&#281;sto {$X$} jest znane oraz jak cz&#281;sto {$Y$} jest znane gdy {$X$} jest prawdziwe).
to:
### Rozszerzenie 2: wykorzystaj r&#243;wnie&#380; zawodne regu&#322;y asocjacyjne, uwzgl&#281;dnij zar&#243;wno oszacowanie prawdopodobie&#324;stwa regu&#322;y ({$\frac{#(!X \wedge !Y)}{#(!X \wedge ?Y)}$} dla regu&#322;y {$X \Rightarrow Y$}, gdzie {$#!X$} zlicza, ile razy {$X$} jest prawdziwe, a {$#?Y$} zlicza, ile razy {$Y$} jest znane) jak i jako&#347;&#263; tego oszacowania (jak cz&#281;sto {$X$} jest znane oraz jak cz&#281;sto {$Y$} jest znane gdy {$X$} jest prawdziwe).
Changed line 117 from:
### Rozszerzenie 2: wykorzystaj r&#243;wnie&#380; zawodne regu&#322;y asocjacyjne, uwzgl&#281;dnij zar&#243;wno oszacowanie prawdopodobie&#324;stwa regu&#322;y ({$\frac{#(X \wedge Y)}{#X}$} dla regu&#322;y {$X \Longrightarrow Y$}, gdzie {$#X$} zlicza, ile razy {$X$} jest prawdziwe) jak i jako&#347;&#263; tego oszacowania (jak cz&#281;sto {$X$} jest znane oraz jak cz&#281;sto {$Y$} jest znane gdy {$X$} jest prawdziwe).
to:
### Rozszerzenie 2: wykorzystaj r&#243;wnie&#380; zawodne regu&#322;y asocjacyjne, uwzgl&#281;dnij zar&#243;wno oszacowanie prawdopodobie&#324;stwa regu&#322;y ({$\frac{#(X \wedge Y)}{#X}$} dla regu&#322;y {$X \Rightarrow Y$}, gdzie {$#X$} zlicza, ile razy {$X$} jest prawdziwe) jak i jako&#347;&#263; tego oszacowania (jak cz&#281;sto {$X$} jest znane oraz jak cz&#281;sto {$Y$} jest znane gdy {$X$} jest prawdziwe).
Changed line 117 from:
### Rozszerzenie 2: wykorzystaj r&#243;wnie&#380; zawodne regu&#322;y asocjacyjne, uwzgl&#281;dnij zar&#243;wno oszacowanie prawdopodobie&#324;stwa regu&#322;y ({$\frac{#(X&Y)}{#X}$} dla regu&#322;y {$X \arrow Y$}, gdzie {$#X$} zlicza, ile razy {$X$} jest prawdziwe) jak i jako&#347;&#263; tego oszacowania (jak cz&#281;sto {$X$} jest znane oraz jak cz&#281;sto {$Y$} jest znane gdy {$X$} jest prawdziwe).
to:
### Rozszerzenie 2: wykorzystaj r&#243;wnie&#380; zawodne regu&#322;y asocjacyjne, uwzgl&#281;dnij zar&#243;wno oszacowanie prawdopodobie&#324;stwa regu&#322;y ({$\frac{#(X \wedge Y)}{#X}$} dla regu&#322;y {$X \Longrightarrow Y$}, gdzie {$#X$} zlicza, ile razy {$X$} jest prawdziwe) jak i jako&#347;&#263; tego oszacowania (jak cz&#281;sto {$X$} jest znane oraz jak cz&#281;sto {$Y$} jest znane gdy {$X$} jest prawdziwe).
Changed line 117 from:
### Rozszerzenie 2: wykorzystaj r&#243;wnie&#380; zawodne regu&#322;y asocjacyjne, uwzgl&#281;dnij zar&#243;wno oszacowanie prawdopodobie&#324;stwa regu&#322;y ({$\fact{#(X&Y)}{#X}$} dla regu&#322;y {$X \Arrow Y$}, gdzie {$#X$} zlicza, ile razy {$X$} jest prawdziwe) jak i jako&#347;&#263; tego oszacowania (jak cz&#281;sto {$X$} jest znane oraz jak cz&#281;sto {$Y$} jest znane gdy {$X$} jest prawdziwe).
to:
### Rozszerzenie 2: wykorzystaj r&#243;wnie&#380; zawodne regu&#322;y asocjacyjne, uwzgl&#281;dnij zar&#243;wno oszacowanie prawdopodobie&#324;stwa regu&#322;y ({$\frac{#(X&Y)}{#X}$} dla regu&#322;y {$X \arrow Y$}, gdzie {$#X$} zlicza, ile razy {$X$} jest prawdziwe) jak i jako&#347;&#263; tego oszacowania (jak cz&#281;sto {$X$} jest znane oraz jak cz&#281;sto {$Y$} jest znane gdy {$X$} jest prawdziwe).
Changed line 117 from:
### Rozszerzenie 2: wykorzystaj r&#243;wnie&#380; zawodne regu&#322;y asocjacyjne, uwzgl&#281;dnij zar&#243;wno oszacowanie prawdopodobie&#324;stwa regu&#322;y ([$\fact{#(X&Y)}{#X}$] dla regu&#322;y [$X \Arrow Y$], gdzie [$#X$] zlicza, ile razy [$X$] jest prawdziwe) jak i jako&#347;&#263; tego oszacowania (jak cz&#281;sto [$X$] jest znane oraz jak cz&#281;sto [$Y$] jest znane gdy [$X$] jest prawdziwe).
to:
### Rozszerzenie 2: wykorzystaj r&#243;wnie&#380; zawodne regu&#322;y asocjacyjne, uwzgl&#281;dnij zar&#243;wno oszacowanie prawdopodobie&#324;stwa regu&#322;y ({$\fact{#(X&Y)}{#X}$} dla regu&#322;y {$X \Arrow Y$}, gdzie {$#X$} zlicza, ile razy {$X$} jest prawdziwe) jak i jako&#347;&#263; tego oszacowania (jak cz&#281;sto {$X$} jest znane oraz jak cz&#281;sto {$Y$} jest znane gdy {$X$} jest prawdziwe).
April 22, 2009, at 11:14 PM by lukstafi - House MD
Changed lines 117-119 from:
### Rozszerzenie 2: zbuduj odpowiednio du&#380;&#261; baz&#281; wiedzy dla jakiej&#347; praktycznej dziedziny zastosowania systemu eksperckiego, wykorzystuj&#261;c "human computation": zbuduj system, w kt&#243;rym wielu u&#380;ytkownik&#243;w mo&#380;e gra&#263; w twoj&#261; gr&#281; (i by&#263; wykorzystywa&#263; j&#261; do rzeczywistej diagnostyki), dzia&#322;aj&#261;c na wsp&#243;lnej bazie wiedzy. Mo&#380;esz np. zaprogramowa&#263; serwer http i odpowiedniego klienta.
to:
### Rozszerzenie 2: wykorzystaj r&#243;wnie&#380; zawodne regu&#322;y asocjacyjne, uwzgl&#281;dnij zar&#243;wno oszacowanie prawdopodobie&#324;stwa regu&#322;y ([$\fact{#(X&Y)}{#X}$] dla regu&#322;y [$X \Arrow Y$], gdzie [$#X$] zlicza, ile razy [$X$] jest prawdziwe) jak i jako&#347;&#263; tego oszacowania (jak cz&#281;sto [$X$] jest znane oraz jak cz&#281;sto [$Y$] jest znane gdy [$X$] jest prawdziwe).
### Rozszerzenie 3: zbuduj odpowiednio du&#380;&#261; baz&#281; wiedzy dla jakiej&#347; praktycznej dziedziny zastosowania systemu eksperckiego, wykorzystuj&#261;c "human computation": zbuduj system, w kt&#243;rym wielu u&#380;ytkownik&#243;w mo&#380;e gra&#263; w twoj&#261; gr&#281; (i by&#263; wykorzystywa&#263; j&#261; do rzeczywistej diagnostyki), dzia&#322;aj&#261;c na wsp&#243;lnej bazie wiedzy. Mo&#380;esz np. zaprogramowa&#263; serwer http i odpowiedniego klienta.
*** Sugestia: mo&#380;esz zapozna&#263; si&#281; z serialem ''House M.D''
.
Changed lines 4-5 from:
** (:if userlang pl:)kolejny zestaw zada&#324;-projekt&#243;w(:if userlang pl:)another set of exercises-projects (:if:)
to:
** (:if userlang pl:)kolejny zestaw zada&#324;-projekt&#243;w(:if userlang en:)another set of exercises-projects (:if:)
Changed line 127 from:
*** Schemat projektu: zrealizuj projekt '''Sokoban''' z drugiej listy w j&#281;zyku CLIPS lub w systemie Soar.
to:
*** Schemat projektu: zrealizuj projekt '''Sokoban''' z drugiej listy w j&#281;zyku CLIPS lub Soar.
April 17, 2009, at 01:41 PM by lukstafi - CLIPS
Added lines 126-127:
## '''CLIPS'''.
*** Schemat projektu: zrealizuj projekt '''Sokoban''' z drugiej listy w j&#281;zyku CLIPS lub w systemie Soar.
April 16, 2009, at 03:49 PM by lukstafi - OpenCyc
Changed lines 149-151 from:
## Zaimplementuj system ekspercki wykorzystuj&#261;cy ontologi&#281; / baz&#281; wiedzy OpenCyc, lub jej uproszczenie do reprezentacji RDF w systemie Texai.
to:
## Zaplanuj system ekspercki i stw&#243;rz w Protege ontologi&#281; (szkielet bazy wiedzy) dla tego systemu.
### Rozszerzenie: podepnij CLIPS lub inny system wnioskuj&#261;cy do bazy wiedzy stworzonej w Protege i zademonstruj przyk&#322;ad-"prototyp" zastosowania twojego systemu eksperckiego (wykorzystuj&#261;cy wnioskowanie na bazie wiedzy).

## Zaimplementuj system ekspercki wykorzystuj&#261;cy ontologi&#281; / baz&#281; wiedzy OpenCyc, lub jej uproszczenie do reprezentacji RDF w systemie Texai.
April 16, 2009, at 03:25 PM by lukstafi - OpenCyc
Changed lines 3-8 from:
(:if userlang pl:) Ciekawe nowo&#347;ci na stronie: (:if userlang en:) Interesting news on the page: (:if:)
** (:if userlang pl:) zadania o grach  (:if userlang en:) projects about games (:if:)
** [[http://en.wikipedia.org/wiki/D*_search_algorithm | (:if userlang pl:) algorytm przeszukiwania D* (:if userlang en:) search algorithm D* (:if:) ]] (:if userlang pl:) (proste wprowadzenie do tematu z trzeciej pracowni) (:if userlang en:) (simple introduction to the theme of the third lab) (:if:)
** [[http://www.youtube.com/watch?v=s9G7DRTuB5s | ''Case Based Reasoning'' for Game AI]] (Tech Talk)


to:
(:if userlang pl:)Ciekawe nowo&#347;ci na stronie: (:if userlang en:)Interesting news on the page: (:if:)
** (:if userlang pl:)kolejny zestaw zada&#324;-projekt&#243;w(:if userlang pl:)another set of exercises-projects (:if:)
Changed line 118 from:
## '''Programowanie indukcyjne'''. Typy algebraiczne (czyli warianty, sumy roz&#322;&#261;czne produkt&#243;w typ&#243;w algebraicznych) daj&#261; bardzo wygodny spos&#243;b reprezentacji danych strukturalnych. Podejmiemy ambitne zadanie z maszynowego uczenia si&#281;: indukcj&#281; funkcji, czyli b&#281;dziemy konstruowa&#263; jak najoszcz&#281;dniejsz&#261; funkcj&#281;, kt&#243;ra dla zadanych danych wej&#347;ciowych wygeneruje zadane dane wyj&#347;ciowe. Zapoznaj si&#281; z artyku&#322;em Markusa Mottla [[Using Algebraic Datatypes as Uniform Representation for Structured Data -> http://ocaml.info/oefai/papers/algebraic_dts/index.html]], w szczeg&#243;lno&#347;ci z rozdzia&#322;em [[Generalizing Decision Tree Learning to Algebraic Datatypes -> http://ocaml.info/oefai/papers/algebraic_dts/algebraic_dts003.html]] i doko&#324;cz moj&#261; prototypow&#261; implementacj&#281; [[(Attach:ProgFun/)funind.ml]].
to:
## '''Programowanie indukcyjne'''. Typy algebraiczne (czyli warianty, sumy roz&#322;&#261;czne produkt&#243;w typ&#243;w algebraicznych) daj&#261; bardzo wygodny spos&#243;b reprezentacji danych strukturalnych. Podejmiemy ambitne zadanie z maszynowego uczenia si&#281;: indukcj&#281; funkcji, czyli b&#281;dziemy konstruowa&#263; jak najoszcz&#281;dniejsz&#261; funkcj&#281;, kt&#243;ra dla zadanych danych wej&#347;ciowych wygeneruje zadane dane wyj&#347;ciowe. Zapoznaj si&#281; z artyku&#322;em Markusa Mottla [[Using Algebraic Datatypes as Uniform Representation for Structured Data -> http://ocaml.info/oefai/papers/algebraic_dts/index.html]], w szczeg&#243;lno&#347;ci z rozdzia&#322;em [[Generalizing Decision Tree Learning to Algebraic Datatypes -> http://ocaml.info/oefai/papers/algebraic_dts/algebraic_dts003.html]] i doko&#324;cz moj&#261; prototypow&#261; implementacj&#281; [[(Attach:FunProg/)funind.ml]].
Changed lines 138-139 from:
## '''Reinforcement Learning'''.
### Wersja podstawowa wariant ''(a)''
: Zapoznaj si&#281; z tutorialem RL w systemie Soar. Rozszerz agenta ''Eaters'' lub ''SoarTanks'' tak, aby wykorzystywa&#322; uczenie ze wzmocnieniem.
to:
## '''Reinforcement Learning''' oraz zastosowanie system&#243;w regu&#322; produkcji do programowania agent&#243;w: Soar.
### Wersja podstawowa
: Zapoznaj si&#281; z tutorialem RL w systemie Soar. Rozszerz agenta ''Eaters'' lub ''SoarTanks'' tak, aby wykorzystywa&#322; uczenie ze wzmocnieniem.
Changed lines 141-142 from:
### Wersja podstawowa wariant ''(b)'': Zapoznaj si&#281; z dziedzinami [[http://2009.rl-competition.org/index.php | Reinforcement Learning Competition 2009]], zainstaluj oprogramowanie ([[Attach:RL-competition-2009.tar.gz | kopia lokalna]]). Wybierz jednego z dost&#281;pnych agent&#243;w i zapoznaj si&#281; z jego kodem &#378;r&#243;d&#322;owym: C++ ''helicopter''; Java ''mario'', ''octopus'', ''tetris''; Python ''acrobot''; Matlab ''tetris''; (jest te&#380; dost&#281;pny interfejs dla Lispu ale nie ma du&#380;ego przyk&#322;adowego agenta). Uruchom tego agenta i zademonstruj jego dzia&#322;anie.
**** Rozszerzenie: Zastosuj dla tego agenta uczenie ze wzmocnieniem (zaimplementuj wybrany algorytm). Zademonstruj, &#380;e agent rzeczywi&#347;cie z czasem (dzi&#281;ki uczeniu ze wzmocnieniem) zdobywa coraz wi&#281;cej punkt&#243;w.
to:
## '''Reinforcement Learning''' oraz zastosowanie system&#243;w regu&#322; produkcji do programowania agent&#243;w: RL-Competition i CLIPS.
### Wersja podstawowa: Zapoznaj si&#281; z dziedzinami
[[http://2009.rl-competition.org/index.php | Reinforcement Learning Competition 2009]], zainstaluj oprogramowanie ([[Attach:RL-competition-2009.tar.gz | kopia lokalna]]). Wybierz jednego z dost&#281;pnych agent&#243;w i zapoznaj si&#281; z jego kodem &#378;r&#243;d&#322;owym: C++ ''helicopter''; Java ''mario'', ''octopus'', ''tetris''; Python ''acrobot''; Matlab ''tetris''; (jest te&#380; dost&#281;pny interfejs dla Lispu ale nie ma du&#380;ego przyk&#322;adowego agenta). Uruchom tego agenta i zademonstruj jego dzia&#322;anie.
**** Rozszerzenie 1: Zastosuj dla tego agenta uczenie ze wzmocnieniem (zaimplementuj wybrany algorytm). Zademonstruj, &#380;e agent rzeczywi&#347;cie z czasem (dzi&#281;ki uczeniu ze wzmocnieniem) zdobywa coraz wi&#281;cej punkt&#243;w.
**** Rozszerzenie 2: zanurz CLIPS i oprogramuj w nim inteligentne zachowanie twojego agenta (mo&#380;e nie mie&#263; zwi&#261;zku z uczeniem ze wzmocnieniem)
.
Added lines 148-149:
# Jeszcze jedna grupa projekt&#243;w: systemy bogate w wiedz&#281;.
## Zaimplementuj system ekspercki wykorzystuj&#261;cy ontologi&#281; / baz&#281; wiedzy OpenCyc, lub jej uproszczenie do reprezentacji RDF w systemie Texai.
April 15, 2009, at 10:40 AM by 192.168.3.130 -
Changed line 121 from:
## '''Programowanie indukcyjne'''. Typy algebraiczne (czyli warianty, sumy roz&#322;&#261;czne produkt&#243;w typ&#243;w algebraicznych) daj&#261; bardzo wygodny spos&#243;b reprezentacji danych strukturalnych. Podejmiemy ambitne zadanie z maszynowego uczenia si&#281;: indukcj&#281; funkcji, czyli b&#281;dziemy konstruowa&#263; jak najoszcz&#281;dniejsz&#261; funkcj&#281;, kt&#243;ra dla zadanych danych wej&#347;ciowych wygeneruje zadane dane wyj&#347;ciowe. Zapoznaj si&#281; z artyku&#322;em Markusa Mottla [[Using Algebraic Datatypes as Uniform Representation for Structured Data -> http://ocaml.info/oefai/papers/algebraic_dts/index.html]], w szczeg&#243;lno&#347;ci z rozdzia&#322;em [[Generalizing Decision Tree Learning to Algebraic Datatypes -> http://ocaml.info/oefai/papers/algebraic_dts/algebraic_dts003.html]] i doko&#324;cz moj&#261; prototypow&#261; implementacj&#281; [[(Attach:FunProg/)funind.ml]].
to:
## '''Programowanie indukcyjne'''. Typy algebraiczne (czyli warianty, sumy roz&#322;&#261;czne produkt&#243;w typ&#243;w algebraicznych) daj&#261; bardzo wygodny spos&#243;b reprezentacji danych strukturalnych. Podejmiemy ambitne zadanie z maszynowego uczenia si&#281;: indukcj&#281; funkcji, czyli b&#281;dziemy konstruowa&#263; jak najoszcz&#281;dniejsz&#261; funkcj&#281;, kt&#243;ra dla zadanych danych wej&#347;ciowych wygeneruje zadane dane wyj&#347;ciowe. Zapoznaj si&#281; z artyku&#322;em Markusa Mottla [[Using Algebraic Datatypes as Uniform Representation for Structured Data -> http://ocaml.info/oefai/papers/algebraic_dts/index.html]], w szczeg&#243;lno&#347;ci z rozdzia&#322;em [[Generalizing Decision Tree Learning to Algebraic Datatypes -> http://ocaml.info/oefai/papers/algebraic_dts/algebraic_dts003.html]] i doko&#324;cz moj&#261; prototypow&#261; implementacj&#281; [[(Attach:ProgFun/)funind.ml]].
April 15, 2009, at 01:48 AM by lukstafi - sokoban
Added line 96:
*** Troch&#281; literatury (ale inna metoda): [[http://www.idsia.ch/~tom/publications/masterthesis.pdf | Evolving a compact, concept-based Sokoban solver]] (Tom Schaul)
Changed line 87 from:
### Rozszerzenie 1 -- '''strategia a taktyka''': podziel rozwi&#261;zywaczk&#281; na dwa poziomy. Na poziomie strategicznym, algorytm A* szuka rozwi&#261;zania w przestrzeni stan&#243;w taktycznie istotnych, gdzie pojedyncza akcja wymaga wielu krok&#243;w magazyniarza (w szczeg&#243;lno&#347;ci, dok&#322;adne po&#322;o&#380;enie magazyniarza jest nieistotne, istotne s&#261; pozycje osi&#261;galne przez magazyniarza). Na poziomie taktycznym, zaprogramuj mechanizm znajdowania konfiguracji taktycznie istotnych osi&#261;galnych z bie&#380;&#261;cej konfiguracji. Poziom taktyczny powinien zwraca&#263; zbi&#243;r akcji-taktyk: konfiguracja wynikowa (dla poziomu strategicznego), faktyczne ruchy magazyniarza do wykonania (dla systemu gry). Przyk&#322;ad: @@#@@ to &#347;ciana, @@*@@ to skrzynia, tylko kra&#324;cowe pozycje s&#261; istotne:[@
to:
### Rozszerzenie 1 -- '''strategia a taktyka''': podziel rozwi&#261;zywaczk&#281; na dwa poziomy. Na poziomie strategicznym, algorytm A* szuka rozwi&#261;zania w przestrzeni stan&#243;w taktycznie istotnych, gdzie pojedyncza akcja wymaga wielu krok&#243;w magazyniera (w szczeg&#243;lno&#347;ci, dok&#322;adne po&#322;o&#380;enie magazyniera jest nieistotne, istotne s&#261; pozycje osi&#261;galne przez magazyniera). Na poziomie taktycznym, zaprogramuj mechanizm znajdowania konfiguracji taktycznie istotnych osi&#261;galnych z bie&#380;&#261;cej konfiguracji. Poziom taktyczny powinien zwraca&#263; zbi&#243;r akcji-taktyk: konfiguracja wynikowa (dla poziomu strategicznego), faktyczne ruchy magazyniera do wykonania (dla systemu gry). Przyk&#322;ad: @@#@@ to &#347;ciana, @@*@@ to skrzynia, tylko kra&#324;cowe pozycje s&#261; istotne:[@
Changed lines 140-144 from:
## '''Reinforcement Learning'''. Zapoznaj si&#281; z tutorialem RL w systemie Soar i zaprogramuj w nim agenta wykorzystuj&#261;cego uczenie ze wzmocnieniem.
to:
## '''Reinforcement Learning'''.
### Wersja podstawowa wariant ''(a)'': Zapoznaj si&#281; z tutorialem RL w systemie Soar. Rozszerz agenta ''Eaters'' lub ''SoarTanks'' tak, aby wykorzystywa&#322; uczenie ze wzmocnieniem.
**** Rozszerzenie: Zademonstruj, &#380;e agent rzeczywi&#347;cie z czasem (dzi&#281;ki uczeniu ze wzmocnieniem) zdobywa coraz wi&#281;cej punkt&#243;w.
### Wersja podstawowa wariant ''(b)'': Zapoznaj si&#281; z dziedzinami [[http://2009.rl-competition.org/index.php | Reinforcement Learning Competition 2009]], zainstaluj oprogramowanie ([[Attach:RL-competition-2009.tar.gz | kopia lokalna]]). Wybierz jednego z dost&#281;pnych agent&#243;w i zapoznaj si&#281; z jego kodem &#378;r&#243;d&#322;owym: C++ ''helicopter''; Java ''mario'', ''octopus'', ''tetris''; Python ''acrobot''; Matlab ''tetris''; (jest te&#380; dost&#281;pny interfejs dla Lispu ale nie ma du&#380;ego przyk&#322;adowego agenta). Uruchom tego agenta i zademonstruj jego dzia&#322;anie.
**** Rozszerzenie: Zastosuj dla tego agenta uczenie ze wzmocnieniem (zaimplementuj wybrany algorytm). Zademonstruj, &#380;e agent rzeczywi&#347;cie z czasem (dzi&#281;ki uczeniu ze wzmocnieniem) zdobywa coraz wi&#281;cej punkt&#243;w
.
April 14, 2009, at 09:28 PM by lukstafi - Alchemy
Changed lines 136-137 from:
## '''A* real-time beam search'''.
## '''Reinforcement Learning'''. Zapoznaj si&#281; z tutorialem RL w systemie Soar.
to:
## '''A* real-time beam search'''. Zaprogramuj algorytm A* z ograniczeniem na rozmiar frontu przeszukiwania (ang. "search fringe"), ale nie poprzez wyrzucanie stan&#243;w kt&#243;re si&#281; nie mieszcz&#261; i dalsze przeszukiwanie, a poprzez podj&#281;cie decyzji co do kroku do podj&#281;cia optymalnie wzgl&#281;dem posiadanej informacji (tzn. podj&#281;cie akcji na &#347;cie&#380;ce do najlepszego wed&#322;ug A* stanu) i odrzucenie stan&#243;w kt&#243;rych ocena by&#322;a oparta na wybraniu innej &#347;cie&#380;ki.
### Wersja podstawowa: Zaprogramuj algorytm kontroluj&#261;cy agenta na bazie A* z nast&#281;puj&#261;c&#261; "p&#281;tl&#261; g&#322;&#243;wn&#261;": przeszukuj&#261;cy a&#380; do wype&#322;nienia bufora "frontu przeszukiwania", a nast&#281;pnie podejmuj&#261;cy akcje tak d&#322;ugo a&#380; zwolni si&#281; miejsce we "froncie przeszukiwania".
### Rozszerzenie 1: Zaprogramuj ten algorytm w systemie Soar w zgodzie z jego "filozofi&#261;".
### Rozszerzenie 2: Zaprogramuj sytuacj&#281; testow&#261;, w kt&#243;rej op&#322;aca si&#281; mniej planowa&#263; wprz&#243;d przed rozpocz&#281;ciem dzia&#322;ania i pomi&#281;dzy akcjami: np. wsp&#243;&#322;zawodnictwo agent&#243;w w "czasie rzeczywistym", zmienne &#347;rodowisko. Por&#243;wnaj algorytm z tego zadania z algorytmem kt&#243;ry po prostu wykonuje ustalon&#261; ilo&#347;&#263; krok&#243;w algorytmu A* pomi&#281;dzy akcjami.
## '''Reinforcement Learning'''. Zapoznaj si&#281; z tutorialem RL w systemie Soar i zaprogramuj w nim agenta wykorzystuj&#261;cego uczenie ze wzmocnieniem
.
Changed lines 142-143 from:
## '''Relational Statistical Learning'''. System [[Alchemy -> http://alchemy.cs.washington.edu/]]
to:
## '''Statistical Relational Learning'''. System [[Alchemy -> http://alchemy.cs.washington.edu/]]. Modele graficzne kt&#243;rymi zajmowali&#347;my si&#281; na pierwszej li&#347;cie zada&#324; wyra&#380;a&#322;y jedynie w&#322;asno&#347;ci obiekt&#243;w i zale&#380;no&#347;ci pomi&#281;dzy w&#322;asno&#347;ciami pojedynczego obiektu. W j&#281;zyku logiki by&#322;yby to predykaty jednoargumentowe oraz formu&#322;y z jedn&#261; zmienn&#261;: da si&#281; je wyrazi&#263; w rachunku zda&#324;. ''Alchemy'' pozwala wyra&#380;a&#263; formu&#322;y pierwszego rz&#281;du, relacje wi&#261;&#380;&#261;ce wiele obiekt&#243;w i zale&#380;no&#347;ci pomi&#281;dzy tymi relacjami.
*** Schemat projektu: zrealizuj w ''Alchemy'' wybrany projekt z pierwszej listy zada&#324;, ale z naciskiem na mo&#380;liwo&#347;ci ''Alchemy'' kt&#243;rych nie daj&#261; zwyk&#322;e sieci przekona&#324; (sieci bayesowskie). Mo&#380;esz np. wykorzysta&#263; skomplikowan&#261; baz&#281; danych z wieloma tabelami.
April 14, 2009, at 02:32 PM by lukstafi - nowe zadania
Added lines 115-139:
# Ostatnia grupa projekt&#243;w: planowanie w przestrzeni plan&#243;w, systemy regu&#322;owe, systemy eksperckie, agent, uczenie ze wzmocnieniem, zbiory danych ustrukturowanych: "relational learning".
## '''Ucz&#261;cy si&#281; system ekspercki'''. By&#263; mo&#380;e znasz [[http://pl.wikipedia.org/wiki/20_pyta%C5%84 | gr&#281; w 20 pyta&#324;]], by&#263; mo&#380;e implementowa&#322;e&#347; nawet kiedy&#347; w BASICu program graj&#261;cy w ni&#261;, zgaduj&#261;cy s&#322;owo pomy&#347;lane przez gracza, i rozbudowuj&#261;cy drzewo decyzji poprzez zadawanie graczowi, po jego wygranej, pytania: jak zapyta&#322;by&#347;, &#380;eby odr&#243;&#380;ni&#263; tw&#243;j przedmiot X od mojego zgadni&#281;cia Y? Napisz system ekspercki b&#281;d&#261;cy udoskonaleniem tej gry. Taki system mo&#380;e mie&#263; wiele zastosowa&#324;, np. w diagnostyce.
### Wersja podstawowa: zaprogramuj gr&#281; w 20 pyta&#324;, ucz&#261;c&#261; si&#281; jak wy&#380;ej. Wykorzystaj odpowiednie formularze z komentarzami tak, aby ma&#322;ym kosztem uzyska&#263; od u&#380;ytkownika poprawne j&#281;zykowo s&#322;owa-przedmioty do zgadywania oraz pytania o cechy rozwa&#380;anego przedmiotu, z odpowiedziami "tak/nie". Zamiast budowa&#263; drzewo decyzji, dla ka&#380;dego znanego przedmiotu i ka&#380;dego posiadanego pytania pami&#281;taj odpowied&#378;: tak / nie / nieznana (gdy pytanie nie by&#322;o jeszcze dla tego przedmiotu zadane). Zgaduj&#261;c przedmiot, wystartuj od zbioru wszystkich znanych przedmiot&#243;w. Wybieraj pytania tak, by szybko zaw&#281;zi&#263; aktualnie rozpatrywany zbi&#243;r przedmiot&#243;w (np. po zaw&#281;&#380;eniu do aktualnego zbioru, pytanie ma tyle samo odpowiedzi "tak" co odpowiedzi "nie"). Odrzucaj z rozpatrywanego zbioru przedmioty, dla kt&#243;rych odpowied&#378; jest inna ni&#380; udzielona przez gracza (zachowuj przedmioty z odpowiedzi&#261; "nieznana"). Zapami&#281;tuj pytania systemu i odpowiedzi u&#380;ytkownika, by na ko&#324;cu gdy wiadomo ju&#380;, o jaki przedmiot chodzi&#322;o, uaktualni&#263; odpowiedzi pyta&#324; z "nieznana" na odpowiednio "tak" lub "nie", a r&#243;wnie&#380; wykry&#263; konflikty je&#347;li odpowied&#378; si&#281; nie zgadza (to oznacza, &#380;e gracz wygra&#322;, ale by&#263; mo&#380;e oszukiwa&#322;) i poinformowa&#263; o tym.
### Rozszerzenie 1: automatycznie tw&#243;rz i wykorzystuj ''regu&#322;y asocjacyjne''. Inaczej ni&#380; w "Data Mining", u&#380;ywaj jedynie niezawodnych regu&#322; asocjacyjnych: wyrzucaj regu&#322;y, dla kt&#243;rych chocia&#380;by jeden znany przedmiot jest kontrprzyk&#322;adem. Regu&#322;a asocjacyjna m&#243;wi, &#380;e je&#347;li odpowiedzi na pewien zestaw (dw&#243;ch, trzech, czterech) pyta&#324; s&#261; takie-a-takie, to odpowied&#378; na pewne inne pytanie b&#281;dzie taka-a-taka. Do tworzenia regu&#322; zaadoptuj jeden ze znanych algorytm&#243;w ([[http://en.wikipedia.org/wiki/Association_rule_learning | Association rule learning]]). W czasie zadawania pyta&#324;, gdy tylko pewna regu&#322;a "odpala" (odpowiedzi na odpowiednie pytania pokrywaj&#261; si&#281; z jej przes&#322;ankami), sprawd&#378; pytanie z jej wniosku: je&#347;li by&#322;o ju&#380; zadane, to w przypadku gdy regu&#322;a jest niepoprawna wykasuj j&#261;, a je&#347;li nie by&#322;o jeszcze zadane, to od&#322;&#243;&#380; je na bok (tak jakby by&#322;o ju&#380; zadane). Powr&#243;&#263; do pyta&#324; "rozstrzygni&#281;tych" przez regu&#322;y asocjacyjne dopiero, gdy pozosta&#322;e pytania nie rozstrzygn&#261; problemu -- pami&#281;taj, &#380;eby wykasowa&#263; regu&#322;y, kt&#243;re oka&#380;&#261; si&#281; b&#322;&#281;dne.
### Rozszerzenie 2: zbuduj odpowiednio du&#380;&#261; baz&#281; wiedzy dla jakiej&#347; praktycznej dziedziny zastosowania systemu eksperckiego, wykorzystuj&#261;c "human computation": zbuduj system, w kt&#243;rym wielu u&#380;ytkownik&#243;w mo&#380;e gra&#263; w twoj&#261; gr&#281; (i by&#263; wykorzystywa&#263; j&#261; do rzeczywistej diagnostyki), dzia&#322;aj&#261;c na wsp&#243;lnej bazie wiedzy. Mo&#380;esz np. zaprogramowa&#263; serwer http i odpowiedniego klienta.
## '''Programowanie indukcyjne'''. Typy algebraiczne (czyli warianty, sumy roz&#322;&#261;czne produkt&#243;w typ&#243;w algebraicznych) daj&#261; bardzo wygodny spos&#243;b reprezentacji danych strukturalnych. Podejmiemy ambitne zadanie z maszynowego uczenia si&#281;: indukcj&#281; funkcji, czyli b&#281;dziemy konstruowa&#263; jak najoszcz&#281;dniejsz&#261; funkcj&#281;, kt&#243;ra dla zadanych danych wej&#347;ciowych wygeneruje zadane dane wyj&#347;ciowe. Zapoznaj si&#281; z artyku&#322;em Markusa Mottla [[Using Algebraic Datatypes as Uniform Representation for Structured Data -> http://ocaml.info/oefai/papers/algebraic_dts/index.html]], w szczeg&#243;lno&#347;ci z rozdzia&#322;em [[Generalizing Decision Tree Learning to Algebraic Datatypes -> http://ocaml.info/oefai/papers/algebraic_dts/algebraic_dts003.html]] i doko&#324;cz moj&#261; prototypow&#261; implementacj&#281; [[(Attach:FunProg/)funind.ml]].
### Wersja podstawowa:
**** Napisz test-zastosowanie (odpowiednik akapitu [@(* *** example *** *)@] z pliku &#378;r&#243;d&#322;owego).
**** Wprowad&#378; obs&#322;ug&#281; sytuacji, gdy dane nie opisuj&#261; funkcji (tzn. gdy tym samym argumentom przypisane s&#261; r&#243;&#380;ne wyniki -- obecnie program wysypuje si&#281; wtedy).
**** Dopisz obs&#322;ug&#281; ga&#322;&#281;zi domy&#347;lnych " _ -> ". Patrz: paragraf 3.3 artyku&#322;u.
**** Dopisz normalizacj&#281; "lewej strony" (patrz paragraf 3.1.2 artyku&#322;u).
### Rozszerzenie 1: Rozszerz algorytm o obs&#322;ug&#281; zmiennych liczbowych (zapoznaj si&#281; z odpowiednimi mechanizmami budowy drzew decyzyjnych).
### Rozszerzenie 2: Mo&#380;esz zmierzy&#263; si&#281; z problemem indukcji funkcji rekurencyjnych.
## '''Agent 001'''. Zapoznaj si&#281; z tutorialem 2 (i by&#263; mo&#380;e r&#243;wnie&#380; 3) do systemu Soar.
### Wersja podstawowa: zaprogramuj rozszerzenia programu "Eaters" zaproponowane na ko&#324;cu tutoriala 2: punkty 1, 2, prosty mechanizm dla punktu 3.
### Rozszerzenie 1: zaprogramuj bardziej zaawansowany mechanizm dla punktu 3, punkt 4.
## '''Agent 002'''. Zapoznaj si&#281; z tutorialami 2 i 3 do systemu Soar.
### Wersja podstawowa: zaprogramuj rozszerzenia programu "SoarTanks" zaproponowane na ko&#324;cu tutoriala 3: punkty 1, 2, kt&#243;ry&#347; spo&#347;r&#243;d punkt&#243;w 3-5.
### Rozszerzenie 1: zaprogramuj punkty 1-5 (czyli o dwa wi&#281;cej ni&#380; w wersji podstawowej).
### Rozszerzenie 2: zaprogramuj dodatkowo punkty 6 i 7.
### Rozszerzenie 3: zaprogramuj dodatkowo punkt 8.
## '''A* real-time beam search'''.
## '''Reinforcement Learning'''. Zapoznaj si&#281; z tutorialem RL w systemie Soar.
## '''Planowanie w przestrzeni plan&#243;w'''.
## '''Relational Statistical Learning'''. System [[Alchemy -> http://alchemy.cs.washington.edu/]]
Changed line 58 from:
## (:if userlang pl:)'''Teoriodecyzyjne heurystyki w przeszukiwaniu i grach'''. Skonstruuj sie&#263; przekona&#324; z w&#281;z&#322;em/w&#281;z&#322;ami decyzyjnymi oraz w&#281;z&#322;em warto&#347;ci/nagrody/u&#380;yteczno&#347;ci/kosztu; patrz [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]. Dziedzin&#261; modelu ma by&#263; problem przeszukiwania (gra jedno-osobowa) lub gra dwuosobowa.(:if userlang en:)'''Decisiontheoretic heuristics in search and in games'''. Build a belief network with a decision node/nodes and a value/reward/utility/cost node; see[[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]. The domain of the model should be a search problem (one-person game) or a two-person game.(:if:)
to:
## (:if userlang pl:)'''Teoriodecyzyjne heurystyki w przeszukiwaniu i grach'''. Skonstruuj sie&#263; przekona&#324; z w&#281;z&#322;em/w&#281;z&#322;ami decyzyjnymi oraz w&#281;z&#322;em warto&#347;ci/nagrody/u&#380;yteczno&#347;ci/kosztu; patrz [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]. Dziedzin&#261; modelu ma by&#263; problem przeszukiwania (gra jedno-osobowa) lub gra dwuosobowa.(:if userlang en:)'''Decisiontheoretic heuristics in search and in games'''. Build a belief network with a decision node/nodes and a value/reward/utility/cost node; see [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]. The domain of the model should be a search problem (one-person game) or a two-person game.(:if:)
Changed line 55 from:
**** (:if userlang pl:)Je&#347;li model wspiera podejmowanie decyzji, to u&#380;ytkownik mo&#380;e p&#243;&#378;niej oceni&#263; podj&#281;t&#261; decyzj&#281;.(:if userlang en:)If the model supports decision making, then the user can valuate the decision made.(:if:n)
to:
**** (:if userlang pl:)Je&#347;li model wspiera podejmowanie decyzji, to u&#380;ytkownik mo&#380;e p&#243;&#378;niej oceni&#263; podj&#281;t&#261; decyzj&#281;.(:if userlang en:)If the model supports decision making, then the user can valuate the decision made.(:if:)
April 09, 2009, at 06:10 PM by lukstafi - BN translated
Changed line 32 from:
## (:if userlang pl:)Za wersj&#281; podstawow&#261; mo&#380;na dosta&#263; maksymalnie 15 punkt&#243;w (za &#322;adny raport z do&#322;&#261;czonymi -- tzn. wys&#322;anymi mailem lub wskazanymi url-em -- &#378;r&#243;d&#322;ami w postaci wykorzystanych program&#243;w / skrypt&#243;w dla przeprowadzonych eksperyment&#243;w / danych).(:if userlang en:)For the basic version you can get at most 15 points (for a nice rapport with attached sources: programs, experiment scripts, datasets etc. -- sent by mail or pointed by url). (:if:)
to:
## (:if userlang pl:)Za wersj&#281; podstawow&#261; mo&#380;na dosta&#263; maksymalnie 15 punkt&#243;w (za &#322;adny raport z do&#322;&#261;czonymi -- tzn. wys&#322;anymi mailem lub wskazanymi url-em -- &#378;r&#243;d&#322;ami w postaci wykorzystanych program&#243;w / skrypt&#243;w dla przeprowadzonych eksperyment&#243;w / danych).(:if userlang en:)For the basic version you can get at most 15 points (for a nice report with attached sources: programs, experiment scripts, datasets etc. -- sent by mail or pointed by url). (:if:)
Changed lines 47-63 from:
### Rozszerzenie 1: samodzielnie zgromad&#378; dane. Mo&#380;esz np. podpi&#261;&#263; si&#281; do jakiej&#347; aplikacji i przeprowadzi&#263; logowanie jej zmiennych. Mo&#380;esz skonstruowa&#263; model deterministyczny jakiego&#347; zjawiska (tylko zmienne wej&#347;ciowe b&#281;d&#261; losowane), ale cz&#281;&#347;&#263; zmiennych wej&#347;ciowych pozostawi&#263; ukrytych przed modelowaniem statystycznym (co spowoduje, &#380;e cz&#281;&#347;&#263; z pozosta&#322;ych zale&#380;no&#347;ci nabierze charakteru losowego).
### Rozszerzenie 2: wyra&#378; posiadan&#261; wiedz&#281; o zagadnieniu w postaci wi&#281;z&#243;w (twardych, a mo&#380;e r&#243;wnie&#380; mi&#281;kkich), lub w postaci pocz&#261;tkowej sieci przekona&#324;. Por&#243;wnaj sie&#263; znalezion&#261; z uwzgl&#281;dnieniem twojej wiedzy, z sieci&#261; kt&#243;r&#261; (to samo lub inne) narz&#281;dzie odnalaz&#322;o przy braku wiedzy startowej (z w pewnym sensie "jednostajnym" rozk&#322;adem a priori na struktury sieci).
### Rozszerzenie 3: urozmai&#263; struktur&#281; sieci: w&#281;z&#322;y innego typu ni&#380; dyskretne ze stabulowanymi prawdopodobie&#324;stwami warunkowymi (np. dla zmiennych ci&#261;g&#322;ych); zmienne ukryte (nie obserwowane, wog&#243;le albo zazwyczaj, w danych ucz&#261;cych).
## '''Akwizycja i reprezentacja wiedzy'''. Samodzielnie skonstruuj sie&#263; przekona&#324; (jej struktur&#281; i parametry).
### Wersja podstawowa: skonstruuj prostsz&#261; sie&#263; (wariant ''(a)'') lub wprowad&#378;/zaimportuj trudniejsz&#261; sie&#263; odnalezion&#261; w internecie (wariant ''(b)''). Opisz zale&#380;no&#347;ci w sieci oraz kilka wynik&#243;w zapyta&#324; do sieci (jak w wariancie ''Data Mining'').
### Rozszerzenie 1: skonstruuj sie&#263; przeprowadzaj&#261;c wywiad z osob&#261;, kt&#243;ra zna si&#281; na analizowanym zagadnieniu (wariant ''
(c)''). Osoba ta nie mo&#380;e by&#263; koleg&#261; (kole&#380;ank&#261;) z naszego przedmiotu; dobrze, je&#347;li wog&#243;le nie jest studentem b&#261;d&#378; absolwentem informatyki lub matematyki. (Cz&#281;&#347;ci&#261; zadania jest nam&#243;wienie kogo&#347;, by nam pom&#243;g&#322;.) W raporcie zamie&#347;&#263; transkrypcj&#281; fragmentu wywiadu.
### Rozszerzenie 2: zaplanuj (i mo&#380;e te&#380; zaprogramuj) mechanizm gromadzenia danych w trakcie u&#380;ytkowania modelu
, oraz okresow&#261; automatyczn&#261; aktualizacj&#281; parametr&#243;w modelu (a by&#263; mo&#380;e r&#243;wnie&#380; struktury modelu, cho&#263; to mniej bezpieczne); mo&#380;esz potrzebowa&#263; narz&#281;dzia dopuszczaj&#261;cego nieobserwowanie niekt&#243;rych zmiennych w danych ucz&#261;cych. Rozwa&#380; "trade-off" pomi&#281;dzy konserwatywnym zachowaniem posiadanego modelu a nad&#261;&#380;aniem z modelem za gromadzonymi danymi. Niekt&#243;re narz&#281;dzia pozwol&#261; ci wyrazi&#263; stary model bezpo&#347;rednio, np. jako parametry "a priori" dla rozk&#322;adu Dirichleta. Je&#347;li twoje narz&#281;dzie tego nie potrafi, b&#281;dziesz musia&#322; wygenerowa&#263; odpowiedni&#261; porcj&#281; danych ze starego modelu, &#380;eby zr&#243;wnowa&#380;y&#263; wp&#322;yw wiedzy wzgl&#281;dem wp&#322;ywu nap&#322;yni&#281;tych obserwacji.
**** Je&#347;li model s&#322;u&#380;y do predykcji, to u&#380;ytkownik mo&#380;e powiedzie&#263; p&#243;&#378;niej, co sta&#322;o si&#281; naprawd&#281;.
**** Je&#347;li model wspiera podejmowanie decyzji, to u&#380;ytkownik mo&#380;e p&#243;&#378;niej oceni&#263; podj&#281;t&#261; decyzj&#281;.
**** Je&#347;li dane
(ang. "evidence") w zapytaniach u&#380;ytkownika nie maj&#261; charakteru hipotetycznego ale s&#261; zaobserwowane, np. s&#261; to objawy obserwowane u pacjenta, to zarejestruj je; dobry model pomi&#281;dzy objawami mo&#380;e zaoszcz&#281;dzi&#263; na badaniach diagnostycznych. Gromadz&#261;c dane sp&#322;ywaj&#261;ce z ca&#322;ego regionu wydobywamy wiedz&#281; o charakterze epidemiologicznym itd.
### Rozszerzenie 3: urozmai&#263; struktur&#281; sieci (jak w rozrzerzeniu 3 wariantu ''Data Mining''): w&#281;z&#322;y innego typu ni&#380; dyskretne, zmienne ukryte itd.
## '''Teoriodecyzyjne heurystyki w przeszukiwaniu i grach'''. Skonstruuj sie&#263; przekona&#324; z w&#281;z&#322;em/w&#281;z&#322;ami decyzyjnymi oraz w&#281;z&#322;em warto&#347;ci/nagrody/u&#380;yteczno&#347;ci/kosztu; patrz [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]. Dziedzin&#261; modelu ma by&#263; problem przeszukiwania (gra jedno-osobowa) lub gra dwuosobowa.
### Wersja podstawowa
: Zmiennymi "&#347;rodowiskowymi" s&#261; parametry stanu przeszukiwania / stanu gry. Zmienna / zmienne decyzyjne dostarczaj&#261; parametr&#243;w operatorowi przej&#347;cia do kolejnego stanu. Stan gry mo&#380;e decydowa&#263;, kt&#243;re zmienne s&#261; obserwowane w trakcie u&#380;ywania modelu (np. kolejne decyzje nasze/przeciwnika w grze o niewielkiej ilo&#347;ci ruch&#243;w, np. pokerze czy "oczku"). Niekt&#243;re zmienne mog&#261; wog&#243;le nie by&#263; obserwowalne w trakcie u&#380;ywania struktury, ale by&#263; &#322;atwo dost&#281;pne dla uczenia struktury (np. kolejny ruch przeciwnika).
### Rozszerzenie 1: zamiast konstruowa
&#263; model "z palca" albo "z internetu", zaproponuj / zaprogramuj generator danych a nast&#281;pnie znajd&#378; model z wygenerowanych danych. W generowanych danych za warto&#347;&#263; zmiennej "heurystyka" podstaw estymowan&#261; odleg&#322;o&#347;&#263; od rozwi&#261;zania (poprzez najkr&#243;tsz&#261; z rzeczywi&#347;cie znalezionych &#347;cie&#380;ek do rozwi&#261;zania) lub wypr&#243;bkowane prawdopodobie&#324;stwo wygranej (jaka cz&#281;&#347;&#263; spo&#347;r&#243;d rozgrywek przechodz&#261;cych przez dany stan zako&#324;czy&#322;a si&#281; wygran&#261;). W generatorze wykorzystaj najlepsze dost&#281;pne ci heurystyki &#380;eby przyspieszy&#263; generowanie i poprawi&#263; jako&#347;&#263; danych.
### Rozszerzenie 2: zaproponuj / zaprogramuj mechanizm uaktualniania modelu w czasie rozgrywki lub po kilku rozgrywkach.
### Rozszerzenie 3: zaproponuj / zaprogramuj strategi&#281; przeszukiwania / strategi&#281; rozgrywki, kt&#243;ra nie kieruje si&#281; ch&#281;ci&#261; maksymalizacji nagrody, ale ch&#281;ci&#261; jak najsprawniejszego poprawienia jako&#347;ci modelu
.
#### Rozszerzenie 4: zaproponuj, wykorzystuj&#261;c teori&#281; bayesowskiego uczenia ze wzmocnieniem, mechanizm optymalnego wyboru ruchu, uwzgl&#281;dniaj&#261;cy, &#380;e poprawienie jako&#347;ci modelu poprawi skuteczno&#347
;&#263; maksymalizacji nagrody.
to:
### (:if userlang pl:)Rozszerzenie 1: samodzielnie zgromad&#378; dane. Mo&#380;esz np. podpi&#261;&#263; si&#281; do jakiej&#347; aplikacji i przeprowadzi&#263; logowanie jej zmiennych. Mo&#380;esz skonstruowa&#263; model deterministyczny jakiego&#347; zjawiska (tylko zmienne wej&#347;ciowe b&#281;d&#261; losowane), ale cz&#281;&#347;&#263; zmiennych wej&#347;ciowych pozostawi&#263; ukrytych przed modelowaniem statystycznym (co spowoduje, &#380;e cz&#281;&#347;&#263; z pozosta&#322;ych zale&#380;no&#347;ci nabierze charakteru losowego).(:if userlang en:)Extension 1: collect the data yourself. You can acquire it from some application by logging its data. You can build a deterministic model for some process (only the input variables will be random) but leave out some input variables from statistical modelling (which will introduce additional stochastic dependencies).(:if:)
### (:if userlang pl:)Rozszerzenie 2: wyra&#378; posiadan&#261; wiedz&#281; o zagadnieniu w postaci wi&#281;z&#243;w (twardych, a mo&#380;e r&#243;wnie&#380; mi&#281;kkich), lub w postaci pocz&#261;tkowej sieci przekona&#324;. Por&#243;wnaj sie&#263; znalezion&#261; z uwzgl&#281;dnieniem twojej wiedzy, z sieci&#261; kt&#243;r&#261; (to samo lub inne) narz&#281;dzie odnalaz&#322;o przy braku wiedzy startowej (z w pewnym sensie "jednostajnym" rozk&#322;adem a priori na struktury sieci).(:if userlang en:)Extension 2: express the knowledge about the problem as constraints (hard, and perhaps also soft), or as an initial belief network. Compare the result acknowledging this information with a structure found without prior knowledge (with, in some sense, a uniform prior).(:if:)
### (:if userlang pl:)Rozszerzenie 3: urozmai&#263; struktur&#281; sieci: w&#281;z&#322;y innego typu ni&#380; dyskretne ze stabulowanymi prawdopodobie&#324;stwami warunkowymi (np. dla zmiennych ci&#261;g&#322;ych); zmienne ukryte (nie obserwowane, wog&#243;le albo zazwyczaj, w danych ucz&#261;cych).(:if userlang en:)Extension 3: enrich the network, e.g. by introducing different types of nodes (e.g. true continuous, discrete but not simply tabulated), or unobservable variables.(:if:)
## (:if userlang pl:)'''Akwizycja i reprezentacja wiedzy'''. Samodzielnie skonstruuj sie&#263; przekona&#324; (jej struktur&#281; i parametry).(:if userlang en:)'''Acquisition and representation of knowledge'''. Build the belief network manually (its structure and parameters).(:if:)
### (:if userlang pl:)Wersja podstawowa: skonstruuj prostsz&#261; sie&#263; (wariant ''(a)'') lub wprowad&#378;/zaimportuj trudniejsz&#261; sie&#263; odnalezion&#261; w internecie (wariant ''(b)''). Opisz zale&#380;no&#347;ci w sieci oraz kilka wynik&#243;w zapyta&#324; do sieci (jak w wariancie ''Data Mining'').(:if userlang en:)Basic version: build a simpler network (case ''a'') or import a network found in the internet (case ''b''). Describe the dependencies in the network and several queries to the network (just as in the project ''Data Mining'').(:if:)
### (:if userlang pl:)Rozszerzenie 1: skonstruuj sie&#263; przeprowadzaj&#261;c wywiad z osob&#261;, kt&#243;ra zna si&#281; na analizowanym zagadnieniu (wariant ''(c)''). Osoba ta nie mo&#380;e by&#263; koleg&#261; (kole&#380;ank&#261;) z naszego przedmiotu; dobrze, je&#347;li wog&#243;le nie jest studentem b&#261;d&#378; absolwentem informatyki lub matematyki. (Cz&#281;&#347;ci&#261; zadania jest nam&#243;wienie kogo&#347;, by nam pom&#243;g&#322;.) W raporcie zamie&#347;&#263; transkrypcj&#281; fragmentu wywiadu.(:if userlang en:)Extension 1: build the network by performing an interview with a preson that is knowledgeable in the problem analyzed; it's good if that person is not a computer science student. Place a fragment of the talk with that person into the report.(:if:)
### (:if userlang pl:)Rozszerzenie 2: zaplanuj (i mo&#380;e te&#380; zaprogramuj) mechanizm gromadzenia danych w trakcie u&#380;ytkowania modelu, oraz okresow&#261; automatyczn&#261; aktualizacj&#281; parametr&#243;w modelu (a by&#263; mo&#380;e r&#243;wnie&#380; struktury modelu, cho&#263; to mniej bezpieczne); mo&#380;esz potrzebowa&#263; narz&#281;dzia dopuszczaj&#261;cego nieobserwowanie niekt&#243;rych zmiennych w danych ucz&#261;cych. Rozwa&#380; "trade-off" pomi&#281;dzy konserwatywnym zachowaniem posiadanego modelu a nad&#261;&#380;aniem z modelem za gromadzonymi danymi. Niekt&#243;re narz&#281;dzia pozwol&#261; ci wyrazi&#263; stary model bezpo&#347;rednio, np. jako parametry "a priori" dla rozk&#322;adu Dirichleta. Je&#347;li twoje narz&#281;dzie tego nie potrafi, b&#281;dziesz musia&#322; wygenerowa&#263; odpowiedni&#261; porcj&#281; danych ze starego modelu, &#380;eby zr&#243;wnowa&#380;y&#263; wp&#322;yw wiedzy wzgl&#281;dem wp&#322;ywu nap&#322;yni&#281;tych obserwacji. Przyk&#322;ady gromadzenia danych:(:if userlang en:)Extension 2: design (and perhaps also implement) a data collecting regime for the use of the model, and a periodic update of the model parameter (and perhaps structure); you might need a tool that allows for unobservable variables in training data. Consider the trade-off between the preservation of the prior knowledge and the tracking of experience due to collected data. Try to use the old model directly, e.g. as the a priori parameters for the Dirichlet distributions. If the tool doesn't allow it, consider generating samples from the prior model; but this can result in sampling artifacts. Examples of data collection:(:if:)
**** (:if userlang pl:)Je&#347;li model s&#322;u&#380;y do predykcji, to u&#380;ytkownik mo&#380;e powiedzie&#263; p&#243;&#378;niej, co sta&#322;o si&#281; naprawd&#281;.(:if userlang en:)If the model is used for prediction, the user can later tell, what really happened.(:if:)
**** (:if userlang pl:)Je&#347;li model wspiera podejmowanie decyzji, to u&#380;ytkownik mo&#380;e p&#243;&#378;niej oceni&#263; podj&#281;t&#261; decyzj&#281;.(:if userlang en:)If the model supports decision making, then the user can valuate the decision made.(:if:n)
**** (:if userlang pl:)Je&#347;li dane (ang. "evidence") w zapytaniach u&#380;ytkownika nie maj&#261; charakteru hipotetycznego ale s&#261; zaobserwowane, np. s&#261; to objawy obserwowane u pacjenta, to zarejestruj je; dobry model pomi&#281;dzy objawami mo&#380;e zaoszcz&#281;dzi&#263; na badaniach diagnostycznych. Gromadz&#261;c dane sp&#322;ywaj&#261;ce z ca&#322;ego regionu wydobywamy wiedz&#281; o charakterze epidemiologicznym itd.(:if userlang en:)If the evidence in the queries to the model is observed (i.e. not hypothetical), e.g. they are the sympthoms of a disease in a patient, then register, or log, them; a good model between the sympthoms can spare on diagnostic tests. Additionally, epidemic information can be mined from the data, etc.(:if:)
### (:if userlang pl:)Rozszerzenie 3: urozmai&#263; struktur&#281; sieci (jak w rozrzerzeniu 3 wariantu ''Data Mining''): w&#281;z&#322;y innego typu ni&#380; dyskretne, zmienne ukryte itd.(:if userlang en:)Extension 3: enrich the network structure (like in the extension 3 for the project ''Data Mining''): nodes of type other than discrete tabulated, hidden variables etc.(:if:)
## (:if userlang pl:)'''Teoriodecyzyjne heurystyki w przeszukiwaniu i grach'''. Skonstruuj sie&#263; przekona&#324; z w&#281;z&#322;em/w&#281;z&#322;ami decyzyjnymi oraz w&#281;z&#322;em warto&#347;ci/nagrody/u&#380;yteczno&#347;ci/kosztu; patrz [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]. Dziedzin&#261; modelu ma by&#263; problem przeszukiwania (gra jedno-osobowa) lub gra dwuosobowa.(:if userlang en:)'''Decisiontheoretic heuristics in search and in games'''. Build a belief network with a decision node/nodes and a value/reward/utility/cost node; see[[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]. The domain of the model should be a search problem (one-person game) or a two-person game.(:if:)
### (:if userlang pl:)Wersja podstawowa: Zmiennymi "&#347;rodowiskowymi" s&#261; parametry stanu przeszukiwania / stanu gry. Zmienna / zmienne decyzyjne dostarczaj&#261; parametr&#243;w operatorowi przej&#347;cia do kolejnego stanu. Stan gry mo&#380;e decydowa&#263;, kt&#243;re zmienne s&#261; obserwowane w trakcie u&#380;ywania modelu (np. kolejne decyzje nasze/przeciwnika w grze o niewielkiej ilo&#347;ci ruch&#243;w, np. pokerze czy "oczku"). Niekt&#243;re zmienne mog&#261; wog&#243;le nie by&#263; obserwowalne w trakcie u&#380;ywania struktury, ale by&#263; &#322;atwo dost&#281;pne dla uczenia struktury (np. kolejny ruch przeciwnika).(:if userlang en:)Basic version: "Environmental" variables are the search or game state parameters. Decision variable(s) provide parameters for the state transition operator (they represent actions). The state of the game can decide, which variables are observable when the model is used (e.g. the consecutive decisions of players in a limited moves game, like poker or black jack). Some variables can be not observable when the model is used, but be easily available for training (e.g. the next move of the opponent). (:if:)
### (:if userlang pl:)Rozszerzenie 1: zamiast konstruowa&#263; model "z palca" albo "z internetu", zaprogramuj generator danych a nast&#281;pnie znajd&#378; model z wygenerowanych danych. W generowanych danych za warto&#347;&#263; zmiennej "heurystyka" podstaw estymowan&#261; odleg&#322;o&#347;&#263; od rozwi&#261;zania (poprzez najkr&#243;tsz&#261; z rzeczywi&#347;cie znalezionych &#347;cie&#380;ek do rozwi&#261;zania) lub wypr&#243;bkowane prawdopodobie&#324;stwo wygranej (jaka cz&#281;&#347;&#263; spo&#347;r&#243;d rozgrywek przechodz&#261;cych przez dany stan zako&#324;czy&#322;a si&#281; wygran&#261;). W generatorze wykorzystaj najlepsze dost&#281;pne ci heurystyki &#380;eby przyspieszy&#263; generowanie i poprawi&#263; jako&#347;&#263; danych.(:if userlang en:)Extension 1: instead of building a model from intuition or finding it in the internet, implement a data generator, and learn the model from the generated data. In the data, substitute for the variable "heuristic" the estimated distance from a solution (by the shortest of actually found paths), or the sample probability of winning (what fraction of games that pass through the given state ended with winning). In the generator, you can use the best available heuristics to speed up the generation and achieve better data quality.(:if:)
### (:if userlang pl:)Rozszerzenie 2: zaproponuj / zaprogramuj mechanizm uaktualniania modelu w czasie rozgrywki lub po kilku rozgrywkach.(:if userlang en:)Extension 2: propose / implement model update mechanism, to be applied during the match or after several matches.(:if:)
### (:if userlang pl:)Rozszerzenie 3: zaproponuj / zaprogramuj strategi&#281; przeszukiwania / strategi&#281; rozgrywki, kt&#243;ra nie kieruje si&#281; ch&#281;ci&#261; maksymalizacji nagrody, ale ch&#281;ci&#261; jak najsprawniejszego poprawienia jako&#347;ci modelu.(:if userlang en:)Extension 3: propose / implement a search or game strategy, which will not aim at reward maximization, but at information gain maximization, so that the model can be updated well.(:if:)
#### (:if userlang pl:)Rozszerzenie 4: zaproponuj, wykorzystuj&#261;c teori&#281; bayesowskiego uczenia ze wzmocnieniem, mechanizm optymalnego wyboru ruchu, uwzgl&#281;dniaj&#261;cy, &#380;e poprawienie jako&#347;ci modelu poprawi skuteczno&#347;&#263; maksymalizacji nagrody.(:if userlang en:)Extension 4: propose, using the Bayesian Reinforcement Learning theory, an optimal action selection mechanism, taking into account that a good model update will improve the maximization of reward.(:if:)
April 08, 2009, at 10:52 PM by lukstafi - bayes ex1-1
Changed lines 10-11 from:
# Pracownia z sieci bayesowskich: [[http://b-course.cs.helsinki.fi/obc/depend.html | Dependence modeling trails]] (kurs online z Helsinek)
**
[[http://sequoia.ict.pwr.wroc.pl/~witold/ai/ai_baynet_s.pdf | Wyk&#322;ad 8: Wnioskowanie na probabilistycznych sieciach przekona&#324;]]
to:
# (:if userlang pl:)Pracownia z sieci bayesowskich:(:if userlang en:)Lab on Bayes Nets(:if:) [[http://b-course.cs.helsinki.fi/obc/depend.html | Dependence modeling trails]] (:if userlang pl:)(kurs online z Helsinek)(:if userlang en:) (online course from Helsinki)(:if:)
** [[http://sequoia.ict.pwr.wroc.pl/~witold/ai/ai_baynet_s.pdf | (:if userlang pl:)Wyk
&#322;ad: Wnioskowanie na probabilistycznych sieciach przekona&#324;(:if userlang en:)Lecture: Inference on probabilistic belief networks(:if:)]]
Changed lines 15-17 from:
# Pracownia z sieci bayesowskich 2:
** [[http://sequoia.ict.pwr.wroc.pl/~witold/ai/JavaBayes/ | JavaBayes]] (kopia lokalna na stronie wyk&#322;adowcy)
***
[[http://www.cs.cmu.edu/~javabayes/Home/ | JavaBayes Home]] (dokumentacja)
to:
# (:if userlang pl:)Pracownia z sieci bayesowskich 2:(:if userlang en:)Lab on Bayes Nets 2:(:if:)
**
[[http://sequoia.ict.pwr.wroc.pl/~witold/ai/JavaBayes/ | JavaBayes]] (:if userlang pl:)(kopia lokalna na stronie wyk&#322;adowcy)(:if userlang en:) (local copy on the lecturer page)(:if:)
*** [[http://www.cs.cmu.edu/~javabayes/Home/ | JavaBayes Home]] (:if userlang en:) (documentation)(:if userlang pl:) (dokumentacja) (:if:
)
Changed line 22 from:
** [[http://www.openbayes.org/ | Open Bayes for Python]] (cz&#281;&#347;ciowy klon BNT, tylko zmienne dyskretne)
to:
** [[http://www.openbayes.org/ | Open Bayes for Python]] (:if userlang pl:)(cz&#281;&#347;ciowy klon BNT, tylko zmienne dyskretne)(:if userlang en:) (partial clone of BNT, only discrete variables) (:if:)
Changed lines 27-28 from:
** [[http://bnj.sourceforge.net/ | Bayesian Network tools in Java (BNJ)]]
** [[http://www.norsys.com/ | Norsys Software Corp. '''Netica''']] (''the world's most widely used Bayesian network development software'')
to:
** [[http://bnj.sourceforge.net/ | Bayesian Network tools in Java (BNJ)]](:if userlang pl:) (problematyczny, nieaktywny)(:if userlang en:) (problematic, unmantained) (:if:)
** [[http://www.norsys.com/ | Norsys Software Corp.
'''Netica''']] (:if userlang pl:) (brak automatycznego wykrywania struktury, tylko uczenie parametr&#243;w)(:if userlang en:) (lacks structure learning, only learns parameters) (:if:)
Changed lines 31-46 from:
# Warunki oceny ma&#322;ych projekt&#243;w
## Za wersj&#281; podstawow&#261; mo&#380;na dosta&#263; maksymalnie 15 punkt&#243;w (za &#322;adny raport z do&#322;&#261;czonymi -- tzn. wys&#322;anymi mailem lub wskazanymi url-em -- &#378;r&#243;d&#322;ami w postaci wykorzystanych program&#243;w / skrypt&#243;w dla przeprowadzonych eksperyment&#243;w / danych).
## Wystarczy jedno rozszerzenie, aby uzyska
&#263; maksimum: 20 punkt&#243;w (ale nie dostaje si&#281; ich automatycznie za samo zrealizowanie wersji rozszerzonej). Niekt&#243;re rozszerzenia mog&#261; si&#281; okaza&#263; bardzo ma&#322;o czasoch&#322;onne w realizacji, nie ma konieczno&#347;ci ogranicza&#263; si&#281; do jednego ;-)
## Je&#347;li wkr&#281;cisz si&#281; w realizowanie rozszerze&#324;, dodatkowe rozszerzenia mog&#261; stanowi
&#263; tre&#347;&#263; du&#380;ego projektu (ko&#324;cowego).
## Wiele rozszerze&#324; ma dwa warianty: pogl
&#261;dowy "teoretyczny" (zaproponuj) i rzeczywisty (zaprogramuj). Na ma&#322;y projekt cz&#281;sto wystarczy wariant pogl&#261;dowy, na du&#380;y projekt wskazany jest wariant rzeczywisty.
## Warto przeczyta&#263; tre&#347;&#263; wszystkich wariant&#243;w projekt&#243;w.
## Patrz&#261;c na kryteria oceniania:
*** Trzeba zrobi&#263; dwa rozszerzone zadania i bez mankament&#243;w (20+20=40pkt), lub trzy podstawowe zadania (&#347;rednio 40/3=13pkt za zadanie -- wystarczy wersja podstawowa
) &#380;eby mie&#263; szans&#281; na pi&#261;tk&#281;. (40pkt za ma&#322;e projekty)
*** Trzeba zrobi
&#263; dwa podstawowe zadania bez mankament&#243;w (15+15=30pkt) lub trzy podstawowe niedopieszczone zadania (&#347;rednio 10pkt za zadanie) &#380;eby mie&#263; szans&#281; na cztery z plusem (30pkt za ma&#322;e projekty).
*** Trzeba zrobi&#263; dwa podstawowe niedopieszczone zadania (10+10=20pkt) lub jedno rozszerzone zadanie bez mankament&#243;w zeby mie&#263; szans&#281; na czw&#243;rk&#281;.
## Prosz&#281; nie czeka&#263; na ostatni&#261; chwil&#281;, bo pokazuj&#261;c wcze&#347;niej mo&#380;na ze mn&#261; negocjowa&#263; co znaczy "bez mankament&#243;w".
## Mo&#380;na te&#380; wynegocjowa&#263; uznanie wynik&#243;w cz&#281;&#347;ciowych z du&#380;ego projektu jako zadanie, je&#347;li b&#281;d&#261; zg&#322;oszone w odpowiednim terminie (ale wtedy punktacja za du&#380;y projekt b&#281;dzie mierzy&
#263; p&#243;&#378;niejszy wk&#322;ad pracy).
## Je
&#347;li zadanie ma kilka wariant&#243;w wersji podstawowej, to s&#261; one jednocze&#347;nie rozszerzeniami (tzn. realizuj&#261;c dwie wersje podstawowe robimy zadanie rozszerzone).
# Projekt z sieci przekona&#324;: warianty
## '''Data Mining'''. Znajd&#378; struktur&#281; sieci z danych wykorzystuj&#261;c jedno z poznanych narz&#281;dzi.
### Wersja podstawowa: odnajd&#378; w internecie zbi&#243;r danych dla interesuj&#261;cego i/lub zrozumia&#322;ego dla Ciebie zagadnienia. Zinterpretuj zale&#380;no&#347;ci w powsta&#322;ej sieci (m.in. popatrz na ich si&
#322;&#281;; popatrz czy zale&#380;no&#347;&#263; przyczynowa jest oczywista). Opisz kilka wynik&#243;w zapyta&#324; do sieci (tzn. rozk&#322;ad&#243;w prawdopodobie&#324;stw dla pewnych zmiennych przy ustalonych warto&#347;ciach pewnych spo&#347;r&#243;d pozosta&#322;ych zmiennych): czy s&#261; intuicyjne, czy zachodzi np. "explaining away" etc.
to:
# (:if userlang pl:)Warunki oceny ma&#322;ych projekt&#243;w(:if userlang en:)Rules for small projects scoring (:if:)
## (:if userlang pl:)Za wersj
&#281; podstawow&#261; mo&#380;na dosta&#263; maksymalnie 15 punkt&#243;w (za &#322;adny raport z do&#322;&#261;czonymi -- tzn. wys&#322;anymi mailem lub wskazanymi url-em -- &#378;r&#243;d&#322;ami w postaci wykorzystanych program&#243;w / skrypt&#243;w dla przeprowadzonych eksperyment&#243;w / danych).(:if userlang en:)For the basic version you can get at most 15 points (for a nice rapport with attached sources: programs, experiment scripts, datasets etc. -- sent by mail or pointed by url). (:if:)
## (:if userlang pl:)Wystarczy jedno rozszerzenie, aby uzyska
&#263; maksimum: 20 punkt&#243;w (ale nie dostaje si&#281; ich automatycznie za samo zrealizowanie wersji rozszerzonej). Niekt&#243;re rozszerzenia mog&#261; si&#281; okaza&#263; bardzo ma&#322;o czasoch&#322;onne w realizacji, nie ma konieczno&#347;ci ogranicza&#263; si&#281; do jednego ;-)(:if userlang en:)One extension is enough to score the maximum 20 points for a small project (the work needs to deserve it to score max, I'm not tough on it though). If you implement more extensions, the better.(:if:)
## (:if userlang pl:
)Je&#347;li wkr&#281;cisz si&#281; w realizowanie rozszerze&#324;, dodatkowe rozszerzenia mog&#261; stanowi&#263; tre&#347;&#263; du&#380;ego projektu (ko&#324;cowego). Wk&#322;ad pracy w du&#380;y projekt powinien by&#263; przynajmniej oko&#322;o trzykrotnie wi&#281;kszy ni&#380; w pojedy&#324;czy ma&#322;y projekt. (:if userlang en:)Additional extensions may serve as the large project. The work for the large project should be at least about three times the work for a small project (counting only what goes beyond what you have submitted as a small project).(:if:)
## (:if userlang pl:)Wiele rozszerze&#324; ma dwa warianty: pogl&#261;dowy "teoretyczny" (zaproponuj) i rzeczywisty (zaprogramuj). Na ma&#322;y projekt cz&#281;sto wystarczy wariant pogl&#261;dowy, na du&#380;y projekt wskazany jest wariant rzeczywisty.(:if userlang en:)Lots of proposed extensions come in two flavors: "theoretical" (propose an idea, a plan) and "practical" (code it down). For a small project, the theoretical variant is definitely enough; it might even suffice for the large project for some extensions.(:if:)
## (:if userlang pl:)Warto przeczyta&#263; tre&#347;&#263; wszystkich wariant&#243;w projekt&#243;w.(:if userlang en:)You may find it worthwhile to read all proposed variants of projects.(:if:)
## (:if userlang pl:)Patrz
&#261;c na kryteria oceniania:(:if userlang en:)Grading requirements:(:if:)
*** (:if userlang pl:)Trzeba zrobi&#263; dwa rozszerzone zadania i bez mankament&#243;w (20+20=40pkt), lub trzy podstawowe zadania (&#347;rednio 40/3=13pkt za zadanie -- wystarczy wersja podstawowa) &#380;eby mie&#263; szans&#281; na pi&#261;tk&#281;
. (40pkt za ma&#322;e projekty)(:if userlang en:)You need two small extended projects without considerable flaws (scoring the maximal 20 points each) or three basic projects (40/3=13 points each) to have chances for the 5.(:if:)
*** (:if userlang pl:)Trzeba zrobi&#263; dwa podstawowe zadania bez mankament&#243;w (15+15=30pkt) lub trzy podstawowe niedopieszczone zadania (&#347;rednio 10pkt za zadanie) &#380;eby mie&#263; szans&#281; na cztery z plusem (30pkt za ma&#322;e projekty).(:if userlang en:)You need two basic projects without considerable flaws (the maximal 15 points each) or three mediocre projects (30/3=10 points each) to have chances for the 4,5.(:if:)
*** (:if userlang pl:)Trzeba zrobi&#263; dwa podstawowe niedopieszczone zadania (10+10=20pkt) lub jedno rozszerzone zadanie bez mankament&#243;w zeby mie&#263; szans&#281; na czw&#243;rk&#281;.(:if userlang en:)You need two mediocre projects (2*10=20 points) or a single extended project without flaws to have chances for the 4,0.(:if:)
## (:if userlang pl:)Prosz&#281; nie czeka&#263; na ostatni&#261; chwil&#281;, bo pokazuj&#261;c wcze&#347;niej mo&#380;na ze mn&#261; negocjowa&#263; co znaczy "bez mankament&#243;w".(:if userlang en:)Don't wait until the last minute, you have more opportunities to score more points if you turn your projects earlier.(:if:)
## (:if userlang pl:)Mo&#380;na te&#380; wynegocjowa&#263; uznanie wynik&#243;w cz&#281;&#347;ciowych z du&#380;ego projektu jako zadanie, je&#347;li b&#281;d&#261; zg&#322;oszone w odpowiednim terminie (ale wtedy punktacja za du&#380;y projekt b&#281;dzie mierzy&#263; p&#243;&#378;niejszy wk&#322;ad pracy).(:if userlang en:)You can negotiate to turn in partial results for the large project as a small project. But then the large project is graded based on further work.(:if:)
## (:if userlang pl:)Je&#347;li zadanie ma kilka wariant&#243;w wersji podstawowej, to s&#261; one jednocze&#347;nie rozszerzeniami (tzn. realizuj&#261;c dwie wersje podstawowe robimy zadanie rozszerzone).(:if userlang en:)If a project has several basic variants, then they are also extensions -- when doing more than one basic variant, the other is counted as extension.(:if:)
# (:if userlang pl:)Projekt z sieci przekona&#324;: warianty(:if userlang en:)Belief networks project: variants (:if:)
## '''Data Mining'''. (:if userlang pl:)Znajd&#378; struktur&#281; sieci z danych wykorzystuj&#261;c jedno z poznanych narz&#281;dzi.(:if userlang en:)Find the structure of the network from data, using one of available tools.(:if:)
### (:if userlang pl:)Wersja podstawowa: odnajd&#378; w internecie zbi&#243;r danych dla interesuj&#261;cego i/lub zrozumia&#322;ego dla Ciebie zagadnienia. Zinterpretuj zale&#380;no&#347;ci w powsta&#322;ej sieci (m.in. popatrz na ich si&#322;&#281;; popatrz czy zale&#380;no&#347;&#263; przyczynowa jest oczywista). Opisz kilka wynik&#243;w zapyta&#324; do sieci (tzn. rozk&#322;ad&#243;w prawdopodobie&#324;stw dla pewnych zmiennych przy ustalonych warto&#347;ciach pewnych spo&#347;r&#243;d pozosta&#322;ych zmiennych): czy s&#261; intuicyjne, czy zachodzi np. "explaining away" etc.(:if userlang en:)Basic version: find in the internet a dataset for a subject that interests you and/or which you understand. Interpret the dependencies in the resulting net (like, look at their strength, do they imply causal dependency, is the causality obvious). Describe results of several queries to the network (that is, probability distributions for some variables with set values for some other variables): are they intuitive, is there some "explaining away", etc.(:if:)
Changed line 9 from:
(:if userlang en:)Pracownie i zadania:(:if userlang pl:)Labs and projects:(:if:)
to:
(:if userlang pl:)Pracownie i zadania:(:if userlang en:)Labs and projects:(:if:)
April 08, 2009, at 07:48 PM by lukstafi - lokalization
Changed lines 1-7 from:
Ciekawe nowo&#347;ci na stronie:
** zadania o grach
** [[http
://en.wikipedia.org/wiki/D*_search_algorithm | algorytm przeszukiwania D*]] (proste wprowadzenie do tematu z trzeciej pracowni)
** [[http
://www.youtube.com/watch?v=s9G7DRTuB5s | ''Case Based Reasoning'' for Game AI]] (Tech Talk wideo)


Pracownie i zadania
:
to:
(:selectlang:)

(:if userlang pl
:) Ciekawe nowo&#347;ci na stronie: (:if userlang en:) Interesting news on the page: (:if:)
** (:if userlang pl:) zadania o grach  (
:if userlang en:) projects about games (:if:)
** [[http://en.wikipedia.org/wiki/D*_search_algorithm | (:if userlang pl:) algorytm przeszukiwania D* (:if userlang en:) search algorithm D* (:if:) ]] (:if userlang pl:) (proste wprowadzenie do tematu z trzeciej pracowni) (:if userlang en:) (simple introduction to the theme of the third lab) (:if:)
** [[http://www.youtube.com/watch?v=s9G7DRTuB5s | ''Case Based Reasoning'' for Game AI]] (Tech Talk)


(:if userlang en:)Pracownie i zadania:(:if userlang pl:)Labs and projects:(:if:)
April 07, 2009, at 08:28 PM by lukstafi - CBR for game AI
Changed lines 4-6 from:
to:
** [[http://www.youtube.com/watch?v=s9G7DRTuB5s | ''Case Based Reasoning'' for Game AI]] (Tech Talk wideo)

Changed line 112 from:
to:
** [[http://www.youtube.com/watch?v=s9G7DRTuB5s | ''Case Based Reasoning'' for Game AI]]
April 07, 2009, at 12:57 AM by lukstafi - gry heurystyki
Changed lines 1-3 from:
Ciekawe nowo&#347;ci na stronie: zadania o grach.

to:
Ciekawe nowo&#347;ci na stronie:
** zadania o grach
** [[http://en.wikipedia.org/wiki/D*_search_algorithm | algorytm przeszukiwania D*]] (proste wprowadzenie do tematu z trzeciej pracowni)

Pracownie i zadania:
Added line 62:
** [[http://en.wikipedia.org/wiki/D*_search_algorithm | algorytm przeszukiwania D*]]
Changed lines 94-98 from:
### Wersja podstawowa wariant ''(b)'': zaproponuj modyfikacj&#281; algorytmu alfa-beta odci&#281;&#263; tak, aby przerywa&#322; obliczenia w momencie wyczerpania si&#281; czasu zegarowego przeznaczonego na ruch, zwracaj&#261;c najlepszy ruch wedle dokonanych oblicze&#324;, i jednocze&#347;nie wykorzystywa&#322; ten czas w mo&#380;liwie rozs&#261;dny spos&#243;b (tzn. na tyle rozs&#261;dny na ile Ci wyjdzie...)
### Rozszerzenie 2: zaimplementuj modyfikacj
&#281; z wariantu ''(b)''.
### Rozszerzenie 3: zaproponuj / zaprogramuj modyfikacj
&#281; algorytmu alfa-beta odci&#281;&#263; tak, aby dzia&#322;a&#322; w ramach czasu zegarowego przeznaczonego mu na ca&#322;&#261; gr&#281;. Je&#347;li suma czas&#243;w zu&#380;ytych na podj&#281;cie ruch&#243;w przez gracza przekroczy ten czas, gracz przegrywa. Mo&#380;esz dla uproszczenia uzna&#263;, &#380;e algorytm my&#347;li tylko w czasie podejmowania przez siebie ruchu. Algorytm ma do dyspozycji czasy wykorzystane przez przeciwnika, graj&#261;cego z tym samym limitem. Mo&#380;liwie rozs&#261;dnie wyznacz ilo&#347;&#263; oblicze&#324;/czasy na poszczeg&#243;lne ruchy.
### Rozszerzenie 4: zmodyfikuj wariant ''(a)'', zaprogramuj wsp&#243;&#322;bie&#380;ne/r&#243;wnoleg&#322;e asynchroniczne dzia&#322;anie algorytm&#243;w. Tzn. ka&#380;dy gracz mo&#380;e wykona&#263; kilka ruch&#243;w pod rz&#261;d, je&#347;li drugi gracz nie zd&#261;&#380;y wykona&#263; ruchu w mi&#281;dzyczasie. Regu&#322;y twojej gry musz&#261; da&#263; si&#281; jako&#347; zinterpretowa&#263; w takiej sytuacji. Gdy gracze doprowadz&#261; do jakiego&#347; rodzaju stagnacji, to mog&#261; postulowa&#263; remis.
### Rozszerzenie 5
: zaproponuj / zaprogramuj rozs&#261;dny spos&#243;b dysponowania czasem w sytuacji z rozrzerzenia 4, np. przetestuj r&#243;&#380;ne strategie.
to:
### Wersja podstawowa wariant ''(b)'': zaprogramuj modyfikacj&#281; algorytmu alfa-beta odci&#281;&#263; tak, aby przerywa&#322; obliczenia w momencie wyczerpania si&#281; czasu zegarowego przeznaczonego na ruch, zwracaj&#261;c najlepszy ruch wedle dokonanych oblicze&#324;. Wykorzystaj np. iteracyjne pog&#322;&#281;bianie.
### Rozszerzenie 2: zaproponuj / zaprogramuj
(np.) modyfikacj&#281; algorytmu alfa-beta odci&#281;&#263; tak, aby dzia&#322;a&#322; w ramach czasu zegarowego przeznaczonego mu na ca&#322;&#261; gr&#281;. Je&#347;li suma czas&#243;w zu&#380;ytych na podj&#281;cie ruch&#243;w przez gracza przekroczy ten czas, gracz przegrywa. Mo&#380;esz dla uproszczenia uzna&#263;, &#380;e algorytm my&#347;li tylko w czasie podejmowania przez siebie ruchu. Algorytm ma do dyspozycji czasy wykorzystane przez przeciwnika, graj&#261;cego z tym samym limitem. Mo&#380;liwie rozs&#261;dnie wyznacz ilo&#347;&#263; oblicze&#324;/czasy na poszczeg&#243;lne ruchy (mo&#380;esz eksperymentowa&#263;).
### Rozszerzenie 3: zmodyfikuj wariant ''(a)'', zaprogramuj wsp&#243;&#322;bie&#380;ne/r&#243;wnoleg&#322;e asynchroniczne dzia&#322;anie algorytm&#243;w. Tzn. ka&#380;dy gracz mo&#380;e wykona&#263; kilka ruch&#243;w pod rz&#261;d, je&#347;li drugi gracz nie zd&#261;&#380;y wykona&#263; ruchu w mi&#281;dzyczasie. Regu&#322;y twojej gry musz&#261; da&#263; si&#281; jako&#347; zinterpretowa&#263; w takiej sytuacji. Gdy gracze doprowadz&#261; do jakiego&#347; rodzaju stagnacji, to mog&#261; postulowa&#263; remis.
### Rozszerzenie 4: zaproponuj / zaprogramuj rozs&#261;dny spos&#243;b dysponowania czasem w sytuacji z rozrzerzenia 4, np. przetestuj r&#243;&#380;ne strategie.
Changed line 99 from:
### Wersja podstawowa wariant ''(a)'': Uruchom system GGP: serwer gier i klient&#243;w (wykorzystaj dost&#281;pnych gotowych graczy).
to:
### Wersja podstawowa wariant ''(a)'': Uruchom system GGP: serwer gier i klient&#243;w (wykorzystaj dost&#281;pnego gotowego gracza).
Added lines 101-110:
# Pracownia z gier 2: udoskonalenia i heurystyki
** [[http://en.wikipedia.org/wiki/Alpha-beta_pruning#Heuristic_improvements | Alfa-beta: udoskonalenia]]
** [[http://en.wikipedia.org/wiki/Quiescence_search | Quiescence search]]
** [[http://en.wikipedia.org/wiki/Transposition_table | Transposition table]] albo tzw. [[http://www.cs.ualberta.ca/~sutton/book/ebook/node68.html | afterstates]]
** [[http://en.wikipedia.org/wiki/Null-move_heuristic | Null-move heuristic]]
** [[http://en.wikipedia.org/wiki/Expectiminimax | Gry losowe -- expecti(mini)max]]
** [[http://www.math.uaa.alaska.edu/~afkjm/papers/empsearch.pdf | Hierarchical Heuristic Search Techniques for Empire-Based Games]] (Kenrick Mock)
** [[http://www.personeel.unimaas.nl/m-winands/documents/informed_search.pdf | Informed Search in Complex Games]] (by Mark Winands)
** [[Attach:AGI/GGP.pdf | General Game Playing]]

April 04, 2009, at 05:04 PM by lukstafi - GGP
Changed lines 1-3 from:
Ciekawe nowo&#347;ci na stronie:

to:
Ciekawe nowo&#347;ci na stronie: zadania o grach.

Added lines 96-98:
## '''General Game Playing'''. To zadanie nie jest przypisane konkretnemu zestawowi zada&#324;, bo obejmuje szerszy zakres materia&#322;u z wyk&#322;adu. Mo&#380;na je odda&#263; w terminie dowolnego zestawu zada&#324;.
### Wersja podstawowa wariant ''(a)'': Uruchom system GGP: serwer gier i klient&#243;w (wykorzystaj dost&#281;pnych gotowych graczy).
### Wersja podstawowa wariant ''(b)'': Sformalizuj by&#263; mo&#380;e uproszczon&#261; wersj&#281; jednej ze swoich ulubionych gier komputerowych (!) w ''Game Description Language''.
April 04, 2009, at 04:56 PM by lukstafi - gry z czasem
Added line 37:
## Je&#347;li zadanie ma kilka wariant&#243;w wersji podstawowej, to s&#261; one jednocze&#347;nie rozszerzeniami (tzn. realizuj&#261;c dwie wersje podstawowe robimy zadanie rozszerzone).
Changed lines 89-95 from:
## '''Gry''' dodam p&#243;&#378;niej.
to:
## '''Gry z limitem czasowym'''. '''Gry w czasie rzeczywistym'''.
### Wersja podstawowa wariant ''(a)'': zaimplementuj lub zmodyfikuj istniej&#261;cy program-gr&#281; dwuosobow&#261;, tak aby pozwala&#322; na gr&#281; dw&#243;ch r&#243;&#380;nych algorytm&#243;w przeciw sobie (mo&#380;e to by&#263; ten sam algorytm ale z r&#243;&#380;nymi parametrami).
### Wersja podstawowa wariant ''(b)'': zaproponuj modyfikacj&#281; algorytmu alfa-beta odci&#281;&#263; tak, aby przerywa&#322; obliczenia w momencie wyczerpania si&#281; czasu zegarowego przeznaczonego na ruch, zwracaj&#261;c najlepszy ruch wedle dokonanych oblicze&#324;, i jednocze&#347;nie wykorzystywa&#322; ten czas w mo&#380;liwie rozs&#261;dny spos&#243;b (tzn. na tyle rozs&#261;dny na ile Ci wyjdzie...)
### Rozszerzenie 2: zaimplementuj modyfikacj&#281; z wariantu ''(b)''.
### Rozszerzenie 3: zaproponuj / zaprogramuj modyfikacj&#281; algorytmu alfa-beta odci&#281;&#263; tak, aby dzia&#322;a&#322; w ramach czasu zegarowego przeznaczonego mu na ca&#322;&#261; gr&#281;. Je&#347;li suma czas&#243;w zu&#380;ytych na podj&#281;cie ruch&#243;w przez gracza przekroczy ten czas, gracz przegrywa. Mo&#380;esz dla uproszczenia uzna&#263;, &#380;e algorytm my&#347;li tylko w czasie podejmowania przez siebie ruchu. Algorytm ma do dyspozycji czasy wykorzystane przez przeciwnika, graj&#261;cego z tym samym limitem. Mo&#380;liwie rozs&#261;dnie wyznacz ilo&#347;&#263; oblicze&#324;/czasy na poszczeg&#243;lne ruchy.
### Rozszerzenie 4: zmodyfikuj wariant ''(a)'', zaprogramuj wsp&#243;&#322;bie&#380;ne/r&#243;wnoleg&#322;e asynchroniczne dzia&#322;anie algorytm&#243;w. Tzn. ka&#380;dy gracz mo&#380;e wykona&#263; kilka ruch&#243;w pod rz&#261;d, je&#347;li drugi gracz nie zd&#261;&#380;y wykona&#263; ruchu w mi&#281;dzyczasie. Regu&#322;y twojej gry musz&#261; da&#263; si&#281; jako&#347; zinterpretowa&#263; w takiej sytuacji. Gdy gracze doprowadz&#261; do jakiego&#347; rodzaju stagnacji, to mog&#261; postulowa&#263; remis.
### Rozszerzenie 5: zaproponuj / zaprogramuj rozs&#261;dny spos&#243;b dysponowania czasem w sytuacji z rozrzerzenia 4, np. przetestuj r&#243;&#380;ne strategie
.
Changed line 54 from:
### Rozszerzenie 2: zaproponuj / zaprogramuj mechanizm uaktualniania modelu w czasie rozrywki lub po kilku rozgrywkach.
to:
### Rozszerzenie 2: zaproponuj / zaprogramuj mechanizm uaktualniania modelu w czasie rozgrywki lub po kilku rozgrywkach.
Changed line 31 from:
## Patrz&#261;c na kryteria punktacji:
to:
## Patrz&#261;c na kryteria oceniania:
April 04, 2009, at 03:03 PM by lukstafi - kryteria oceny
Added lines 31-36:
## Patrz&#261;c na kryteria punktacji:
*** Trzeba zrobi&#263; dwa rozszerzone zadania i bez mankament&#243;w (20+20=40pkt), lub trzy podstawowe zadania (&#347;rednio 40/3=13pkt za zadanie -- wystarczy wersja podstawowa) &#380;eby mie&#263; szans&#281; na pi&#261;tk&#281;. (40pkt za ma&#322;e projekty)
*** Trzeba zrobi&#263; dwa podstawowe zadania bez mankament&#243;w (15+15=30pkt) lub trzy podstawowe niedopieszczone zadania (&#347;rednio 10pkt za zadanie) &#380;eby mie&#263; szans&#281; na cztery z plusem (30pkt za ma&#322;e projekty).
*** Trzeba zrobi&#263; dwa podstawowe niedopieszczone zadania (10+10=20pkt) lub jedno rozszerzone zadanie bez mankament&#243;w zeby mie&#263; szans&#281; na czw&#243;rk&#281;.
## Prosz&#281; nie czeka&#263; na ostatni&#261; chwil&#281;, bo pokazuj&#261;c wcze&#347;niej mo&#380;na ze mn&#261; negocjowa&#263; co znaczy "bez mankament&#243;w".
## Mo&#380;na te&#380; wynegocjowa&#263; uznanie wynik&#243;w cz&#281;&#347;ciowych z du&#380;ego projektu jako zadanie, je&#347;li b&#281;d&#261; zg&#322;oszone w odpowiednim terminie (ale wtedy punktacja za du&#380;y projekt b&#281;dzie mierzy&#263; p&#243;&#378;niejszy wk&#322;ad pracy).
Deleted line 58:
*** [[Warcaby]]
Changed line 73 from:
### Rozszerzenie 1 -- '''strategia a taktyka''': podziel rozwi&#261;zywaczk&#281; na dwa poziomy. Na poziomie strategicznym, algorytm A* szuka rozwi&#261;zania w przestrzeni stan&#243;w taktycznie istotnych, gdzie pojedyncza akcja wymaga wielu krok&#243;w magazyniarza (w szczeg&#243;lno&#347;ci, dok&#322;adne po&#322;o&#380;enie magazyniarza jest nieistotne, istotne s&#261; pozycje osi&#261;galne przez magazyniarza). Na poziomie taktycznym, zaprogramuj mechanizm znajdowania konfiguracji taktycznie istotnych osi&#261;galnych z bie&#380;&#261;cej konfiguracji. Poziom taktyczny powinien zwraca&#263; zbi&#243;r akcji-taktyk: konfiguracja wynikowa (dla poziomu strategicznego), faktyczne ruchy magazyniarza do wykonania (dla systemu gry). Przyk&#322;ad: @@#@@ to &#347;ciana, @@*@@ to beczka, tylko kra&#324;cowe pozycje s&#261; istotne:[@
to:
### Rozszerzenie 1 -- '''strategia a taktyka''': podziel rozwi&#261;zywaczk&#281; na dwa poziomy. Na poziomie strategicznym, algorytm A* szuka rozwi&#261;zania w przestrzeni stan&#243;w taktycznie istotnych, gdzie pojedyncza akcja wymaga wielu krok&#243;w magazyniarza (w szczeg&#243;lno&#347;ci, dok&#322;adne po&#322;o&#380;enie magazyniarza jest nieistotne, istotne s&#261; pozycje osi&#261;galne przez magazyniarza). Na poziomie taktycznym, zaprogramuj mechanizm znajdowania konfiguracji taktycznie istotnych osi&#261;galnych z bie&#380;&#261;cej konfiguracji. Poziom taktyczny powinien zwraca&#263; zbi&#243;r akcji-taktyk: konfiguracja wynikowa (dla poziomu strategicznego), faktyczne ruchy magazyniarza do wykonania (dla systemu gry). Przyk&#322;ad: @@#@@ to &#347;ciana, @@*@@ to skrzynia, tylko kra&#324;cowe pozycje s&#261; istotne:[@
Changed line 79 from:
### Rozszerzenie 3: Nie proponuj poziomowi strategicznemu martwych konfiguracji w rodzaju zablokowanych beczek:[@
to:
### Rozszerzenie 3: Nie proponuj poziomowi strategicznemu martwych konfiguracji w rodzaju zablokowanych skrzy&#324;:[@
Changed line 81 from:
###      #@] Wykrywaj martwe konfiguracje og&#243;lnym mechanizmem a nie przez r&#281;czne zakodowanie szczeg&#243;lnych przypadk&#243;w: np. przy pomocy wi&#281;z&#243;w, albo algorytmu A* odpalonego na istotnym dla danej beczki fragmencie konfiguracji, &#380;eby sprawdzi&#263; czy da si&#281; j&#261; ruszy&#263;.
to:
###      #@] Wykrywaj martwe konfiguracje og&#243;lnym mechanizmem a nie przez r&#281;czne zakodowanie szczeg&#243;lnych przypadk&#243;w: np. przy pomocy wi&#281;z&#243;w, albo algorytmu A* odpalonego na istotnym dla danej skrzyni fragmencie konfiguracji, &#380;eby sprawdzi&#263; czy da si&#281; j&#261; ruszy&#263;.
March 31, 2009, at 07:47 AM by lukstafi - warcaby
Added line 59:
*** [[Warcaby]]
Changed line 73 from:
### Rozszerzenie 1 -- '''strategia a taktyka''': podziel rozwi&#261;zywaczk&#281; na dwa poziomy. Na poziomie strategicznym, algorytm A* szuka rozwi&#261;zania w przestrzeni stan&#243;w taktycznie istotnych, gdzie pojedyncza akcja wymaga wielu krok&#243;w magazyniarza (w szczeg&#243;lno&#347;ci, dok&#322;adne po&#322;o&#380;enie magazyniarza jest nieistotne, istotne s&#261; pozycje osi&#261;galne przez magazyniarza). Na poziomie taktycznym, zaprogramuj mechanizm znajdowania konfiguracji taktycznie istotnych osi&#261;galnych z bie&#380;&#261;cej konfiguracji. Poziom taktyczny powinien zwraca&#263; akcj&#281;-taktyk&#281;: faktyczne ruchy magazyniarza do wykonania w grze. Przyk&#322;ad: @@#@@ to &#347;ciana, @@*@@ to beczka, tylko kra&#324;cowe pozycje s&#261; istotne:[@
to:
### Rozszerzenie 1 -- '''strategia a taktyka''': podziel rozwi&#261;zywaczk&#281; na dwa poziomy. Na poziomie strategicznym, algorytm A* szuka rozwi&#261;zania w przestrzeni stan&#243;w taktycznie istotnych, gdzie pojedyncza akcja wymaga wielu krok&#243;w magazyniarza (w szczeg&#243;lno&#347;ci, dok&#322;adne po&#322;o&#380;enie magazyniarza jest nieistotne, istotne s&#261; pozycje osi&#261;galne przez magazyniarza). Na poziomie taktycznym, zaprogramuj mechanizm znajdowania konfiguracji taktycznie istotnych osi&#261;galnych z bie&#380;&#261;cej konfiguracji. Poziom taktyczny powinien zwraca&#263; zbi&#243;r akcji-taktyk: konfiguracja wynikowa (dla poziomu strategicznego), faktyczne ruchy magazyniarza do wykonania (dla systemu gry). Przyk&#322;ad: @@#@@ to &#347;ciana, @@*@@ to beczka, tylko kra&#324;cowe pozycje s&#261; istotne:[@
March 31, 2009, at 05:45 AM by lukstafi - sokoban
Changed line 68 from:
## '''Konstrukcja heurystyk''': rozwi&#261;&#380; przy pomocy algorytmu A* jedn&#261; z [[http://www.ii.uni.wroc.pl/~prych/SI/puzzle/ | &#322;amig&#322;&#243;wek z budapeszta&#324;skich mistrzostw]].
to:
## '''Konstrukcja heurystyk''': rozwi&#261;&#380; (napisz rozwi&#261;zywaczk&#281;) przy pomocy algorytmu A* jedn&#261; z [[http://www.ii.uni.wroc.pl/~prych/SI/puzzle/ | &#322;amig&#322;&#243;wek z budapeszta&#324;skich mistrzostw]].
Changed lines 71-81 from:
### Rozszerzenie 2: ''najpierw'' rozwi&#261;&#380; &#322;amig&#322;&#243;wk&#281; algorytmicznie, a nast&#281;pnie algorytmem A*. W jaki spos&#243;b przekszta&#322;ci&#322;e&#347; algorytm rozwi&#261;zywania problemu w heurystyk&#281;?
to:
### Rozszerzenie 2: ''najpierw'' rozwi&#261;&#380; &#322;amig&#322;&#243;wk&#281; algorytmicznie (wariant ''a'') lub wi&#281;zami (wariant ''b''), a nast&#281;pnie algorytmem A*. W jaki spos&#243;b przekszta&#322;ci&#322;e&#347; algorytm rozwi&#261;zywania problemu w heurystyk&#281;?
## '''Sokoban''': rozwi&#261;&#380; (napisz rozwi&#261;zywaczk&#281;) przy pomocy algorytmu A* gr&#281; logiczn&#261; Sokoban.
### Rozszerzenie 1 -- '''strategia a taktyka''': podziel rozwi&#261;zywaczk&#281; na dwa poziomy. Na poziomie strategicznym, algorytm A* szuka rozwi&#261;zania w przestrzeni stan&#243;w taktycznie istotnych, gdzie pojedyncza akcja wymaga wielu krok&#243;w magazyniarza (w szczeg&#243;lno&#347;ci, dok&#322;adne po&#322;o&#380;enie magazyniarza jest nieistotne, istotne s&#261; pozycje osi&#261;galne przez magazyniarza). Na poziomie taktycznym, zaprogramuj mechanizm znajdowania konfiguracji taktycznie istotnych osi&#261;galnych z bie&#380;&#261;cej konfiguracji. Poziom taktyczny powinien zwraca&#263; akcj&#281;-taktyk&#281;: faktyczne ruchy magazyniarza do wykonania w grze. Przyk&#322;ad: @@#@@ to &#347;ciana, @@*@@ to beczka, tylko kra&#324;cowe pozycje s&#261; istotne:[@
#*#    # #    # #    # #
# #    #*#    # #    # #
# #    # #    #*#    # #
# #    # #    # #    #*#@]
### Rozszerzenie 2: wykorzystaj programowanie wi&#281;z&#243;w w implementacji pozmiomu taktycznego.
### Rozszerzenie 3: Nie proponuj poziomowi strategicznemu martwych konfiguracji w rodzaju zablokowanych beczek:[@
**      #*
###      #@] Wykrywaj martwe konfiguracje og&#243;lnym mechanizmem a nie przez r&#281;czne zakodowanie szczeg&#243;lnych przypadk&#243;w: np. przy pomocy wi&#281;z&#243;w, albo algorytmu A* odpalonego na istotnym dla danej beczki fragmencie konfiguracji, &#380;eby sprawdzi&#263; czy da si&#281; j&#261; ruszy&#263;.
March 31, 2009, at 02:30 AM by lukstafi - Gosix
Deleted line 54:
** [[http://www.ps.uni-sb.de/Papers/abstracts/tackDiss.html | Constraint Propagation -- Models, Techniques, Implementation]] (Guido Tack)
Added lines 56-59:
*** [[http://www.gecode.org/doc-latest/modeling.pdf | Modeling with Gecode]]
*** [[http://www.ps.uni-sb.de/Papers/abstracts/tackDiss.html | Constraint Propagation -- Models, Techniques, Implementation]] (Guido Tack)
** [[http://donyc.pop.e-wro.pl/checkers/ | aplet z warcabami]]
** [[http://sourceforge.net/projects/minigosix/ | Mini Gosix (autor: Tautrimas Pajarskas)]] (gra planszowa Gosix stworzona przez: Pierre Canuel)
March 30, 2009, at 07:31 PM by lukstafi - dynamiczna arena
Changed lines 2-6 from:
* [[http://ai.stanford.edu/~paskin/gm-short-course/ | A Short Course on Graphical Models]] (Mark A. Paskin)
* [[http://www.norsys.com/netlibrary/index.htm | Bayes  Net Library]]
* [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]


to:

Changed line 58 from:
## '''Znajdowanie &#347;cie&#380;ki w dynamicznym &#347;rodowisku''': zaprogramuj agenta przechodz&#261;cego z punktu startowego do punktu docelowego w sytuacji, gdy mapa kt&#243;r&#261; dysponuje nie odpowiada dok&#322;adnie rzeczywisto&#347;ci.
to:
## '''Znajdowanie &#347;cie&#380;ki w dynamicznym &#347;rodowisku''': zaprogramuj agenta przechodz&#261;cego z punktu startowego do punktu docelowego w sytuacji, gdy mapa kt&#243;r&#261; dysponuje nie odpowiada dok&#322;adnie rzeczywisto&#347;ci, albo rzeczywisto&#347;&#263; jest zmienna.
Added line 60:
**** Alternatywnie, agent dysponuje pe&#322;n&#261; informacj&#261; o arenie, ale na arenie pojawiaj&#261; si&#281; nowe przeszkody w przypadkowych miejscach i momentach.
Added line 64:
**** Alternatywnie, agent dysponuje pe&#322;n&#261; informacj&#261; o arenie, ale arena mo&#380;e si&#281; w ka&#380;dej chwili "nieznacznie" zmieni&#263;.
March 30, 2009, at 01:20 PM by lukstafi - wiezy
Added lines 57-59:
# Pracownia z wi&#281;z&#243;w i z gier
** [[http://www.ps.uni-sb.de/Papers/abstracts/tackDiss.html | Constraint Propagation -- Models, Techniques, Implementation]] (Guido Tack)
** [[http://www.gecode.org/ | generic constraint development environment -- Gecode]]
Changed line 62 from:
### Rozszerzenie 3: uwzgl&#281;dnij mo&#380;liwo&#347;&#263; wyst&#281;powania na arenie "okazji": kom&#243;rek osi&#261;galnych, kt&#243;re nie by&#322;y osi&#261;galne na mapie. Sugerowane algorytmy: "Lifelong Planning A*", "D*".
to:
### Rozszerzenie 3: uwzgl&#281;dnij mo&#380;liwo&#347;&#263; wyst&#281;powania na arenie "okazji": kom&#243;rek osi&#261;galnych, kt&#243;re nie by&#322;y osi&#261;galne na mapie. Sugerowane algorytmy: "Lifelong Planning A*", "D* Lite".
March 26, 2009, at 01:51 AM by lukstafi - sklejone notatki
Changed lines 56-58 from:
** "extras": Wariacje na temat A*
*** [[Attach:RL_Ch4_Real_time_search.pdf | Real Time Search and Dynamic Programming]] podrozdzia&#322; "Deterministic Search"
*** [[Attach:AGI/GGP.pdf | General Game Playing
]] pocz&#261;tek rozdzia&#322;u "Search and Planning"
to:
** [[Attach:SearchDynamic.pdf | Przeszukiwanie A* w dynamicznym &#347;rodowisku]]
Changed line 66 from:
### Wersja podstawowa: [[Pawe&#322; Rychlikowski sugeruje ''Hiroimono'' lub ''Divide into Squares'']].
to:
### Wersja podstawowa: [[http://www.ii.uni.wroc.pl/~prych/SI/wstepne.html | Pawe&#322; Rychlikowski sugeruje ''Hiroimono'' lub ''Divide into Squares'']].
March 25, 2009, at 05:27 PM by lukstafi - przeszukiwanie 2
Changed lines 64-65 from:
### Rozszerzenie 3: uwzgl&#281;dnij mo&#380;liwo&#347;&#263; pojawienia si&#281; na arenie "okazji": kom&#243;rek osi&#261;galnych, kt&#243;re nie by&#322;y osi&#261;galne na mapie. Sugerowane algorytmy: "Lifelong Planning A*", "D*".
##
to:
### Rozszerzenie 3: uwzgl&#281;dnij mo&#380;liwo&#347;&#263; wyst&#281;powania na arenie "okazji": kom&#243;rek osi&#261;galnych, kt&#243;re nie by&#322;y osi&#261;galne na mapie. Sugerowane algorytmy: "Lifelong Planning A*", "D*".
## '''Konstrukcja heurystyk''': rozwi&#261;&#380; przy pomocy algorytmu A* jedn&#261; z [[http://www.ii.uni.wroc.pl/~prych/SI/puzzle/ | &#322;amig&#322;&#243;wek z budapeszta&#324;skich mistrzostw]].
### Wersja podstawowa: [[Pawe&#322; Rychlikowski sugeruje ''Hiroimono'' lub ''Divide into Squares'']].
### Rozszerzenie 1: rozwi&#261;&#380; inn&#261; spo&#347;r&#243;d &#322;amig&#322;&#243;wek. Por&#243;wnaj opracowane przez ciebie heurystyki: jakie idee maj&#261; wsp&#243;lne, a co jest w nich specyficzne dla zadania?
### Rozszerzenie 2: ''najpierw'' rozwi&#261;&#380; &#322;amig&#322;&#243;wk&#281; algorytmicznie, a nast&#281;pnie algorytmem A*. W jaki spos&#243;b przekszta&#322;ci&#322;e&#347; algorytm rozwi&#261;zywania problemu w heurystyk&#281;?
## '''Gry''' dodam p&#243;&#378;niej.
March 25, 2009, at 04:37 PM by lukstafi - przeszukiwanie 1
Added lines 59-65:
# Projekt z przeszukiwania heurystycznego i gier: warianty
## '''Znajdowanie &#347;cie&#380;ki w dynamicznym &#347;rodowisku''': zaprogramuj agenta przechodz&#261;cego z punktu startowego do punktu docelowego w sytuacji, gdy mapa kt&#243;r&#261; dysponuje nie odpowiada dok&#322;adnie rzeczywisto&#347;ci.
### Wersja podstawowa: mamy sytuacj&#281; podobn&#261; do rozpatrywanej na pracowni: szukamy &#347;cie&#380;ki na dwuwymiarowej arenie. Jednak mamy do dyspozycji dwie mapy: ''map&#281;'', kt&#243;ra jest w pe&#322;ni dost&#281;pna algorytmowi, oraz ''aren&#281;'', kt&#243;r&#261; b&#281;dziemy udost&#281;pnia&#263; algorytmowi tylko dla kom&#243;rek s&#261;siaduj&#261;cych z zajmowan&#261; przez agenta (mo&#380;esz udost&#281;pni&#263; bezpo&#347;rednio s&#261;siaduj&#261;ce b&#261;d&#378; s&#261;siaduj&#261;ce w ustalonym promieniu); algorytm oczywi&#347;cie powinien zapami&#281;tywa&#263; potrzebn&#261; informacj&#281;. Za&#322;&#243;&#380;my wst&#281;pnie, &#380;e mapa nie ma fa&#322;szywych przeszk&#243;d. Zaprowad&#378; agenta do celu minimalizuj&#261;c, w kolejno&#347;ci istotno&#347;ci: ilo&#347;&#263; rzeczywi&#347;cie podj&#281;tych przez agenta krok&#243;w, z&#322;o&#380;ono&#347;&#263; oblicze&#324; wykonywanych podczas ruchu agenta, z&#322;o&#380;ono&#347;&#263; oblicze&#324; wst&#281;pnych. Sugerowane algorytmy: "Adaptive A*", "Real-Time Adaptive A*", "Prioritorized Learning Real-Time A*".
### Rozszerzenie 1: je&#347;li w wersji podstawowej udost&#281;pnia&#322;e&#347; algorytmowi jedynie kom&#243;rki areny bezpo&#347;rednio s&#261;siaduj&#261;ce z agentem, to teraz rozszerz "pole widzenia" do wi&#281;kszego promienia. Wariant ''(1a)'': wprowad&#378; "zawodno&#347;&#263; obserwacji": specjalne kom&#243;rki, kt&#243;re z s&#261;siedztwa wygl&#261;daj&#261; na osi&#261;galne, ale akcja wkroczenia na nie okazuje si&#281; niewykonalna. Wariant ''(1b)'': wprowad&#378; zmienny cel: na arenie cel mo&#380;e okaza&#263; si&#281; w innym miejscu, ni&#380; by&#322; na mapie (agent musi zaobserwowa&#263; kom&#243;rk&#281; prawdziwego celu, &#380;eby si&#281; przekona&#263;) -- jednak zwykle niedaleko od celu z mapy.
#### Rozszerzenie 2: wolno przemieszczaj&#261;cy si&#281; cel: po zbli&#380;eniu si&#281; agenta do celu, ten zaczyna ucieka&#263;.
### Rozszerzenie 3: uwzgl&#281;dnij mo&#380;liwo&#347;&#263; pojawienia si&#281; na arenie "okazji": kom&#243;rek osi&#261;galnych, kt&#243;re nie by&#322;y osi&#261;galne na mapie. Sugerowane algorytmy: "Lifelong Planning A*", "D*".
##
Changed line 57 from:
*** [[Attach:RL_Ch4_Real_time_search.pdf | Real Time Search and Dynamic Programming]]
to:
*** [[Attach:RL_Ch4_Real_time_search.pdf | Real Time Search and Dynamic Programming]] podrozdzia&#322; "Deterministic Search"
Changed line 58 from:
*** [[Attach:GGP/GGP.pdf | General Game Playing]] pocz&#261;tek rozdzia&#322;u "Search and Planning"
to:
*** [[Attach:AGI/GGP.pdf | General Game Playing]] pocz&#261;tek rozdzia&#322;u "Search and Planning"
Added lines 54-58:
# Pracownia z przeszukiwania w przestrzeni stan&#243;w
** [[http://donyc.pop.e-wro.pl/astar/ | Przeszukiwanie labirynt&#243;w algorytmem A*]]
** "extras": Wariacje na temat A*
*** [[Attach:RL_Ch4_Real_time_search.pdf | Real Time Search and Dynamic Programming]]
*** [[Attach:GGP/GGP.pdf | General Game Playing]] pocz&#261;tek rozdzia&#322;u "Search and Planning"
Changed line 42 from:
### Rozszerzenie 1: skonstruuj sie&#263; przeprowadzaj&#261;c wywiad z osob&#261;, kt&#243;ra zna si&#281; na analizowanym zagadnieniu (wariant ''(c)''). Osoba ta nie mo&#380;e by&#263; koleg&#261; (kole&#380;ank&#261;) z naszego przedmiotu; dobrze, je&#347;li wog&#243;le nie jest studentem b&#261;d&#378; absolwentem informatyki lub matematyki. (Cz&#281;&#347;ci&#261; zadania jest nam&#243;wienie kogo&#347;, by nam pom&#243;g&#322;.)
to:
### Rozszerzenie 1: skonstruuj sie&#263; przeprowadzaj&#261;c wywiad z osob&#261;, kt&#243;ra zna si&#281; na analizowanym zagadnieniu (wariant ''(c)''). Osoba ta nie mo&#380;e by&#263; koleg&#261; (kole&#380;ank&#261;) z naszego przedmiotu; dobrze, je&#347;li wog&#243;le nie jest studentem b&#261;d&#378; absolwentem informatyki lub matematyki. (Cz&#281;&#347;ci&#261; zadania jest nam&#243;wienie kogo&#347;, by nam pom&#243;g&#322;.) W raporcie zamie&#347;&#263; transkrypcj&#281; fragmentu wywiadu.
Changed line 37 from:
### Rozszerzenie 1: samodzielnie zgromad&#378; dane. Mo&#380;esz np. podpi&#261;&#263; si&#281; do jakiej&#347; aplikacji i przeprowadzi&#263; logowanie jej parametr&#243;w. Mo&#380;esz skonstruowa&#263; model deterministyczny jakiego&#347; zjawiska (tylko zmienne wej&#347;ciowe b&#281;d&#261; losowane), ale cz&#281;&#347;&#263; zmiennych wej&#347;ciowych pozostawi&#263; ukrytych przed modelowaniem statystycznym (co spowoduje, &#380;e cz&#281;&#347;&#263; z pozosta&#322;ych zale&#380;no&#347;ci nabierze charakteru losowego).
to:
### Rozszerzenie 1: samodzielnie zgromad&#378; dane. Mo&#380;esz np. podpi&#261;&#263; si&#281; do jakiej&#347; aplikacji i przeprowadzi&#263; logowanie jej zmiennych. Mo&#380;esz skonstruowa&#263; model deterministyczny jakiego&#347; zjawiska (tylko zmienne wej&#347;ciowe b&#281;d&#261; losowane), ale cz&#281;&#347;&#263; zmiennych wej&#347;ciowych pozostawi&#263; ukrytych przed modelowaniem statystycznym (co spowoduje, &#380;e cz&#281;&#347;&#263; z pozosta&#322;ych zale&#380;no&#347;ci nabierze charakteru losowego).
March 23, 2009, at 05:49 PM by lukstafi - akwizycja ograniczenie
Added line 23:
*** [[http://www.dataonstage.com/BNT/PACKAGES/LinkStrength/index.html | LinkStrength Package for BNT]]
Changed line 42 from:
### Rozszerzenie 1: skonstruuj sie&#263; przeprowadzaj&#261;c wywiad z osob&#261;, kt&#243;ra zna si&#281; na analizowanym zagadnieniu (wariant ''(c)'').
to:
### Rozszerzenie 1: skonstruuj sie&#263; przeprowadzaj&#261;c wywiad z osob&#261;, kt&#243;ra zna si&#281; na analizowanym zagadnieniu (wariant ''(c)''). Osoba ta nie mo&#380;e by&#263; koleg&#261; (kole&#380;ank&#261;) z naszego przedmiotu; dobrze, je&#347;li wog&#243;le nie jest studentem b&#261;d&#378; absolwentem informatyki lub matematyki. (Cz&#281;&#347;ci&#261; zadania jest nam&#243;wienie kogo&#347;, by nam pom&#243;g&#322;.)
Changed line 34 from:
## Data Mining. Znajd&#378; struktur&#281; sieci z danych wykorzystuj&#261;c jedno z poznanych narz&#281;dzi.
to:
## '''Data Mining'''. Znajd&#378; struktur&#281; sieci z danych wykorzystuj&#261;c jedno z poznanych narz&#281;dzi.
Changed line 39 from:
## Akwizycja i reprezentacja wiedzy. Samodzielnie skonstruuj sie&#263; przekona&#324; (jej struktur&#281; i parametry).
to:
## '''Akwizycja i reprezentacja wiedzy'''. Samodzielnie skonstruuj sie&#263; przekona&#324; (jej struktur&#281; i parametry).
Changed line 47 from:
## Teoriodecyzyjne heurystyki w przeszukiwaniu i grach. Skonstruuj sie&#263; przekona&#324; z w&#281;z&#322;em/w&#281;z&#322;ami decyzyjnymi oraz w&#281;z&#322;em warto&#347;ci/nagrody/u&#380;yteczno&#347;ci/kosztu; patrz [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]. Dziedzin&#261; modelu ma by&#263; problem przeszukiwania (gra jedno-osobowa) lub gra dwuosobowa.
to:
## '''Teoriodecyzyjne heurystyki w przeszukiwaniu i grach'''. Skonstruuj sie&#263; przekona&#324; z w&#281;z&#322;em/w&#281;z&#322;ami decyzyjnymi oraz w&#281;z&#322;em warto&#347;ci/nagrody/u&#380;yteczno&#347;ci/kosztu; patrz [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]. Dziedzin&#261; modelu ma by&#263; problem przeszukiwania (gra jedno-osobowa) lub gra dwuosobowa.
March 23, 2009, at 03:51 AM by lukstafi - projekt z sieci bayesowskich
Changed line 19 from:
** [[http://www.openbayes.org/ | Open Bayes for Python]] (cz&#281;&#347;ciowy klon BNT)
to:
** [[http://www.openbayes.org/ | Open Bayes for Python]] (cz&#281;&#347;ciowy klon BNT, tylko zmienne dyskretne)
Changed lines 25-26 from:
*** [[http://www.norsys.com/netlibrary/index.htm | Bayes  Net Library]]
*** [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]
to:
*** [[http://www.norsys.com/netlibrary/index.htm | Bayes Net Library]]
*** [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]
# Warunki oceny ma&#322;ych projekt&#243;w
## Za wersj&#281; podstawow&#261; mo&#380;na dosta&#263; maksymalnie 15 punkt&#243;w (za &#322;adny raport z do&#322;&#261;czonymi -- tzn. wys&#322;anymi mailem lub wskazanymi url-em -- &#378;r&#243;d&#322;ami w postaci wykorzystanych program&#243;w / skrypt&#243;w dla przeprowadzonych eksperyment&#243;w / danych).
## Wystarczy jedno rozszerzenie, aby uzyska&#263; maksimum: 20 punkt&#243;w (ale nie dostaje si&#281; ich automatycznie za samo zrealizowanie wersji rozszerzonej). Niekt&#243;re rozszerzenia mog&#261; si&#281; okaza&#263; bardzo ma&#322;o czasoch&#322;onne w realizacji, nie ma konieczno&#347;ci ogranicza&#263; si&#281; do jednego ;-)
## Je&#347;li wkr&#281;cisz si&#281; w realizowanie rozszerze&#324;, dodatkowe rozszerzenia mog&#261; stanowi&#263; tre&#347;&#263; du&#380;ego projektu (ko&#324;cowego).
## Wiele rozszerze&#324; ma dwa warianty: pogl&#261;dowy "teoretyczny" (zaproponuj) i rzeczywisty (zaprogramuj). Na ma&#322;y projekt cz&#281;sto wystarczy wariant pogl&#261;dowy, na du&#380;y projekt wskazany jest wariant rzeczywisty.
## Warto przeczyta&#263; tre&#347;&#263; wszystkich wariant&#243;w projekt&#243;w.
# Projekt z sieci przekona&#324;: warianty
## Data Mining. Znajd&#378; struktur&#281; sieci z danych wykorzystuj&#261;c jedno z poznanych narz&#281;dzi.
### Wersja podstawowa: odnajd&#378; w internecie zbi&#243;r danych dla interesuj&#261;cego i/lub zrozumia&#322;ego dla Ciebie zagadnienia. Zinterpretuj zale&#380;no&#347;ci w powsta&#322;ej sieci (m.in. popatrz na ich si&#322;&#281;; popatrz czy zale&#380;no&#347;&#263; przyczynowa jest oczywista). Opisz kilka wynik&#243;w zapyta&#324; do sieci (tzn. rozk&#322;ad&#243;w prawdopodobie&#324;stw dla pewnych zmiennych przy ustalonych warto&#347;ciach pewnych spo&#347;r&#243;d pozosta&#322;ych zmiennych): czy s&#261; intuicyjne, czy zachodzi np. "explaining away" etc.
### Rozszerzenie 1: samodzielnie zgromad&#378; dane. Mo&#380;esz np. podpi&#261;&#263; si&#281; do jakiej&#347; aplikacji i przeprowadzi&#263; logowanie jej parametr&#243;w. Mo&#380;esz skonstruowa&#263; model deterministyczny jakiego&#347; zjawiska (tylko zmienne wej&#347;ciowe b&#281;d&#261; losowane), ale cz&#281;&#347;&#263; zmiennych wej&#347;ciowych pozostawi&#263; ukrytych przed modelowaniem statystycznym (co spowoduje, &#380;e cz&#281;&#347;&#263; z pozosta&#322;ych zale&#380;no&#347;ci nabierze charakteru losowego).
### Rozszerzenie 2: wyra&#378; posiadan&#261; wiedz&#281; o zagadnieniu w postaci wi&#281;z&#243;w (twardych, a mo&#380;e r&#243;wnie&#380; mi&#281;kkich), lub w postaci pocz&#261;tkowej sieci przekona&#324;. Por&#243;wnaj sie&#263; znalezion&#261; z uwzgl&#281;dnieniem twojej wiedzy, z sieci&#261; kt&#243;r&#261; (to samo lub inne) narz&#281;dzie odnalaz&#322;o przy braku wiedzy startowej (z w pewnym sensie "jednostajnym" rozk&#322;adem a priori na struktury sieci).
### Rozszerzenie 3: urozmai&#263; struktur&#281; sieci: w&#281;z&#322;y innego typu ni&#380; dyskretne ze stabulowanymi prawdopodobie&#324;stwami warunkowymi (np. dla zmiennych ci&#261;g&#322;ych); zmienne ukryte (nie obserwowane, wog&#243;le albo zazwyczaj, w danych ucz&#261;cych).
## Akwizycja i reprezentacja wiedzy. Samodzielnie skonstruuj sie&#263; przekona&#324; (jej struktur&#281; i parametry).
### Wersja podstawowa: skonstruuj prostsz&#261; sie&#263; (wariant ''(a)'') lub wprowad&#378;/zaimportuj trudniejsz&#261; sie&#263; odnalezion&#261; w internecie (wariant ''(b)''). Opisz zale&#380;no&#347;ci w sieci oraz kilka wynik&#243;w zapyta&#324; do sieci (jak w wariancie ''Data Mining'').
### Rozszerzenie 1: skonstruuj sie&#263; przeprowadzaj&#261;c wywiad z osob&#261;, kt&#243;ra zna si&#281; na analizowanym zagadnieniu (wariant ''(c)'').
### Rozszerzenie 2: zaplanuj (i mo&#380;e te&#380; zaprogramuj) mechanizm gromadzenia danych w trakcie u&#380;ytkowania modelu, oraz okresow&#261; automatyczn&#261; aktualizacj&#281; parametr&#243;w modelu (a by&#263; mo&#380;e r&#243;wnie&#380; struktury modelu, cho&#263; to mniej bezpieczne); mo&#380;esz potrzebowa&#263; narz&#281;dzia dopuszczaj&#261;cego nieobserwowanie niekt&#243;rych zmiennych w danych ucz&#261;cych. Rozwa&#380; "trade-off" pomi&#281;dzy konserwatywnym zachowaniem posiadanego modelu a nad&#261;&#380;aniem z modelem za gromadzonymi danymi. Niekt&#243;re narz&#281;dzia pozwol&#261; ci wyrazi&#263; stary model bezpo&#347;rednio, np. jako parametry "a priori" dla rozk&#322;adu Dirichleta. Je&#347;li twoje narz&#281;dzie tego nie potrafi, b&#281;dziesz musia&#322; wygenerowa&#263; odpowiedni&#261; porcj&#281; danych ze starego modelu, &#380;eby zr&#243;wnowa&#380;y&#263; wp&#322;yw wiedzy wzgl&#281;dem wp&#322;ywu nap&#322;yni&#281;tych obserwacji.
**** Je&#347;li model s&#322;u&#380;y do predykcji, to u&#380;ytkownik mo&#380;e powiedzie&#263; p&#243;&#378;niej, co sta&#322;o si&#281; naprawd&#281;.
**** Je&#347;li model wspiera podejmowanie decyzji, to u&#380;ytkownik mo&#380;e p&#243;&#378;niej oceni&#263; podj&#281;t&#261; decyzj&#281;.
**** Je&#347;li dane (ang. "evidence") w zapytaniach u&#380;ytkownika nie maj&#261; charakteru hipotetycznego ale s&#261; zaobserwowane, np. s&#261; to objawy obserwowane u pacjenta, to zarejestruj je; dobry model pomi&#281;dzy objawami mo&#380;e zaoszcz&#281;dzi&#263; na badaniach diagnostycznych. Gromadz&#261;c dane sp&#322;ywaj&#261;ce z ca&#322;ego regionu wydobywamy wiedz&#281; o charakterze epidemiologicznym itd.
### Rozszerzenie 3: urozmai&#263; struktur&#281; sieci (jak w rozrzerzeniu 3 wariantu ''Data Mining''): w&#281;z&#322;y innego typu ni&#380; dyskretne, zmienne ukryte itd.
## Teoriodecyzyjne heurystyki w przeszukiwaniu i grach. Skonstruuj sie&#263; przekona&#324; z w&#281;z&#322;em/w&#281;z&#322;ami decyzyjnymi oraz w&#281;z&#322;em warto&#347;ci/nagrody/u&#380;yteczno&#347;ci/kosztu; patrz [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]. Dziedzin&#261; modelu ma by&#263; problem przeszukiwania (gra jedno-osobowa) lub gra dwuosobowa.
### Wersja podstawowa: Zmiennymi "&#347;rodowiskowymi" s&#261; parametry stanu przeszukiwania / stanu gry. Zmienna / zmienne decyzyjne dostarczaj&#261; parametr&#243;w operatorowi przej&#347;cia do kolejnego stanu. Stan gry mo&#380;e decydowa&#263;, kt&#243;re zmienne s&#261; obserwowane w trakcie u&#380;ywania modelu (np. kolejne decyzje nasze/przeciwnika w grze o niewielkiej ilo&#347;ci ruch&#243;w, np. pokerze czy "oczku"). Niekt&#243;re zmienne mog&#261; wog&#243;le nie by&#263; obserwowalne w trakcie u&#380;ywania struktury, ale by&#263; &#322;atwo dost&#281;pne dla uczenia struktury (np. kolejny ruch przeciwnika).
### Rozszerzenie 1: zamiast konstruowa&#263; model "z palca" albo "z internetu", zaproponuj / zaprogramuj generator danych a nast&#281;pnie znajd&#378; model z wygenerowanych danych. W generowanych danych za warto&#347;&#263; zmiennej "heurystyka" podstaw estymowan&#261; odleg&#322;o&#347;&#263; od rozwi&#261;zania (poprzez najkr&#243;tsz&#261; z rzeczywi&#347;cie znalezionych &#347;cie&#380;ek do rozwi&#261;zania) lub wypr&#243;bkowane prawdopodobie&#324;stwo wygranej (jaka cz&#281;&#347;&#263; spo&#347;r&#243;d rozgrywek przechodz&#261;cych przez dany stan zako&#324;czy&#322;a si&#281; wygran&#261;). W generatorze wykorzystaj najlepsze dost&#281;pne ci heurystyki &#380;eby przyspieszy&#263; generowanie i poprawi&#263; jako&#347;&#263; danych.
### Rozszerzenie 2: zaproponuj / zaprogramuj mechanizm uaktualniania modelu w czasie rozrywki lub po kilku rozgrywkach.
### Rozszerzenie 3: zaproponuj / zaprogramuj strategi&#281; przeszukiwania / strategi&#281; rozgrywki, kt&#243;ra nie kieruje si&#281; ch&#281;ci&#261; maksymalizacji nagrody, ale ch&#281;ci&#261; jak najsprawniejszego poprawienia jako&#347;ci modelu.
#### Rozszerzenie 4: zaproponuj, wykorzystuj&#261;c teori&#281; bayesowskiego uczenia ze wzmocnieniem, mechanizm optymalnego wyboru ruchu, uwzgl&#281;dniaj&#261;cy, &#380;e poprawienie jako&#347;ci modelu poprawi skuteczno&#347;&#263; maksymalizacji nagrody.
Added lines 2-10:
* [[http://ai.stanford.edu/~paskin/gm-short-course/ | A Short Course on Graphical Models]] (Mark A. Paskin)
* [[http://www.norsys.com/netlibrary/index.htm | Bayes  Net Library]]
* [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]


# Pracownia z sieci bayesowskich: [[http://b-course.cs.helsinki.fi/obc/depend.html | Dependence modeling trails]] (kurs online z Helsinek)
** [[http://sequoia.ict.pwr.wroc.pl/~witold/ai/ai_baynet_s.pdf | Wyk&#322;ad 8: Wnioskowanie na probabilistycznych sieciach przekona&#324;]]
** [[http://research.microsoft.com/apps/pubs/default.aspx?id=69588 | A Tutorial on Learning With Bayesian Networks]] (David Heckerman, Mar. 1995)
** [[http://opus.zbw-kiel.de/volltexte/2007/6175/pdf/economics_2007-11.pdf | Learning Causal Relations in Multivariate Time Series Data]] (Pu Chen and Hsiao Chihying)
Deleted lines 11-18:
** [[http://www.norsys.com/ | Norsys Software Corp. ''Netica'']]


# Pracownia z sieci bayesowskich: [[http://b-course.cs.helsinki.fi/obc/depend.html | Dependence modeling trails]] (kurs online z Helsinek)
** [[http://sequoia.ict.pwr.wroc.pl/~witold/ai/ai_baynet_s.pdf | Wyk&#322;ad 8: Wnioskowanie na probabilistycznych sieciach przekona&#324;]]
** [[http://research.microsoft.com/apps/pubs/default.aspx?id=69588 | A Tutorial on Learning With Bayesian Networks]] (David Heckerman, Mar. 1995)
** [[http://opus.zbw-kiel.de/volltexte/2007/6175/pdf/economics_2007-11.pdf | Learning Causal Relations in Multivariate Time Series Data]] (Pu Chen and Hsiao Chihying)
** [[http://ai.stanford.edu/~paskin/gm-short-course/ | A Short Course on Graphical Models]] (Mark A. Paskin)
Changed lines 24-26 from:
** [[http://www.norsys.com/ | Norsys Software Corp. '''Netica''']] (''the world's most widely used Bayesian network development software'')
to:
** [[http://www.norsys.com/ | Norsys Software Corp. '''Netica''']] (''the world's most widely used Bayesian network development software'')
*** [[http://www.norsys.com/netlibrary/index.htm | Bayes  Net Library]]
*** [[http://www.norsys.com/tutorials/netica/secA/tut_A4.htm | Basic Decision Making with Bayes Nets]]
Changed lines 3-5 from:
** [[http://www.norsys.com/ | Norsys Software Corp. ''Netica'']] ('''the world's most widely used Bayesian network development software''')

to:
** [[http://www.norsys.com/ | Norsys Software Corp. ''Netica'']]

Changed line 23 from:
** [[http://www.norsys.com/ | Norsys Software Corp. ''Netica'']] ('''the world's most widely used Bayesian network development software''')
to:
** [[http://www.norsys.com/ | Norsys Software Corp. '''Netica''']] (''the world's most widely used Bayesian network development software'')
Changed lines 3-4 from:

to:
** [[http://www.norsys.com/ | Norsys Software Corp. ''Netica'']] ('''the world's most widely used Bayesian network development software''')

March 22, 2009, at 10:47 PM by lukstafi - Netica
Added line 22:
** [[http://www.norsys.com/ | Norsys Software Corp. ''Netica'']] ('''the world's most widely used Bayesian network development software''')
March 22, 2009, at 01:53 PM by lukstafi - GM course
Added lines 1-4:
Ciekawe nowo&#347;ci na stronie:
** [[http://ai.stanford.edu/~paskin/gm-short-course/ | A Short Course on Graphical Models]] (Mark A. Paskin)

Changed line 9 from:
** [[http://web.cs.wpi.edu/~cs539/s05/Projects/k2_algorithm.pdf | Illustration of the K2 Algorithm for Learning Bayes Net Structures]] (Prof. Carolina Ruiz)
to:
** [[http://ai.stanford.edu/~paskin/gm-short-course/ | A Short Course on Graphical Models]] (Mark A. Paskin)
Changed lines 15-16 from:
*** [[http://ano.malo.us/pebl/docs/data.html | data Pebl Dataset]]
*** [[http://ano.malo.us/pebl/docs/prior.html | prior – Prior models]]
to:
*** [[http://ano.malo.us/pebl/docs/data.html | data: Pebl Dataset]]
*** [[http://ano.malo.us/pebl/docs/prior.html | prior: Prior models]]
March 17, 2009, at 07:59 AM by lukstafi - BNT
Added lines 15-17:
** [[http://www.cs.ubc.ca/~murphyk/Software/BNT/bnt.html | Bayes Net Toolbox for Matlab]]
*** [[http://www.cs.ubc.ca/~murphyk/Software/BNT/usage.html | How to use BNT]]
** [[http://bnj.sourceforge.net/ | Bayesian Network tools in Java (BNJ)]]
March 17, 2009, at 06:00 AM by lukstafi - pybayes
Changed lines 13-14 from:
**
to:
** [[http://www.openbayes.org/ | Open Bayes for Python]] (cz&#281;&#347;ciowy klon BNT)
*** [[https://developer.berlios.de/svn/?group_id=5386 | svn download]]
March 17, 2009, at 05:26 AM by lukstafi - JavaBayes
Changed lines 6-7 from:
# Pracownia z sieci bayesowskich 2: [[http://code.google.com/p/pebl-project/ | pebl: Python Environment For Bayesian Learning]]
** [[http://ano.malo.us/pebl/docs/ | Pebl v1.0.1 documentation]]
to:
# Pracownia z sieci bayesowskich 2:
** [[http://sequoia.ict.pwr.wroc.pl/~witold/ai/JavaBayes/ | JavaBayes]] (kopia lokalna na stronie wyk&#322;adowcy)
*** [[http://www.cs.cmu.edu/~javabayes/Home/ | JavaBayes Home]] (dokumentacja)
** [[http://code.google.com/p/pebl-project/ | pebl: Python Environment For Bayesian Learning]]
*** [[http://ano.malo.us/pebl/docs/ | Pebl v1.0.1 documentation]]
*** [[http://ano.malo.us/pebl/docs/data.html | data – Pebl Dataset]]
*** [[http://ano.malo.us/pebl/docs/prior.html | prior – Prior models]]
**
March 16, 2009, at 11:25 PM by lukstafi - pebl bayes nets python
Changed lines 5-7 from:
** [[http://web.cs.wpi.edu/~cs539/s05/Projects/k2_algorithm.pdf | Illustration of the K2 Algorithm for Learning Bayes Net Structures]] (Prof. Carolina Ruiz)
to:
** [[http://web.cs.wpi.edu/~cs539/s05/Projects/k2_algorithm.pdf | Illustration of the K2 Algorithm for Learning Bayes Net Structures]] (Prof. Carolina Ruiz)
# Pracownia z sieci bayesowskich 2: [[http://code.google.com/p/pebl-project/ | pebl: Python Environment For Bayesian Learning]]
** [[http://ano.malo.us/pebl/docs/ | Pebl v1.0.1 documentation]]
Added line 5:
** [[http://web.cs.wpi.edu/~cs539/s05/Projects/k2_algorithm.pdf | Illustration of the K2 Algorithm for Learning Bayes Net Structures]] (Prof. Carolina Ruiz)
Changed line 1 from:
# Pracownia 2 marca, sieci Bayesowskie: [[http://b-course.cs.helsinki.fi/obc/depend.html | Dependence modeling trails]] (kurs online z Helsinek)
to:
# Pracownia z sieci bayesowskich: [[http://b-course.cs.helsinki.fi/obc/depend.html | Dependence modeling trails]] (kurs online z Helsinek)
March 02, 2009, at 11:47 PM by lukstafi - sieci bayesowskie
Added lines 1-4:
# Pracownia 2 marca, sieci Bayesowskie: [[http://b-course.cs.helsinki.fi/obc/depend.html | Dependence modeling trails]] (kurs online z Helsinek)
** [[http://sequoia.ict.pwr.wroc.pl/~witold/ai/ai_baynet_s.pdf | Wyk&#322;ad 8: Wnioskowanie na probabilistycznych sieciach przekona&#324;]]
** [[http://research.microsoft.com/apps/pubs/default.aspx?id=69588 | A Tutorial on Learning With Bayesian Networks]] (David Heckerman, Mar. 1995)
** [[http://opus.zbw-kiel.de/volltexte/2007/6175/pdf/economics_2007-11.pdf | Learning Causal Relations in Multivariate Time Series Data]] (Pu Chen and Hsiao Chihying)
Edit · History · Print · Recent Changes · Search · Links
Page last modified on June 16, 2009, at 01:45 PM