eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Prolog - nawracanie - jak jest implementowane
Ilość wypowiedzi w tym wątku: 19

  • 1. Data: 2012-09-08 21:41:05
    Temat: Prolog - nawracanie - jak jest implementowane
    Od: Sebastian Biały <h...@p...onet.pl>

    Nadszedł ten moment kiedy czas na Prolog...

    Ze względow praktycznych nie mogę tego zrobić za pomocą języka wprost.
    Konkretnie nie mogę mojej bazy wiedzy skonwertować do postaci prologowej
    bo zajmie to za duzo czasu (a i parsowanie potrwa wieki). Wolałbym zeby
    móc operować na moich strukturach danych bezposrednio.

    Przypuszczam że jak poszukam czegoś w rodzaju "embedded prolog" to będe
    mogł zrobić abstrakcję na dane i niczego nie konwertować.

    Jednak zanim to zrobie nurtuje mnie mały problem: nawracanie.

    Jak czytam dowolną ksiązkę o Prologu i autor dochodzi do problemu
    nawracania to ani słowem nie wspomina że to powoduje coś na kształt
    ekplozji kobinatorycznej. Konkretnie pewne dane są wyszukiwane w sposób
    naiwny, czymś w rodzaju brute-force wielokronie przeczesując tą samą
    przestrzeń faktów. Cieżko mi uwierzyć że tak wyglądają implementacje
    Prologa jak opisywany jest algorytm.

    Głupi pomysł: zrobmy wyszukiwanie w mojej bazie typu Prolog-like. Język
    i składnie pomińmy, chodzi o koncepcje zmiennych, ukonkretniania,
    nawracania itp. Gdzie mogę poczytać o *algorytmach* rozwiązywania
    zapytań w Prologu? Nie wierzę, że jest aż tak prymitywny jak opisywane w
    książkach metody brute-force.

    Oczywiście wiem co wypluwa google na hasło "prolog solver" ale może ktoś
    zna jakiś ciekawy tekst, może być "popularnonaukowy" opisujacy co i jak
    w sposób mozliwe ogólny pozwalający zorientowac się w temacie.


  • 2. Data: 2012-09-08 23:19:28
    Temat: Re: Prolog - nawracanie - jak jest implementowane
    Od: Piotr Chamera <p...@p...onet.pl>

    W dniu 2012-09-08 21:41, Sebastian Biały pisze:
    > Nadszedł ten moment kiedy czas na Prolog...
    ...
    > Oczywiście wiem co wypluwa google na hasło "prolog solver" ale może ktoś
    > zna jakiś ciekawy tekst, może być "popularnonaukowy" opisujacy co i jak
    > w sposób mozliwe ogólny pozwalający zorientowac się w temacie.

    Może tutaj coś będzie na temat -> http://www.pwlzo.pl/


  • 3. Data: 2012-09-08 23:58:19
    Temat: Re: Prolog - nawracanie - jak jest implementowane
    Od: A.L. <l...@a...com>

    On Sat, 08 Sep 2012 21:41:05 +0200, Sebastian Bia?y
    <h...@p...onet.pl> wrote:

    >Nadszedł ten moment kiedy czas na Prolog...
    >
    >Ze względow praktycznych nie mogę tego zrobić za pomocą języka wprost.
    >Konkretnie nie mogę mojej bazy wiedzy skonwertować do postaci prologowej
    >bo zajmie to za duzo czasu (a i parsowanie potrwa wieki). Wolałbym zeby
    >móc operować na moich strukturach danych bezposrednio.
    >

    Ze co chcesz zrobic?... Niby jak Prolog ma "operowac na moich
    strukturach danych"?... Nie ma nijakich "twoich struktur danych" w
    Prologu

    >Przypuszczam że jak poszukam czegoś w rodzaju "embedded prolog" to będe
    >mogł zrobić abstrakcję na dane i niczego nie konwertować.
    >

    Ze co?...

    >Jednak zanim to zrobie nurtuje mnie mały problem: nawracanie.
    >
    >Jak czytam dowolną ksiązkę o Prologu i autor dochodzi do problemu
    >nawracania to ani słowem nie wspomina że to powoduje coś na kształt
    >ekplozji kobinatorycznej. Konkretnie pewne dane są wyszukiwane w sposób
    >naiwny, czymś w rodzaju brute-force wielokronie przeczesując tą samą
    >przestrzeń faktów. Cieżko mi uwierzyć że tak wyglądają implementacje
    >Prologa jak opisywany jest algorytm.
    >

    Moze jednak powineines wziac jakas PORZADNA ksiazke o Prologu?

    >Głupi pomysł: zrobmy wyszukiwanie w mojej bazie typu Prolog-like. Język
    >i składnie pomińmy, chodzi o koncepcje zmiennych, ukonkretniania,
    >nawracania itp. Gdzie mogę poczytać o *algorytmach* rozwiązywania
    >zapytań w Prologu? Nie wierzę, że jest aż tak prymitywny jak opisywane w
    >książkach metody brute-force.
    >

    To nie jest zadna metoda "brute force".

    Jak chcesz wiedziec jak Prolog dziala "od srodka"... Praktycznie
    wszystkie Prologi dzialaja w oparciu o WAM - Warren Abstract Machine.
    Ksiazka na temat WAM jest tutaj

    http://www.cvc.uab.es/shared/teach/a25002/wambook.pd
    f


    >Oczywiście wiem co wypluwa google na hasło "prolog solver" ale może ktoś
    >zna jakiś ciekawy tekst, może być "popularnonaukowy" opisujacy co i jak
    >w sposób mozliwe ogólny pozwalający zorientowac się w temacie.

    Mzoe powinienes poczyatc to:

    http://homepages.inf.ed.ac.uk/pbrna/prologbook/

    A moze najpierw to:

    http://www.amzi.com/AdventureInProlog/


    A jak chcesz wiedziec DOKLADNIE jak "prolog engine" dziala, wez ta
    ksiazke

    http://www.ida.liu.se/~ulfni/lpp/

    W zasadzie rownie postawowa dla uzywajacych Prolog jak ksiazka o
    arytmetycze dla robiacych oblicznia numeryczne...

    A.L.


  • 4. Data: 2012-09-09 00:00:55
    Temat: Re: Prolog - nawracanie - jak jest implementowane
    Od: A.L. <l...@a...com>

    On Sat, 08 Sep 2012 23:19:28 +0200, Piotr Chamera
    <p...@p...onet.pl> wrote:

    >W dniu 2012-09-08 21:41, Sebastian Biały pisze:
    >> Nadszedł ten moment kiedy czas na Prolog...
    >...
    >> Oczywiście wiem co wypluwa google na hasło "prolog solver" ale może ktoś
    >> zna jakiś ciekawy tekst, może być "popularnonaukowy" opisujacy co i jak
    >> w sposób mozliwe ogólny pozwalający zorientowac się w temacie.
    >
    >Może tutaj coś będzie na temat -> http://www.pwlzo.pl/

    Nie, nei bedzie bo ta ksiazka (znakomita zreszta) jest na temat
    paradygmatu programowania zwanego "constraint logic programming over
    finite domains" (w skrocie CLP(FD)) i z Prologiem ma tyle wspolnego ze
    Autor opisuje system CLP(FD) zaimplementowany w Prologu. Nie ma nic
    tam o Prologu i jego mechanizmach w sensei ogolnym

    A.L.


  • 5. Data: 2012-09-09 00:25:04
    Temat: Re: Prolog - nawracanie - jak jest implementowane
    Od: A.L. <l...@a...com>

    On Sat, 08 Sep 2012 21:41:05 +0200, Sebastian Bia?y
    <h...@p...onet.pl> wrote:

    >Nadszedł ten moment kiedy czas na Prolog...
    >

    Tak na marginesie... Skad wiesz ze Prolog to wlasnei wlasciwe
    narzedzie do tego co chcesz robic? I wlasciwie CO chcesz robic?

    A.L.


  • 6. Data: 2012-09-09 01:08:28
    Temat: Re: Prolog - nawracanie - jak jest implementowane
    Od: Piotr Chamera <p...@p...onet.pl>

    W dniu 2012-09-09 00:00, A.L. pisze:
    > On Sat, 08 Sep 2012 23:19:28 +0200, Piotr Chamera
    > <p...@p...onet.pl> wrote:
    >
    >> W dniu 2012-09-08 21:41, Sebastian Biały pisze:
    >>> Nadszedł ten moment kiedy czas na Prolog...
    >> ...
    >>> Oczywiście wiem co wypluwa google na hasło "prolog solver" ale może ktoś
    >>> zna jakiś ciekawy tekst, może być "popularnonaukowy" opisujacy co i jak
    >>> w sposób mozliwe ogólny pozwalający zorientowac się w temacie.
    >>
    >> Może tutaj coś będzie na temat -> http://www.pwlzo.pl/
    >
    > Nie, nei bedzie bo ta ksiazka (znakomita zreszta) jest na temat
    > paradygmatu programowania zwanego "constraint logic programming over
    > finite domains" (w skrocie CLP(FD)) i z Prologiem ma tyle wspolnego ze
    > Autor opisuje system CLP(FD) zaimplementowany w Prologu. Nie ma nic
    > tam o Prologu i jego mechanizmach w sensei ogolnym

    Poleciłem tę książkę, bo dla mnie, jako laika w tej dziedzinie, była
    bardzo pomocna w zorientowaniu się w jakich problemach można stosować
    Prolog i jego następców oraz jak to wszystko (ogólnie) działa.
    Myślę, że dla OP też mogłaby być pomocna.

    (będę się odnosił do polskiej wersji książki)
    Jest rozdział 2 pod tytułem ,,Na początku był Prolog", gdzie ok str. 50
    jest wyjaśnione jak działa przeszukiwanie z nawrotami i czym się różni
    od przeszukiwania całego drzewa (o co OP pytał).

    Poza tym książka daje dobry przegląd tego jakie zadania są
    rozwiązywalne w Prologu i CLP i jak to w ogóle działa (na wielu
    przykładach), co może pomóc OP dokładniej sprecyzować czego potrzebuje
    do rozwiązania swojego problemu i dobrać odpowiednią metodę, bo z
    pytania wynika, że raczej nie chodzi koniecznie o Prolog, a bardziej o
    zbadanie możliwości zastosowania ,,programowania w logice" do jakiegoś
    konkretnego problemu.


  • 7. Data: 2012-09-09 01:16:16
    Temat: Re: Prolog - nawracanie - jak jest implementowane
    Od: A.L. <l...@a...com>

    On Sun, 09 Sep 2012 01:08:28 +0200, Piotr Chamera
    <p...@p...onet.pl> wrote:

    >W dniu 2012-09-09 00:00, A.L. pisze:
    >> On Sat, 08 Sep 2012 23:19:28 +0200, Piotr Chamera
    >> <p...@p...onet.pl> wrote:
    >>
    >>> W dniu 2012-09-08 21:41, Sebastian Biały pisze:
    >>>> Nadszedł ten moment kiedy czas na Prolog...
    >>> ...
    >>>> Oczywiście wiem co wypluwa google na hasło "prolog solver" ale może ktoś
    >>>> zna jakiś ciekawy tekst, może być "popularnonaukowy" opisujacy co i jak
    >>>> w sposób mozliwe ogólny pozwalający zorientowac się w temacie.
    >>>
    >>> Może tutaj coś będzie na temat -> http://www.pwlzo.pl/
    >>
    >> Nie, nei bedzie bo ta ksiazka (znakomita zreszta) jest na temat
    >> paradygmatu programowania zwanego "constraint logic programming over
    >> finite domains" (w skrocie CLP(FD)) i z Prologiem ma tyle wspolnego ze
    >> Autor opisuje system CLP(FD) zaimplementowany w Prologu. Nie ma nic
    >> tam o Prologu i jego mechanizmach w sensei ogolnym
    >
    >Poleciłem tę książkę, bo dla mnie, jako laika w tej dziedzinie, była
    >bardzo pomocna w zorientowaniu się w jakich problemach można stosować
    >Prolog i jego następców oraz jak to wszystko (ogólnie) działa.
    >Myślę, że dla OP też mogłaby być pomocna.
    >
    >(będę się odnosił do polskiej wersji książki)
    >Jest rozdział 2 pod tytułem ,,Na początku był Prolog", gdzie ok str. 50
    >jest wyjaśnione jak działa przeszukiwanie z nawrotami i czym się różni
    >od przeszukiwania całego drzewa (o co OP pytał).
    >
    >Poza tym książka daje dobry przegląd tego jakie zadania są
    >rozwiązywalne w Prologu i CLP i jak to w ogóle działa (na wielu
    >przykładach), co może pomóc OP dokładniej sprecyzować czego potrzebuje
    >do rozwiązania swojego problemu i dobrać odpowiednią metodę, bo z
    >pytania wynika, że raczej nie chodzi koniecznie o Prolog, a bardziej o
    >zbadanie możliwości zastosowania ,,programowania w logice" do jakiegoś
    >konkretnego problemu.

    Moze i byc pomocna. Ale jak pisalem, ksiazka jest przede wszystkim o
    konkretnym paradygmacie a nei o ogolnym programwoaniu w Prologu czy w
    ogole logic programming.

    O "ogolnym" polecam ksiazki Bratko "Prolog Programming for Artificial
    Intelligence" czy ksiazke "PROLOG by Example: How to Learn, Teach, and
    Use It", Helder Coelho

    Ksiazka Niederlinskeigo jest "sfokusowana" na dosyc waski wycinek
    logic programming

    A.L.


  • 8. Data: 2012-09-09 11:05:08
    Temat: Re: Prolog - nawracanie - jak jest implementowane
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2012-09-08 23:58, A.L. wrote:
    > Ze co chcesz zrobic?... Niby jak Prolog ma "operowac na moich
    > strukturach danych"?... Nie ma nijakich "twoich struktur danych" w
    > Prologu

    Wiem, dlatego przypuszczam że nie tyle potrzebuje Prologa co pomysłow
    solvera z Prologa do implementacji natywnej. Tak się składa że baza
    wiedzy u mnie jest nie dość, że nietypowa, to jeszcze pochodzi z róznych
    abstrakcyjnych źródeł, w tym niektórych dynamicznie zmieniających się.

    >> Przypuszczam że jak poszukam czegoś w rodzaju "embedded prolog" to będe
    >> mogł zrobić abstrakcję na dane i niczego nie konwertować.
    > Ze co?...

    Żeby włożyć Prolog do wnetrza mojej aplikacji. A w zasadzie sam solver z
    otoczką.

    > Moze jednak powineines wziac jakas PORZADNA ksiazke o Prologu?

    Racja, lokalnie jednak niewiele mogę znaleźć, to malo poplurany temat w
    PL, nawet lokalne biblioteki specjalistyczne albo niczgo nie oferują
    albo "już wypozyczone, od 30 lat".

    >> zapytań w Prologu? Nie wierzę, że jest aż tak prymitywny jak opisywane w
    >> książkach metody brute-force.
    > To nie jest zadna metoda "brute force".

    Przeszukanie tej samej przestrzeni faktów miliony razy (jak opisywane w
    ksiązkach) dla kazdego spasowania zmiennej brzmi jak brute-force.

    > Jak chcesz wiedziec jak Prolog dziala "od srodka"... Praktycznie
    > wszystkie Prologi dzialaja w oparciu o WAM - Warren Abstract Machine.
    > Ksiazka na temat WAM jest tutaj
    > http://www.cvc.uab.es/shared/teach/a25002/wambook.pd
    f

    Super. Przejrze wskazane źródła.


  • 9. Data: 2012-09-09 11:13:52
    Temat: Re: Prolog - nawracanie - jak jest implementowane
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2012-09-09 00:25, A.L. wrote:
    >> Nadszedł ten moment kiedy czas na Prolog...
    > Tak na marginesie... Skad wiesz ze Prolog to wlasnei wlasciwe
    > narzedzie do tego co chcesz robic? I wlasciwie CO chcesz robic?

    Nie wiem czy się nadaje. Wlasnie dlatego chce się z nim wziąśc za bary
    ponieważ po kilku probach na syntetycznej bazie *wydaje* mi się że jego
    składnia lepiej wyraża to co chce z mojej bazy wyczytać.

    Innymi słowy: to co w tej chwili opisuje mi algorytm w języku
    imperatywnym w kilkuset linijkach udalo mi się zredukować do kilku w
    języku logicznym. Przy czym te kilka linijek opisuje to co chcę w sposób
    nieporównywalnie czytelniejszy. Chwoliwo podstawowy zysk jaki widzę to
    czytelnośc zapytań.

    Odrzucam na razie problemy wydajności, sposoby komunikacji itp rzeczy
    skupiając się na powaznym (dla mnie) problemie wyrażenia treści zapytania.

    A co chce uzyskać: analogia jest taka że mam bazę faktów, np. obecności
    pojazdów na skrzyzowaniach, stanu świateł, ruchu pieszych, rucho
    komunikacji publicznej. Chcę z takiej bazy, posiadającej dużo niejawnych
    relacji (np. czerwony samochód który był 3 minuty temu na skrzyżowaniu X
    teraz przejechal na czerwonym skrzyzowaniu Y) wydobyć pewne scieżki
    przyczynowo-skutkowe. Rzeczywisty problem jest z innej, odległej
    dziedziny, ale analogia z ruchem ulicznym dobrze go przybliża.

    Czy Prolog? Nie wiem. Ale warto spróbować choćby dla doświadczenia.


  • 10. Data: 2012-09-09 16:04:20
    Temat: Re: Prolog - nawracanie - jak jest implementowane
    Od: A.L. <l...@a...com>

    On Sun, 09 Sep 2012 11:05:08 +0200, Sebastian Biały
    <h...@p...onet.pl> wrote:

    >On 2012-09-08 23:58, A.L. wrote:
    >> Ze co chcesz zrobic?... Niby jak Prolog ma "operowac na moich
    >> strukturach danych"?... Nie ma nijakich "twoich struktur danych" w
    >> Prologu
    >
    >Wiem, dlatego przypuszczam że nie tyle potrzebuje Prologa co pomysłow
    >solvera z Prologa do implementacji natywnej. Tak się składa że baza
    >wiedzy u mnie jest nie dość, że nietypowa, to jeszcze pochodzi z róznych
    >abstrakcyjnych źródeł, w tym niektórych dynamicznie zmieniających się.
    >
    >>> Przypuszczam że jak poszukam czegoś w rodzaju "embedded prolog" to będe
    >>> mogł zrobić abstrakcję na dane i niczego nie konwertować.
    >> Ze co?...
    >
    >Żeby włożyć Prolog do wnetrza mojej aplikacji. A w zasadzie sam solver z
    >otoczką.
    >
    >> Moze jednak powineines wziac jakas PORZADNA ksiazke o Prologu?
    >
    >Racja, lokalnie jednak niewiele mogę znaleźć, to malo poplurany temat w
    >PL, nawet lokalne biblioteki specjalistyczne albo niczgo nie oferują
    >albo "już wypozyczone, od 30 lat".
    >
    >>> zapytań w Prologu? Nie wierzę, że jest aż tak prymitywny jak opisywane w
    >>> książkach metody brute-force.
    >> To nie jest zadna metoda "brute force".
    >
    >Przeszukanie tej samej przestrzeni faktów miliony razy (jak opisywane w
    >ksiązkach) dla kazdego spasowania zmiennej brzmi jak brute-force.
    >

    Owszem, takie byly zarzurt gdy Prolog powstawal. Wszakze odkryto
    mechanizm zwany SLD Resolution, ktory okazal sie na tyle efektywny ze
    legl u podstaw efektywnego Prologu. To jest wlasnei tem "solver" o
    ktory pytasz, i opisany ejst dokaldnie w ksaize Maluszynakiego.

    Opisany jest tez tutaj

    http://www.cis.upenn.edu/~cis510/tcl/chap9.pdf

    A.L.

strony : [ 1 ] . 2


Szukaj w grupach

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: