eGospodarka.pl
eGospodarka.pl poleca

  • 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.





Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: