LOGIC PROGRAMMING Bab 8 Dewi Liliana, M.Kom.

Slides:



Advertisements
Presentasi serupa
Design and Analysis of Algorithm Recursive Algorithm Analysis
Advertisements

OBJECT ORIENTED PROGRAMMING
2. Introduction to Algorithm and Programming
Relation
Pertemuan XIV FUNGSI MAYOR Assosiation. What Is Association Mining? Association rule mining: –Finding frequent patterns, associations, correlations, or.
1 Flowchart Techniques Is: A graphical representation of the sequence of operations in an information system program The plan to be followed when the program.
Korelasi Linier KUSWANTO Korelasi Keeratan hubungan antara 2 variabel yang saling bebas Walaupun dilambangkan dengan X dan Y namun keduanya diasumsikan.
K-Map Using different rules and properties in Boolean algebra can simplify Boolean equations May involve many of rules / properties during simplification.
1 DATA STRUCTURE “ STACK” SHINTA P STMIK MDP APRIL 2011.
BLACK BOX TESTING.
Interesting Interfaces Where We Are At Where We Are Going Contextual Inquiry – Ethnographic Techniques to collect raw data Prototype – Application.
Testing Implementasi Sistem Oleh :Rifiana Arief, SKom, MMSI
1 Pertemuan 09 Kebutuhan Sistem Matakuliah: T0234 / Sistem Informasi Geografis Tahun: 2005 Versi: 01/revisi 1.
1 Pertemuan 12 Pengkodean & Implementasi Matakuliah: T0234 / Sistem Informasi Geografis Tahun: 2005 Versi: 01/revisi 1.
1 Pertemuan > > Matakuliah: >/ > Tahun: > Versi: >
1 Pertemuan 21 Function Matakuliah: M0086/Analisis dan Perancangan Sistem Informasi Tahun: 2005 Versi: 5.
Pertemuan <<1>> Pengantar tentang database(01)
1 Pertemuan 26 NEURO FUZZY SYSTEM Matakuliah: H0434/Jaringan Syaraf Tiruan Tahun: 2005 Versi: 1.
Pertemuan XIV FUNGSI MAYOR Assosiation. What Is Association Mining? Association rule mining: –Finding frequent patterns, associations, correlations, or.
PERTEMUAN KE-6 UNIFIED MODELLING LANGUAGE (UML) (Part 2)
HAMPIRAN NUMERIK SOLUSI PERSAMAAN NIRLANJAR Pertemuan 3
Verb Tense Tense denotes the time of the action indicated by a verb. The time is not always the same as that indicated by the name of the tense.
1 Pertemuan 11 The Manipulative part of the object data model (Lanjutan bagian 2) Matakuliah: M0174/OBJECT ORIENTED DATABASE Tahun: 2005 Versi: 1/0.
1 HAMPIRAN NUMERIK SOLUSI PERSAMAAN LANJAR Pertemuan 5 Matakuliah: K0342 / Metode Numerik I Tahun: 2006 TIK:Mahasiswa dapat meghitung nilai hampiran numerik.
1 Pertemuan 11 Function dari System Matakuliah: M0446/Analisa dan Perancangan Sistem Informasi Tahun: 2005 Versi: 0/0.
Bayu Priyambadha, S.Kom.  Classes, which are the "blueprints" for an object and are the actual code that defines the properties and methods.  Objects,
13 Akuntansi Biaya Activity Based Costing
9.3 Geometric Sequences and Series. Objective To find specified terms and the common ratio in a geometric sequence. To find the partial sum of a geometric.
Binary Search Tree. Sebuah node di Binary Search Tree memiliki path yang unik dari root menurut aturan ordering – Sebuah Node, mempunyai subtree kiri.
ANIFUDDIN AZIS Himpunan Fuzzy dan Operasi Dasar. Dari Himpunan Klasik ke Himpunan Fuzzy Misal U adalah semesta pembicaraan yang berisi semua kemungkinan.
Visual Basic for Aplications in powerpoint. What is Visual Basic for Aplications? Visual Basic for Applications (VBA) is a very powerful objectoriented.
EIS (Executive Information Systems)
KOMUNIKASI DATA Materi Pertemuan 8.
Pert. 16. Menyimak lingkungan IS/IT saat ini
Induksi Matematika.
07/11/2017 BARISAN DAN DERET KONSEP BARISAN DAN DERET 1.
Notasi Object Oriented System
Logika Fuzzy dan aplikasinya
Membangun Web Site“Cantik”
Rekayasa Perangkat Lunak Class Diagram
Cartesian coordinates in two dimensions
Cartesian coordinates in two dimensions
Wumpus World Propositional Logic.
CLASS DIAGRAM.
Dasar-Dasar Pemrograman
SCIENTIFIC & NON SCIENTIFIC THINKING
Citra Noviyasari, S.Si, MT
Pertemuan <<18>> << Penemuan Fakta(01) >>
PARADIGM SHIFT JATI SURYANTO S.PD., MA.
Introduction to Sociology
BILANGAN REAL BILANGAN BERPANGKAT.
REAL NUMBERS EKSPONENT NUMBERS.
Pertemuan 1 Konsep Umum Pengetahuan
EIS (Executive Information Systems)
Kk ilo Associative entity.
Pertemuan 4 CLASS DIAGRAM.
How Can I Be A Driver of The Month as I Am Working for Uber?
Evidence-Based Medicine Prof. Carl Heneghan Director CEBM University of Oxford.
Speaking Strategies Applied by Students at “Kampung Inggris” in Pare Kediri Yudi Setyaningsih Universitas Ma Chung Malang.
HughesNet was founded in 1971 and it is headquartered in Germantown, Maryland. It is a provider of satellite-based communications services. Hughesnet.
If you are an user, then you know how spam affects your account. In this article, we tell you how you can control spam’s in your ZOHO.
CALL PC EXPERT How to Remove Adware, Pop- up Ads from Web Browser.
In this article, you can learn about how to synchronize AOL Mail with third-party applications like Gmail, Outlook, and Window Live Mail, Thunderbird.
Pemrograman berorientasi objek
Website: Website Technologies.
Media Pembelajaran PATHWAY TO ENGLISH Kelompok Peminatan Untuk SMA/MA Kelas X.
Draw a picture that shows where the knife, fork, spoon, and napkin are placed in a table setting.
2. Discussion TASK 1. WORK IN PAIRS Ask your partner. Then, in turn your friend asks you A. what kinds of product are there? B. why do people want to.
Wednesday/ September,  There are lots of problems with trade ◦ There may be some ways that some governments can make things better by intervening.
Transcript presentasi:

