SlideShare a Scribd company logo
1 of 20
Download to read offline
Bahasa Pemrograman (IKP213)

  Pertemuan 5: Prolog, 22 November
                2011
Pemrograman Prolog
• Pemrograman Deklaratif
  – Fakta; Aturan-aturan deduksi
• First-Order Predicate Logic
• Execution Engine
  – unification; resolution
• Horn Clause
• Disjunctive Normal Forms

                    Pemrograman Prolog – IKP213   2
Contoh Silsilah Keluarga




       Pemrograman Prolog – IKP213   3
Fakta Silsilah Keluarga
parent(tom,bob).
parent(pam,bob).
parent(tom,liz).
parent(bob,ann).
parent(bob,pat).
parent(pat,jim).
• Relasi dengan arity 2
• parent/2

                  Pemrograman Prolog – IKP213   4
Kueri Prolog
parent(tom, X).
X = bob ;
X = liz ;
false.
• Siapa yang memiliki tom sebagai orang tua?
parent(Y, ann).
Y = bob ;
false.
• Siapa orang tua dari ann?
                 Pemrograman Prolog – IKP213   5
Kueri Prolog
parent(X, Y).
• Menampilkan semua fakta
• Cari semua X dan Y yang memenuhi relasi
  parent
• Substitusi variabel dengan atom di dalam
  fakta yang ada



                 Pemrograman Prolog – IKP213   6
Kueri Prolog
• Tidak ada atom yang dapat mensubstitusi:
  false
parent(badu, Y).
false.




                 Pemrograman Prolog – IKP213   7
Fakta-fakta Baru
female(pam).
female(liz).
female(pat).
female(ann).
male(tom).
male(bob).
male(jim).
• Relasi dengan arity 1

                  Pemrograman Prolog – IKP213   8
Konjungsi Kueri
• Siapa grandparent dari jim?
  – Siapa parent dari jim? Y
  – Siapa parent dari Y? X
  – X adalah grandparent dari jim
• parent(Y, jim), parent(X, Y).
• Cari seseorang, Y, yang menjadi parent dari jim
  dan cari X yang menjadi orang tua dari Y


                   Pemrograman Prolog – IKP213   9
Rules
offspring(X, Y) :- parent(Y, X).
• X adalah offspring dari Y, jika Y adalah parent
  dari X
mother(X,Y) :- parent(X,Y),
  female(X).
• X adalah mother dari Y, jika X adalah parent
  dari Y dan X adalah female


                   Pemrograman Prolog – IKP213      10
Horn Clause
• u :- p, q, r, .. t.
• u  (p ˄ q ˄ r . . ˄ t)
• to show U holds,
  • show P holds and show Q holds . . and show T
    holds




                    Pemrograman Prolog – IKP213    11
Horn Clause
• Logical clause
  – A set of disjuncts
  – a set of literals, combined with logical OR
• Easy to prove
  – one literal True, the whole clause must be True
• Horn Clause
  – Logical clause with at most 1 positive literals
  – -a ˅ -b ˅ -c ˅ . . . –y ˅ z

                     Pemrograman Prolog – IKP213      12
Logical Equivalence
• PQ
  – -Q  -P
• -P ˅ Q
• Back to Horn Clause:
  • u  (p ˄ q ˄ r ˄ . . . ˄ t)
  – u ˅ -(p ˄ q ˄ r ˄ . . . ˄ t)
  – u ˅ -p ˅ -q ˅ -r ˅ . . . ˅ -t


                        Pemrograman Prolog – IKP213   13
Computational Complexity
• It is linear time solvable
   – Diberikan data sejumlah N, ada waktu yang cukup
     untuk mendapatkan jawaban yang dicari
• NP-Complete
   – Seberapa banyak pun waktu yang kita miliki, tak
     akan cukup untuk mendapatkan jawaban yang
     dicari



                    Pemrograman Prolog – IKP213        14
Contoh
•   m(X,Y) :- p(X,Y), f(X).
•   mp˄f
•   m ˅ -(p ˄ f)
•   m ˅ -p ˅ -f




                       Pemrograman Prolog – IKP213   15
Unifikasi
• parent(X, liz).
   – Periksa semua fakta yang diberikan
   – Untuk fakta yang sama, terapkan algoritma Unifikasi
   – Disagreement set
• parent(X, liz) dengan parent(tom, bob).
   – disagreement set {X, tom}
   – fail
• parent(X, liz) dengan parent(tom, liz).
   – disagreement set {X, tom}
   – success

                      Pemrograman Prolog – IKP213          16
