Prolog-ohjeita. Vai mikä?

Tekoälymies

Haluaisin opetella käyttämään Prolog-kääntäjiä ja ohjelmoinnin alkeet. Mistä löytyisi apua? Ja suomenkielistä. Englanninkielistä kyllä löytyy, mutta näin alkeet menisivät päähän suomeksi helpommin.

Vai mikä olisi se tekoälykieli jonka hanskaamisella mahdollisuus leventää leipääkin?

4

468

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Vasenjalkainen

      http://www.swi-prolog.org/

      SWI-prologilla pääsee ainakin alkuun, itse olen tuolla jonkin verran leikkinyt.

      Visual prologista on evaluaatio-versio olemassa, mutta se taas vaikuttaa enemmänkin täysiveriseltä kehitysympäristöltä, ja itse ympäristön opettelu vie huomiota pois itse kieliopista.

      Suomenkielisestä kirjallisuudesta olen törmännyt ainoastaan IT-Pressin Java, Prolog ja Python -opukseen, jossa tosin oli vain suhteellisen lyhyt osuus Prologin alkeista.

      • Tekoälymies

        Kiitoksia. Myös seuraavista linkeistä löytyy jotain:

        http://www.cs.tut.fi/~ai/prolog_esimerkkeja/aloitus.html

        http://www.ling.helsinki.fi/kurssit/ctl170/1998/

        http://www.cs.tut.fi/kurssit/8101905/prolog.html


        Imutin GNU-prologin ja nyt en saa suoritettua GNU-prologin mukana tulleita .pl-esimerkkiohjelmia.

        Eikös homman pitäisi toimia niin, että | ?- -promptiin kirjoitetaan vain esim [boyer]. ja painetaan enter (ohjelman nimi siis nyt boyer.pl)?

        Missä hakemistossa ohjelman on sijaittava? Saan aina seuraavan virheilmoituksen:

        uncaught exception: error(existence_error(source_sink,'boyer.pl'),consult/1)


      • Tekoälymies
        Tekoälymies kirjoitti:

        Kiitoksia. Myös seuraavista linkeistä löytyy jotain:

        http://www.cs.tut.fi/~ai/prolog_esimerkkeja/aloitus.html

        http://www.ling.helsinki.fi/kurssit/ctl170/1998/

        http://www.cs.tut.fi/kurssit/8101905/prolog.html


        Imutin GNU-prologin ja nyt en saa suoritettua GNU-prologin mukana tulleita .pl-esimerkkiohjelmia.

        Eikös homman pitäisi toimia niin, että | ?- -promptiin kirjoitetaan vain esim [boyer]. ja painetaan enter (ohjelman nimi siis nyt boyer.pl)?

        Missä hakemistossa ohjelman on sijaittava? Saan aina seuraavan virheilmoituksen:

        uncaught exception: error(existence_error(source_sink,'boyer.pl'),consult/1)

        Siis kuinka noita .pl -tiedostoja ladataan? Ei onnistu millään. Missä hakemistossa niiden täytyy olla? Voiko ohjelmassa jotenkin määrittää hakemiston? Nyt kokeilun alla se SWI...

        Entäs kuinka niitä .pl -tiedostoja luodaan?


      • neuvo
        Tekoälymies kirjoitti:

        Siis kuinka noita .pl -tiedostoja ladataan? Ei onnistu millään. Missä hakemistossa niiden täytyy olla? Voiko ohjelmassa jotenkin määrittää hakemiston? Nyt kokeilun alla se SWI...

        Entäs kuinka niitä .pl -tiedostoja luodaan?

        Älä hajauta kysymyksiäsi kovin monelle forumille. Ei näitä vastauksia jaksa joka paikkaan postailla. :)

        >...kuinka ladataan .pl -tiedosto tai kuinka sellainen luodaan

        Se ladataan gprologissa ihan kuten ensin yritit komennolla:

        | ?- [nimi].

        jos se tiedosto ei ole siinä hakemistossa missä itse olet sillä hetkellä, pitää laittaa koko polku pikkuhipsuissa:

        | ?- ['/home/omat_prologit/nimi'].

        Ohjelman voi luoda millä tahansa tekstieditorilla.

        Jos Hanoin tornit -ongelma on tuttu niin rekursiivinen Prolog-koodi on äärimmäisen lyhyt sen ratkaisemiseen. Koodi löytyy monelta Prologia käsitteleviltä sivuilta. Javalla animoituna tuolta:

        http://www.cut-the-knot.org/recurrence/hanoi.shtml

        Tee tiedosto hanoi.pl jossa on seuraavanlainen teksti:

        hanoi(N) :- move(N, left, center, right).

        move(0, _, _, _) :- !.
        move(N, A, B, C) :- M is N-1, move(M, A, C, B), inform(N, A, B), move(M, C, B, A).

        inform(I, X, Y) :- write('move disc '), write(I), write(' from '), write(X), write(' to '), write(Y), nl.

        lataa se komennolla:

        | ?- [hanoi].

        sen jälkeen voit kokeilla vaikka 3:lla kiekolla:

        | ?- hanoi(3).

        joka tulostaa:
        move disc 1 from left to center
        move disc 2 from left to right
        move disc 1 from center to right
        move disc 3 from left to center
        move disc 1 from right to left
        move disc 2 from right to center
        move disc 1 from left to center

        Huomaa että siirtojen määrä kasvaa räjähdysmäisesti kiekkojen määrän kasvaessa joten kovin isoilla luvuilla ei kannata ainakaan aluksi kokeilla.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Suomalainen tutkimus paljasti oudon asian vasemmistolaisista - he häpeävät itseään

      Kyllä, asia on faktaa. Suomalainen tutkimus osoittaa, että vasemmistolaisina itseään pitävät kansalaiset häpeävät itseää
      Maailman menoa
      160
      4215
    2. Sosialismia Tampereella: Virallinen ilmiantolinja avautuu kaupungissa

      Nyt siis mennään mansessa ihan justiinsa samaan malliin kuin entisessä Neuvostoliitossa, jossa saattoi ilmiantaa naapuri
      Maailman menoa
      416
      3196
    3. Tätä et nähnyt tv:ssä: Frederik paljastaa - Totuus "haisevasta jäynästä" pehtoorille Farmilla

      Frederik veti ns. herneen nenään ja päätti kostaa pehtoorille. Mitäs mieltä olet Frederikin "aamutoimista"? Lue jutt
      Tv-sarjat
      14
      2108
    4. Ellen Jokikunnas paljastaa kyynelehtien Ralph-pojasta: "Apua..."

      Ellen Jokikunnaksen ja hänen puolisonsa Jari Raskin perheestä ja taloprojektista Italiassa kertova Unelmia Italiassa -sa
      Suomalaiset julkkikset
      14
      1770
    5. Oho! Vappu Pimiä teki "röyhkeän" teon - Onko sopivaa paljastaa tämä MasterChef-sarjasta?

      Vappu Pimiä on astunut MasterChef Suomi -keittiöön ja liittynyt ohjelman legendaariseen tuomaristoon Helena Puolakan ja
      Tv-sarjat
      5
      1168
    6. Mun kaikkialta häviäminen

      Ei liity sinuun. Muista se. ❤️ Mua kiusataan enkä mä enää jaksa.
      Ikävä
      74
      1013
    7. Kaste tulisi tehdä apostolisella tavalla Ap. t. 2:38 mukaan

      Apostolit eivät kastaneet kolminaisuuden nimellä vaan Jeesuksen alkuperäisen käskyn mukaisesti: Ap. t. 2:38 Niin Pietar
      Kaste
      69
      1005
    8. Kuhmossa rallit alkoi ennen aikojaan

      Paettiin polliisia törkeästi? Se tuo rallikiima on näemmä saavuttanu paikalliset tommi mäkiset kiljupäissään auton rat
      Kuhmo
      24
      921
    9. Onko teillä

      minkä tyyppisiä seksifantasioita kaivattunne kanssa?
      Ikävä
      54
      896
    10. Inhottaa ajatus siitä

      Miten monia olet pannut.
      Ikävä
      71
      869
    Aihe