24
Logičko programiranje u Prologu

5.Logičko programiranje

  • Upload
    reuif

  • View
    34

  • Download
    1

Embed Size (px)

DESCRIPTION

Logicko progrmiranje

Citation preview

  • Logiko programiranjeu Prologu

  • Logiko programiranje Logiko programiranje (engl. logic programming) uporaba matematike logike za programiranje Ideja: opisati problem logikim formulama, a rjeavanjeprepustiti raunalu "Algorithm = Logic + Control Razliito od dokazivaa teorema (ATP) jer: U program su ugraneni eksplicitni kontrolni mehanizmi Nije podrana puna ekspresivnost logike

  • DEKLARATIVNI PROGRAMSKI JEZICI deklarativni jezici opisuju to se izraunava umjesto kakose to izraunava zadaje se specifikacija skupa uvjeta koji definirajuprostor rjeenja pronalaenje rjeenja preputeno je interpreteru osnovne karakteristike: eksplicitno stanje umjesto implicitno stanje nema popratnih efekata (engl. side-effects) programiranje s izrazima funkcijski jezici: izraz=fukcija logiki jezici: izraz=relacija

  • DEKLARATIVNI JEZICI isto deklarativni (engl. purely declarative) jezici nedozvoljavaju popratne efekte Haskell, ... radi praktinosti veina deklarativnih jezika doputakontrolirane popratne efekte (declarative in style) Lisp, SML, Ocaml, Prolog, ... pogodnosti: formalno koncizni, visoka razina apstrakcije laka formalna verifikacija manja mogunost pogreke nedostaci: neuinkovitost neke strukture/funkcije iziskuju popratne efekte (npr.?)

  • PROLOG Prolog = Programming in Logic deklarativni logiki programski jezik 1972.: Alan Colmerauer, Robert Kowalski, PhilippeRoussel originalno razvijen za NLP fundamentalni koncepti: rekurzija unifikacija postupak vraanja (backtracking) nije isto deklarativan: "Algorithm = Logic + Control (A B) C (B A) C

  • HORNOVE FORMULEProgrami u Prologu sainjeni su od slijeda pravila Svako pravilo je FOPL formula u Hornovom obliku: ~P1 P2 P3 ... Pn Q tj. klauzula u kojoj je najvie jedan literal pozitivan Ekvivalentno: (P1 P2 P3 ... Pn) Q Specijalan sluaj za Pi = true: true Q == Q Zakljuivanje nad Hornovim formulama: primjeni modus ponens dokle god je mogue Naalost, ne moe se svaka formula pretvoriti u Hornovoblik .... ~P Q ... niti moemo s MP dokazati svaku logiku posljedicu