LOGIC PROGRAMMING Bab 8 Dewi Liliana, M.Kom

Programming Paradigms A pattern that serves as a school of thoughts for programming of computers Four main programming paradigms Imperative paradigm Object oriented paradigm Functional paradigm Logic paradigm

Imperative Paradigm Computation as a sequence of action “first do this and next do that” Stress on how the computation takes place than on what is being computed When solving a problem, put concern to method than meaning of the problem Example: Pascal, C, …

Object oriented Paradigm Data as well as operations are encapsulated in objects Objects interact by means of message passing Objects are grouped in classes Allows programming of the classes (as opposed to programming of individual object) Examples: C++, Java, …

Functional Paradigm Originates from purely mathematical discipline: the theory of functions Computation is based on functions Functions have the same status as others (numbers, lists, …) Functions are first-class values Example: LISP, Haskell, …

Logic Paradigm Based on mathematical logic. Specifies relationships among data values. Using explicit facts and rules to defines a base of knowledge Pose queries to the environment.

A brief of history Logic programming Prolog Introduced by Robert Kowalski in 1974 Algorithm = Logic + Control Prolog Programming in logic Programming language that uses logic programming for computing Introduced by Alain Colmerauer in 1970s

Prolog Implementasi Prolog yang digunakan SWI Prolog versi 5.6.32 Download free at http://www.swi-prolog.org/ Developed by Jan Wielemaker, University of Amsterdam There are some other implementations (e.g. SICStus Prolog, XSB, etc.)

LP Paradigm – Example 1 Setting up a database of flight connections Is there a direct flight from A to B? Can I fly from C to D? What are possible destinations I can reach from E? Etc.

LP Paradigm – Example 1 List of direct flights direct(jakarta,denpasar). direct(jakarta,surabaya). direct(denpasar,mataram). direct(mataram,kupang).

LP Paradigm – Example 1 To find connections between two cities: There is a connection from X to Y, if there is a direct flight from X to Y direct(X,Y) connection(X,Y). There is a connection from X to Y, if there is a direct flight from X to Z and a connection from Z to Y. direct(X,Z),connection(Z,Y)  connection(X,Y).

Program flight.pl Knowledge base = database consist of facts and rules direct(jakarta,denpasar). direct(jakarta,surabaya). direct(denpasar,mataram). direct(mataram,kupang). connection(X,Y) :- direct(X,Y). connection(X,Y) :- direct(X,Z),connection(Z,Y). Knowledge base = database consist of facts and rules

LP Paradigm – Example 1 To answer the previous questions: Write the program Run program with queries related to questions Q1: Is there a flight from Jakarta to Kupang? ?- connection(jakarta,kupang).

LP Paradigm – Example 1 Q2: Where can one fly from Denpasar? ?- connection(denpasar,X). Q3: Can someone fly from Kupang? ?- connection(kupang,X). Q4: From where can one fly to Kupang? ?- connection(X,kupang). Etc.

LP Paradigm – Example 1 Two aspects of Prolog Same program to compute answers to different problems (or queries) Program can be used much like a database Knowledge is stored in the form of facts and rules  deductive database Prolog models query processing in deductive database - Find the meaning of deductive or deduction (vs. inductive or induction)

LP Paradigm – Example 2 Finding all elements which are members of two given lists List: [a1,a2…,an] or [a1 | [a2…,an]] a1 is called head of [a1,a2…,an] [a2…,an] is called tail of [a1,a2…,an] Ex: [1,2,3,4,5] = [1 | [2,3,4,5]]

LP Paradigm – Example 2 We need to define when an element X is a member of a list If X is the head, then the answer is positive member(X,[X | List]). Otherwise, check whether X is a member of the tail member(X,List) member(X,[Y | List]). X is a member of both L1 and L2 if X is a member of L1 and X is a member of L2 member(X,L1),member(X,L2)  member_both(X,L1,L2)

Program list member(X,[X | List]). member(X,[Y | List]) :- member(X,List). member_both(X,List1,List2) :- member(X,List1),member(X,List2).

LP Paradigm – Example 2 Run the program to solve the problem ?- member_both(X,[1,2,3],[2,3,4,5]). How do we solve this problem in imperative programming style? (e.g. C)

#define SIZE1 3 #define SIZE2 4 void memberBoth(int a[],int b[],int c[]) { int i, j; int k=0; for (i=0;i<SIZE1;i++) { for (j=0;j<SIZE2;j++) { if (a[i] == b[j]) { c[k] = a[i]; k = k+1; } int main() { int list1[SIZE1] = {1,2,3}; int list2[SIZE2] = {2,3,4,5}; int result[SIZE2]; memberBoth(list1,list2,result); …

LP Paradigm – Example 2 Other aspects of Prolog: Searching mechanism does not need explicitly to be specified (it is implicitly given) Generate all elements of the first list, which are then tested for membership in the second list (cf. the rule) Prolog solution can be used in a number of ways (cf. C solution): Testing membership ?- member_both(2,[1,2,3],[2,3,4,5]). Instantiating an element of a list ?- member_both(2,[1,2,3],[X,3,4,5]).

LP Paradigm – Example 2 Other aspects of Prolog (cont’d): Prolog constructs a list dynamically No size of list has to be defined in advance (cf. use of array to represent list in C program) See the use of pointers to represent list in C See how list can be represented in Java

LP Paradigm – Example 3 Ontology – Animal Databases animal(mammal,tiger,carnivore,stripes). animal(mammal,hyena,carnivore,ugly). animal(mammal,lion,carnivore,mane). animal(mammal,zebra,herbivore,stripes). animal(bird,eagle,carnivore,large). animal(bird,sparrow,scavenger,small). animal(reptile,snake,carnivore,long). animal(reptile,lizard,scavenger,small).

Find (a) all the mammals, (b) all the carnivores that are mammals, (c) all the mammals with stripes, (d) whether there is a reptile that has a mane.

All the mammals: animal(mammal,X,Y,Z). All the carnivores that are mammals animal(mammal,X,carnivore,Z). c. All the mammals with stripes animal(mammal,X,Y,stripes). d. Whether there is a reptile that has a mane. animal(reptile,X,Y,mane).

LP Applications Reasoning agents Agent: perceive environment through sensors and act upon environment through actuators (Russell & Norvig, AI: a modern approach) Capabilities are characteristics of human-like intelligence Mental representation of the world Correct reasoning with this representation LP to encode (incomplete) world models, continuously update model upon the performance of an action, reason and draw logical conclusions based on world model