Resolusi
• offspring(X, liz)
   – Terapkan algoritma unifikasi untuk rule
     offspring(X, Y)
   – disagreement set {liz, Y}
   – resolusi / menggantikan Head Goal offspring(X, Y)
     dengan sub-goal parent(Y, X)
   – unifikasi Y dengan liz pada sub-goal parent(Y, X)
• Unifikasi sub-goal parent(liz, X)

                      Pemrograman Prolog – IKP213        17
Latihan
•   Siapa grandparent dari ann?
•   Siapa grandchild dari bob?
•   Tuliskan rule aunt(X, Y)
•   Tuliskan rule hastwochildren(X)
•   Tuliskan rule hasdaughter(X)
•   Tuliskan rule grandchildren(X, Y)



                     Pemrograman Prolog – IKP213   18
Pustaka
• SWI-Prolog, http://www.swi-prolog.org/
• GNU-Prolog
• Ivan Bratko, "Prolog Programming for Artificial
  Intelligence"
• http://tjerdastangkas.blogspot.com/search/label/ikp213




                       Pemrograman Prolog – IKP213         19
Akhir Pertemuan 6

Rabu, 19 Oktober 2011

More Related Content

Viewers also liked

Implication Of Web Chat Channel On Business
Implication Of Web Chat Channel On BusinessImplication Of Web Chat Channel On Business
Implication Of Web Chat Channel On Businessmunishvirang
 
Presentation workshop
Presentation workshopPresentation workshop
Presentation workshopSponderEdTech
 
Premios dia del libro 2016
Premios dia del libro 2016Premios dia del libro 2016
Premios dia del libro 2016XXX XXX
 
Charla uso tecnologías 3 er ciclo
Charla uso tecnologías 3 er cicloCharla uso tecnologías 3 er ciclo
Charla uso tecnologías 3 er cicloXXX XXX
 
Ironhack presentation
Ironhack presentationIronhack presentation
Ironhack presentationpristella84
 
Living in a Post-Morrison World
Living in a Post-Morrison WorldLiving in a Post-Morrison World
Living in a Post-Morrison WorldReed Kathrein
 
Inclusion, Quesnel district staff
Inclusion, Quesnel district staff Inclusion, Quesnel district staff
Inclusion, Quesnel district staff Faye Brownlie
 
Roadmap and Technology Incubators
Roadmap and Technology IncubatorsRoadmap and Technology Incubators
Roadmap and Technology IncubatorsAngelo Corsaro
 
Cyberpolitics W12 Part Ii
Cyberpolitics W12 Part IiCyberpolitics W12 Part Ii
Cyberpolitics W12 Part Iioiwan
 
Osam Mardin Professional Samples1
Osam Mardin Professional Samples1Osam Mardin Professional Samples1
Osam Mardin Professional Samples1mardinor
 
獨立媒體六四專輯
獨立媒體六四專輯獨立媒體六四專輯
獨立媒體六四專輯oiwan
 
PHP & XML: SimpleXML, DOMDocument
PHP & XML: SimpleXML, DOMDocumentPHP & XML: SimpleXML, DOMDocument
PHP & XML: SimpleXML, DOMDocumentValentin Bora
 
Ingalaterra Eta Portugal
Ingalaterra Eta PortugalIngalaterra Eta Portugal
Ingalaterra Eta Portugalguestd4e08
 
Addressing the Challenges of Tactical Information Management in Net-Centric S...
Addressing the Challenges of Tactical Information Management in Net-Centric S...Addressing the Challenges of Tactical Information Management in Net-Centric S...
Addressing the Challenges of Tactical Information Management in Net-Centric S...Angelo Corsaro
 
In Memoriam Octavian Paler
In Memoriam Octavian PalerIn Memoriam Octavian Paler
In Memoriam Octavian Palerpuicarmariana
 

Viewers also liked (20)

ikp321-01
ikp321-01ikp321-01
ikp321-01
 
Implication Of Web Chat Channel On Business
Implication Of Web Chat Channel On BusinessImplication Of Web Chat Channel On Business
Implication Of Web Chat Channel On Business
 
Presentation workshop
Presentation workshopPresentation workshop
Presentation workshop
 
Premios dia del libro 2016
Premios dia del libro 2016Premios dia del libro 2016
Premios dia del libro 2016
 
Charla uso tecnologías 3 er ciclo
Charla uso tecnologías 3 er cicloCharla uso tecnologías 3 er ciclo
Charla uso tecnologías 3 er ciclo
 
Ironhack presentation
Ironhack presentationIronhack presentation
Ironhack presentation
 
