-
X-Received: by 10.140.96.52 with SMTP id j49mr77731qge.10.1421282205983; Wed, 14 Jan
2015 16:36:45 -0800 (PST)
X-Received: by 10.140.96.52 with SMTP id j49mr77731qge.10.1421282205983; Wed, 14 Jan
2015 16:36:45 -0800 (PST)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!h15no5410271igd.0!news-out.g
oogle.com!ik4ni254qab.1!nntp.google.com!v8no1032849qal.1!postnews.google.com!gl
egroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Wed, 14 Jan 2015 16:36:45 -0800 (PST)
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=37.219.215.72;
posting-account=zOpWhAoAAABF9bK4ExUIKsZM8vPTSKQp
NNTP-Posting-Host: 37.219.215.72
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c...@g...com>
Subject: perkun
From: xuesheng <p...@g...com>
Injection-Date: Thu, 15 Jan 2015 00:36:45 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:207414
[ ukryj nagłówki ]Witam,
Napisałem sobie programik pt. perkun (od słowiańskiego boga Perkuna) służący do
zabawy z AI. Można go ściągnąć z:
https://sourceforge.net/projects/perkun/
Jest to język z załączonym przykładowym programem (src/t1.perkun). Do zbudowania
wymaga flex'a i bison'a.
Program w Perkunie składa się z kilku następujących po sobie obowiązkowych sekcji i
ciągu instrukcji. Sekcje są to:
- wartości
- zmienne
- funkcja payoff (tzw. funkcja odpłaty)
- model (coś w rodzaju fizyki gry)
Jako ciąg instrukcji proponuję na razie tylko instrukcję loop z parametrem
oznaczającym głębokość rekurencji planowania.
Perkun odznacza się tym, że obsługuje zmienne ukryte tj. takie zmienne, które nie są
obserwowalne dla naszego "agenta". W każdej chwili posiada rozkład nad kartezjanem
możliwych wartości zmiennych ukrytych, tzw. "belief". Belief (po polsku nazwijmy go
wiarą) jest uaktualniany w każdym kroku w ten sposób, że po wpisaniu na wejście ciągu
wartości zmiennych wejściowych program interpretuje zaobserwowany rezultat
"eksperymentu".
Zapraszam do rozważenia przykładowego programu t1.perkun. Fizykę gry (model) można
zinterpretować jako dwa automaty, zależnie od tego co robi agent. Jeżeli agent na
wyjściu ustawi "false" wówczas nic się nie zmienia. Jeżeli agent na wyjściu ustawi
"true" wówczas zmienna x i zmienna ukryta a są cyklicznie przechodzone w porządku:
(false,false)->(false,true)->(true,false)->(true,tru
e)
Ponadto program "lubi" mieć na wejściu wartość true, co wynika z funkcji odpłaty.
Po uruchomieniu perkuna z t1.perkun jako argumentem otrzymujemy prompt z informacją,
że na wejściu oczekiwane są wartości zmiennej x. Jest to w tym przykładzie jedyna
zmienna wejściowa.
Wpiszmy false. Perkun zareaguje wypisując belief (wiarę) postaci:
belief:
a=false x=false 0.5
a=true x=false 0.5
optimal action:
z=true
Czyli nie wie czy zmienna ukryta jest false czy true, ale wie, że chce "uaktywować"
automat. Wpiszmy teraz ponownie false. Reakcja:
belief:
a=false x=false 0
a=true x=false 1
optimal action:
z=true
Tym razem na podstawie znajomości modelu perkun doszedł do przekonania, że zmienna
akryta a musi być równa true. Decyzja jest taka jak poprzednio, czyli agent
"aktywuje" automat. Wpiszmy teraz true. Reakcja:
belief:
a=false x=true 1
a=true x=true 0
optimal action:
z=false
Teraz perkun uważa, że zmienna a zmieniła wartość na false i ponieważ na wejściu
widzi true czyli to co lubi - postanawia utrzymać ten stan.
Ciekawostka. Jeżeli "okłamiemy" perkuna, np. po ostatniej decyzji dając "false",
wówczas wiara stanie w sprzeczności z fizyką gry, co perkun wypisze jako:
belief:
a=false x=false -nan
a=true x=false -nan
optimal action:
z=false
Jeżeli powtórzymy eksperyment wpisując od początku true, wówczas perkun zupełnie
słusznie zdecyduje, że nie chce uruchamiać automatu, czyli wybierze optymalną akcję
z=false, ale nie będzie miał wcale pewności co do zmiennej a.
Zapraszam do zabawy.
Paweł Biernacki
P.S. Matematykę do Perkuna stworzyłem sam, mniej więcej piętnaście lat temu, ale nie
udało mi się wówczas zainteresować nią akademików. Sprowadza się do dwóch wzorów,
które zdaje się mają coś wspólnego z Teorią Optymalizacji. Gdyby ktoś był ciekawy
matematyka ta tkwi w pliku src/optimizer.cc.
Następne wpisy z tego wątku
- 22.01.15 02:55 xuesheng
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek
- 2025-07-13 Unia Europejska przygotowuje nowy podatek
- 2025-07-12 Warszawa => PC Hardware Expert / Specjalista PC <=
- 2025-07-12 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-07-12 Warszawa => Administrator IT <=
- 2025-07-12 Warszawa => IT Administrator <=
- 2025-07-12 Warszawa => Asystent/tka ds. Administracji <=
- 2025-07-12 Warszawa => Specjalista/stka ds. Organizacji <=
- 2025-07-12 Warszawa => MENA New Business Manager <=
- 2025-07-12 Gdynia => Controlling systems Consultant <=
- 2025-07-12 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-07-12 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-07-12 Warszawa => Dyrektor IT <=