LP Applications Semantic web Current web content is for humans to read, not for computer programs to manipulate meaningfully “For the semantic web to function, computers must have access to structured collections of information and sets of inference rules that they can use to conduct automated reasoning.” (Tim Berners-Lee, 2001) LP is used to represent knowledge (in the form of rules) and reason on them (by making inferences with the rules)

LP Applications Semantic Web (cont’d) References: The Semantic Web, Tim Berners-Lee, et.al., Scientific American -- May 2001 (available online) Semantic Web Logic Programming Tools, Alferes, et.al. Workshop on Principles and Practice of Semantic Web Reasoning, at 19th Int. Conf. on Logic Programming (ICLP03) (available online) International Workshop on Applications of Logic Programming in the Semantic Web and Semantic Web Services. http://events.deri.at/alpsws2006

LP Applications Natural language processing (computational linguistics) LP is used to implement grammars Analyze the syntax Define the meaning (of a fragment of a natural language) Several applications Natural language queries to database Natural language system specification References: Attempto Controlled English (ACE): http://www.ifi.unizh.ch/attempto/description/index.html Natural Language Processing Techniques in Prolog: http://www.coli.uni-saarland.de/~kris/nlp-with-prolog/html

LP Applications Security protocol analysis Security protocols are designed to meet security properties Security protocols and security properties are specified using logic program Analysis of security protocols Model attackers’ capabilities using logic program Outputs traces of attacks (if exist) for specified bounded number of sessions References CoProVe: http://130.89.144.15/cgi-bin/psltl/show.cgi ProVerif: http://www.di.ens.fr/~blanchet/crypto-eng.html NRL Protocol Analyzer: http://chacs.nrl.navy.mil/projects/crypto.html

LP Applications Molecular biology Using inductive logic programming Understand relationship between chemical structure and activity of drugs Predicting mutagenesis to understand and predict carcinogenesis Predicting protein secondary structures Using constraint-based methods Workshops on constraint-based methods in bioinformatics 2005: http://www.dimi.uniud.it/dovier/WCB05 References Inductive Logic Programming: http://www.doc.ic.ac.uk/~shm/ilp.html

STUDI KASUS (PROLOG) PROLOG (Programming in Logic) terdiri dari logika dan kontrol. Logika: Fakta dan aturan yang menerangkan suatu problem Kontrol: implementasi algoritma menggunakan aturan Sintaks Prolog berbentuk klausa atau formula First Order Predicate Logic (FOL)

Contoh: Hubungan keluarga Ali Siti Abu Umi Diagram diatas menyatakan fakta : Ali dan Abu laki-laki Siti Perempuan Ali menikahi Siti Ali dan Siti punya anak Abu Ali bapak dari Abu Siti ibu dari Abu Ali dan Siti orangtua Abu Abu anak laki-laki dari Ali dan Siti

Sintaks Prolog Penulisan sintaks fakta: Ali laki-laki : lelaki(ali). Siti Perempuan: perempuan(siti). Ali menikahi Siti: menikah(ali,siti). Ali bapak dari Abu: bapak(ali,abu). Siti ibu dari Abu : ibu(siti,abu). Ali dan Siti orangtua Abu:ortu(ali,siti,abu). Abu anak dari Ali dan Siti: anak(abu,ali,siti). Ali dan Siti punya anak Abu: anak(abu,ali,siti).

Sintaks Prolog Penulisan sintaks aturan: Anak: Anak lelaki: anak(X,Y,Z) :- ortu(Y,Z,X). Anak lelaki: anaklaki(X,Y,Z) :- ortu(Y,Z,X),lelaki(X). Anak perempuan: anakpuan(X,Y,Z) :- ortu(Y,Z,X),perempuan(X).

Knowledge Base %Silsilah keluarga %fakta lelaki(ali). lelaki(abu). perempuan(siti). perempuan(umi). menikah(ali,siti). bapak(ali,abu). bapak(ali,umi). ibu(siti,abu). ibu(siti,umi). %aturan anak(X,Y,Z) :- bapak(Y,X),ibu(Z,X),menikah(Y,Z). ortu(X,Y,Z) :- anak(Z,X,Y). anaklaki(X,Y,Z) :- ortu(Y,Z,X),lelaki(X). anakpuan(X,Y,Z) :- ortu(Y,Z,X),perempuan(X). saudara(X,Y) :- anak(X,A,B),anak(Y,A,B), X\==Y.