Выход Есть!
Выход Есть!Выход Есть!
Выход Есть!
 
Living in a Post-Morrison World
Living in a Post-Morrison WorldLiving in a Post-Morrison World
Living in a Post-Morrison World
 
Inclusion, Quesnel district staff
Inclusion, Quesnel district staff Inclusion, Quesnel district staff
Inclusion, Quesnel district staff
 
Roadmap and Technology Incubators
Roadmap and Technology IncubatorsRoadmap and Technology Incubators
Roadmap and Technology Incubators
 
Cyberpolitics W12 Part Ii
Cyberpolitics W12 Part IiCyberpolitics W12 Part Ii
Cyberpolitics W12 Part Ii
 
Sph 107 Ch 7
Sph 107 Ch 7Sph 107 Ch 7
Sph 107 Ch 7
 
Osam Mardin Professional Samples1
Osam Mardin Professional Samples1Osam Mardin Professional Samples1
Osam Mardin Professional Samples1
 
ikh323-03
ikh323-03ikh323-03
ikh323-03
 
獨立媒體六四專輯
獨立媒體六四專輯獨立媒體六四專輯
獨立媒體六四專輯
 
PHP & XML: SimpleXML, DOMDocument
PHP & XML: SimpleXML, DOMDocumentPHP & XML: SimpleXML, DOMDocument
PHP & XML: SimpleXML, DOMDocument
 
Ingalaterra Eta Portugal
Ingalaterra Eta PortugalIngalaterra Eta Portugal
Ingalaterra Eta Portugal
 
Addressing the Challenges of Tactical Information Management in Net-Centric S...
Addressing the Challenges of Tactical Information Management in Net-Centric S...Addressing the Challenges of Tactical Information Management in Net-Centric S...
Addressing the Challenges of Tactical Information Management in Net-Centric S...
 
SPH 106 Ch 1
SPH 106 Ch 1SPH 106 Ch 1
SPH 106 Ch 1
 
In Memoriam Octavian Paler
In Memoriam Octavian PalerIn Memoriam Octavian Paler
In Memoriam Octavian Paler
 

More from Anung Ariwibowo (20)

isd314-06-association-mining
isd314-06-association-miningisd314-06-association-mining
isd314-06-association-mining
 
ikp213-unifikasi
ikp213-unifikasiikp213-unifikasi
ikp213-unifikasi
 
ikp213-01-pendahuluan
ikp213-01-pendahuluanikp213-01-pendahuluan
ikp213-01-pendahuluan
 
ikd312-05-sqlite
ikd312-05-sqliteikd312-05-sqlite
ikd312-05-sqlite
 
ikd312-05-kalkulus-relasional
ikd312-05-kalkulus-relasionalikd312-05-kalkulus-relasional
ikd312-05-kalkulus-relasional
 
ikd312-04-aljabar-relasional
ikd312-04-aljabar-relasionalikd312-04-aljabar-relasional
ikd312-04-aljabar-relasional
 
ikd312-03-design
ikd312-03-designikd312-03-design
ikd312-03-design
 
ikd312-02-three-schema
ikd312-02-three-schemaikd312-02-three-schema
ikd312-02-three-schema
 
ikp213-02-pendahuluan
ikp213-02-pendahuluanikp213-02-pendahuluan
ikp213-02-pendahuluan
 
ikh311-08
ikh311-08ikh311-08
ikh311-08
 
ikh311-07
ikh311-07ikh311-07
ikh311-07
 
ikh311-06
ikh311-06ikh311-06
ikh311-06
 
ikh311-05
ikh311-05ikh311-05
ikh311-05
 
ikp321-svn
ikp321-svnikp321-svn
ikp321-svn
 
ikh311-04
ikh311-04ikh311-04
ikh311-04
 
ikp321-05
ikp321-05ikp321-05
ikp321-05
 
imsakiyah-jakarta-1433-09
imsakiyah-jakarta-1433-09imsakiyah-jakarta-1433-09
imsakiyah-jakarta-1433-09
 
ikh311-03
ikh311-03ikh311-03
ikh311-03
 
ikp321-04
ikp321-04ikp321-04
ikp321-04
 
ikp321-03
ikp321-03ikp321-03
ikp321-03
 

ikp213-06-horn-clause

  • 1. Bahasa Pemrograman (IKP213) Pertemuan 5: Prolog, 22 November 2011
  • 2. Pemrograman Prolog • Pemrograman Deklaratif – Fakta; Aturan-aturan deduksi • First-Order Predicate Logic • Execution Engine – unification; resolution • Horn Clause • Disjunctive Normal Forms Pemrograman Prolog – IKP213 2
  • 3. Contoh Silsilah Keluarga Pemrograman Prolog – IKP213 3
  • 5. Kueri Prolog parent(tom, X). X = bob ; X = liz ; false. • Siapa yang memiliki tom sebagai orang tua? parent(Y, ann). Y = bob ; false. • Siapa orang tua dari ann? Pemrograman Prolog – IKP213 5
  • 6. Kueri Prolog parent(X, Y). • Menampilkan semua fakta • Cari semua X dan Y yang memenuhi relasi parent • Substitusi variabel dengan atom di dalam fakta yang ada Pemrograman Prolog – IKP213 6
  • 7. Kueri Prolog • Tidak ada atom yang dapat mensubstitusi: false parent(badu, Y). false. Pemrograman Prolog – IKP213 7
  • 9. Konjungsi Kueri • Siapa grandparent dari jim? – Siapa parent dari jim? Y – Siapa parent dari Y? X – X adalah grandparent dari jim • parent(Y, jim), parent(X, Y). • Cari seseorang, Y, yang menjadi parent dari jim dan cari X yang menjadi orang tua dari Y Pemrograman Prolog – IKP213 9
  • 10. Rules offspring(X, Y) :- parent(Y, X). • X adalah offspring dari Y, jika Y adalah parent dari X mother(X,Y) :- parent(X,Y), female(X). • X adalah mother dari Y, jika X adalah parent dari Y dan X adalah female Pemrograman Prolog – IKP213 10
  • 11. Horn Clause • u :- p, q, r, .. t. • u  (p ˄ q ˄ r . . ˄ t) • to show U holds, • show P holds and show Q holds . . and show T holds Pemrograman Prolog – IKP213 11
  • 12. Horn Clause • Logical clause – A set of disjuncts – a set of literals, combined with logical OR • Easy to prove – one literal True, the whole clause must be True • Horn Clause – Logical clause with at most 1 positive literals – -a ˅ -b ˅ -c ˅ . . . –y ˅ z Pemrograman Prolog – IKP213 12
  • 13. Logical Equivalence • PQ – -Q  -P • -P ˅ Q • Back to Horn Clause: • u  (p ˄ q ˄ r ˄ . . . ˄ t) – u ˅ -(p ˄ q ˄ r ˄ . . . ˄ t) – u ˅ -p ˅ -q ˅ -r ˅ . . . ˅ -t Pemrograman Prolog – IKP213 13
  • 14. Computational Complexity • It is linear time solvable – Diberikan data sejumlah N, ada waktu yang cukup untuk mendapatkan jawaban yang dicari • NP-Complete – Seberapa banyak pun waktu yang kita miliki, tak akan cukup untuk mendapatkan jawaban yang dicari Pemrograman Prolog – IKP213 14
  • 15. Contoh • m(X,Y) :- p(X,Y), f(X). • mp˄f • m ˅ -(p ˄ f) • m ˅ -p ˅ -f Pemrograman Prolog – IKP213 15
  • 16. Unifikasi • parent(X, liz). – Periksa semua fakta yang diberikan – Untuk fakta yang sama, terapkan algoritma Unifikasi – Disagreement set • parent(X, liz) dengan parent(tom, bob). – disagreement set {X, tom} – fail • parent(X, liz) dengan parent(tom, liz). – disagreement set {X, tom} – success Pemrograman Prolog – IKP213 16
  • 17. Resolusi • offspring(X, liz) – Terapkan algoritma unifikasi untuk rule offspring(X, Y) – disagreement set {liz, Y} – resolusi / menggantikan Head Goal offspring(X, Y) dengan sub-goal parent(Y, X) – unifikasi Y dengan liz pada sub-goal parent(Y, X) • Unifikasi sub-goal parent(liz, X) Pemrograman Prolog – IKP213 17
  • 18. Latihan • Siapa grandparent dari ann? • Siapa grandchild dari bob? • Tuliskan rule aunt(X, Y) • Tuliskan rule hastwochildren(X) • Tuliskan rule hasdaughter(X) • Tuliskan rule grandchildren(X, Y) Pemrograman Prolog – IKP213 18
  • 19. Pustaka • SWI-Prolog, http://www.swi-prolog.org/ • GNU-Prolog • Ivan Bratko, "Prolog Programming for Artificial Intelligence" • http://tjerdastangkas.blogspot.com/search/label/ikp213 Pemrograman Prolog – IKP213 19
  • 20. Akhir Pertemuan 6 Rabu, 19 Oktober 2011