زبان برنامه نویسی پرولوگ

Slides:



Advertisements
Similar presentations
Introduction to PROLOG ME 409 Lab - 1. Introduction to PROLOG.
Advertisements

Chapter Three: Lists, Operators, Arithmetic CS 461.
Chapter Three: Lists, Operators, Arithmetic 1. Chapter three: 3.1Representation of lists 3.2Some operations on lists 2.
1 Logic Programming. 2 A little bit of Prolog Objects and relations between objects Facts and rules. Upper case are variables. parent(pam, bob).parent(tom,bob).
Line Efficiency     Percentage Month Today’s Date
معاونت درمان امور مامایی اردیبهشت 90. برای ثبت اطلاعات در برنامه نرم افزاری نظام مراقبت مرگ پریناتال ابتدا لازم است برنامه نرم افزار info-path وپرنیان.
Decision Tree.
LINEAR CONTROL SYSTEMS Ali Karimpour Assistant Professor Ferdowsi University of Mashhad.
فایل پردازی در C File based Programming in C. انواع فایل متنی –سرعت بالا –حجم کمتر –امکان دسترسی تصادفی –حفظ امنیت داده ها دودویی (باینری) –امکان باز.
PHP Hypertext per processor کار می کند؟ PHP چگونه
Lesson four Grade three
1 بنام خدا زبان برنامه نویسی C (21814( Lecture 14 Structures.
COMP519: Web Programming Autumn 2007 Perl Tutorial: The very beginning A basic Perl Program The first line Comments and statements Simple printing Running.
به نام خدا برنامه سازی سمت سرور (php)
مظفر بگ محمدی دانشگاه ایلام Generics. کدهای عمومی 2 یکی از اهداف OOP ایجاد قابلیت نوشتن برنامه های عمومی با قابلیت استفاده ی مجدد است. کدهای چندریخت تا.
Data Types Modifiers Base data type Size Sign signed int 2 B unsigned float 4 B short double 8 B long char 1 B.
Jan 2016 Solar Lunar Data.
The 6 steps of data collection:
Q1 Jan Feb Mar ENTER TEXT HERE Notes
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
Prolog programming Introduction to Prolog (part2)
بنام خدا زبان برنامه نویسی C (21814( Lecture 12 Selected Topics
دانلود جدیدترین مقالات برق الکترونیک و کامپیوتر
Project timeline # 3 Step # 3 is about x, y and z # 2
Average Monthly Temperature and Rainfall
آزمایشگاه پایگاه داده ها قیود در جداول یک پایگاه داده در SQL Server
Odd-even merge sort مرتب سازی.
چگونه بفهمیم آیا ژورنالی ISI است؟ ایمپکت فاکتور دارد یا خیر؟
فصل دوم جبر بول.
نمايش اعداد در کامپيوتر چهار عمل اصلي
آشنایی با پایگاه داده mysql
Tree Sort.
2017 Jan Sun Mon Tue Wed Thu Fri Sat
دینامیک سیستمهای قدرت مدرس: دکتر مهدی بانژاد
بنام خدا زبان برنامه نویسی C (21814( Lecture 3 Chapter 4
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
Gantt Chart Enter Year Here Activities Jan Feb Mar Apr May Jun Jul Aug
وبلاگ جامع مهندسی برق و الکترونیک
Q1 Q2 Q3 Q4 PRODUCT ROADMAP TITLE Roadmap Tagline MILESTONE MILESTONE
Free PPT Diagrams : ALLPPT.com
پشته و صف پیوندی Give qualifications of instructors: DAP
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
فصل ششم مدارهای ترتیبی.
ساختمان داده‌ها درختان و درختان دودویی
kbkjlj/m/lkiubljj'pl;
ساختمان داده ها مرتب سازی درجی
Step 3 Step 2 Step 1 Put your text here Put your text here
پشته و صف پیوندی Give qualifications of instructors: DAP
Calendar Year 2009 Insure Oklahoma Total & Projected Enrollment
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
MONTH CYCLE BEGINS CYCLE ENDS DUE TO FINANCE JUL /2/2015
Jan Sun Mon Tue Wed Thu Fri Sat
Electricity Cost and Use – FY 2016 and FY 2017
Text for section 1 1 Text for section 2 2 Text for section 3 3
Text for section 1 1 Text for section 2 2 Text for section 3 3
Text for section 1 1 Text for section 2 2 Text for section 3 3
Text for section 1 1 Text for section 2 2 Text for section 3 3
Q1 Q2 Q3 Q4 PRODUCT ROADMAP TITLE Roadmap Tagline MILESTONE MILESTONE
Free PPT Diagrams : ALLPPT.com
Text for section 1 1 Text for section 2 2 Text for section 3 3
Text for section 1 1 Text for section 2 2 Text for section 3 3
Text for section 1 1 Text for section 2 2 Text for section 3 3
Text for section 1 1 Text for section 2 2 Text for section 3 3
Text for section 1 1 Text for section 2 2 Text for section 3 3
Text for section 1 1 Text for section 2 2 Text for section 3 3
Project timeline # 3 Step # 3 is about x, y and z # 2
TIMELINE NAME OF PROJECT Today 2016 Jan Feb Mar Apr May Jun
Q1 Q2 Q3 Q4 PRODUCT ROADMAP TITLE Roadmap Tagline MILESTONE MILESTONE
Presentation transcript:

زبان برنامه نویسی پرولوگ Prolog Programming In logic هوش مصنوعی 1

انواع داده در پرولوگ symbol string ” “ char integer real می توان نوع جدید (ساختار) تعریف نمود زبان پرولوگ به حروف حساس است. متغیرها با حروف بزرگ شروع می شوند در پرولوگ متغیرها دو وضعیت bound و unbound دارند و فقط یک بار مقدار می گیرند X = 3 اگر X از قبل مقدار دارد مقایسه می کند و اگر مقدار ندارد انتساب می دهد استنتاج در پرولوگ به صورت backward chaning است. 1

رابطه خویشاوندی در پرولوگ parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). male(tom). male(bob). male(jim). female(pam). female(ann). female(pat). female(liz). pam tom bob liz ann pat jim 1

مسند (محمول) در پرولوگ Goal: predicates parent(bob, pat) Yes parent(bob, jim) No parent(X, pat) X=bob parent(X, ann), parent(X, pat) X=bob parent(pam, X) X = bob predicates parent(symbol, symbol) male(symbol) female(symbol) clauses parent(pam,bob). parent(tom,bob). male(tom). male(bob). female(pat). female(liz). 1

نحوه اجرای دستورات در پرولوگ Goal: parent(X, jim), parent(Y,X) X = pat, Y=bob با 2 بار جستجو به جواب می رسد parent(Y,X), parent(X, jim) Y=bob, X = jim برای هر Y باید تمامی موارد X چک شود از دید منطقی دو دستور فرقی ندارند اما از دید روالی نحوه اجرای دستورات مهم است Alt + R اجرا Alt + E ویرایش 1

انواع داده در پرولوگ domains datatype = date(integer, symbol, integer) predicates birth(symbol, datatype) clauses birth(ali, date(1990, september,20)). birth(ali, date(1992, july,20)). birth(ahmad, date(1990, october,12)). Goal: birth(ahmad, X). X=date(1990, october,12) 1

یکسان سازی Unification پرولوگ در زمان اجرای دستورات ابتدا واقعیات (اصول موضوعی) را چک می کند و سپس با انجام عمل یکسان سازی بر اساس قوانین پایگاه دانش استنتاج می کند. predicates offspring(symbol,symbol) فرزند mother(symbol,symbol) clauses offspring(pat, bob) mother(X,Y) :- parent(X,Y) , female(X). 1

ادامه رابطه خویشاوندی predicates sister(symbol,symbol) clauses sister(X,Y) :- parent(Z, X) , parent(Z,Y), female(X). Goal: sister(liz, X) X= bob X= liz sister(X,Y) :- parent(Z, X) , parent(Z,Y), female(X) , X<>Y. 1

ادامه رابطه خویشاوندی تابع بازگشتی predicates grandparent(symbol,symbol) clauses grandparent (X,Y) :- parent(X, Z) , parent(Z,Y). تابع بازگشتی predecessor(symbol,symbol) predecessor(X,Y) :- parent(X, Y). predecessor(X,Y) :- parent(Z, Y), predecessor(X,Z). 1

ادامه رابطه خویشاوندی pam tom bob liz ann pat jim 1

ادامه رابطه خویشاوندی pam tom bob liz ann pat jim 1

ادامه رابطه خویشاوندی pam tom bob liz ann pat jim 1

نمايش درختي مدارات الكتريكي 1

نمايش درختي مدارات الكتريكي 1

نمايش درختي خط و مثلث 1

نمايش درختي خط و مثلث 1

ليست ها LISTS 1

نمايش درختي ليست [ann, tennis, tom, skiing] 1

رابطه عضویت و ادغام member(X , [X | L]). member(X , [Head | Tail]) :- member(X , Tail). conc([ ] , L , L). conc([X | L1] , L2 , [X | L3]) :- con(L1 , L2 , L3). 1

رابطه ادغام ?- conc(L1 , L2 , [a, b, c]). L1=[ ] L2=[a, b, c] L1=[a] L2=[b, c] L1=[a, b] L2=[c] L1=[a, b, c] L2=[ ] ?- conc(Before , [may | After], [jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec]). Before = [jan,feb,mar,apr] After = [jun,jul,aug,sep,oct,nov,dec] 1

رابطه ادغام ?- conc(_ , [Month1, may ,Month2 | _], [jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec]). Month1 = apr Month2 = jun 1

رابطه عضویت با استفاده از ادغام member1(X, L) :- conc (L1, [X|L2] , L). L L1 X L2 [X|L2] 1

رابطه عضویت با استفاده از ادغام 1

اضافه به و حذف از لیست add( X, L, [X|L]). del( X, [X|Tail], Tail). del( X, [Y|Tail], [Y|Tail1]) :- del( X, Tail, Tail1). مثال: ?- del( a, [a, b, a, a], L). L = [b, a, a] L = [a, b, a] 1

درج مثال: ?- del( a, L, [m, n, p]). L = [a, m, n, p] L = [m, a, n, p] L = [m, n, a, p] L = [m, n, p, a] insert(X, List, BiggerList) :- del( X, BiggerList, List). رابطه عضویت با استفاده از del member2(X, List) :- del ( X , List, _). 1

زیر لیست sublist( S, L) :- conc( L1, L2 , L), conc( S, L3, L2). ?- sublist( S, [a, b, c]) S= [] S= [a] S= [a,b] S= [a,b,c] S= [] S= [b] S= [b,c] S= [] S= [c] S= [] L2 1

جایگشت permutation( [ ], [ ]). permutation( [X|L], P) :- permutation( L, L1), insert( X, L1, P). X L permute L L2 L1 L1 is a permutation of L Insert X obtaining a permutation of [X | L] 1

جایگشت permutation2( [ ], [ ]). permutation2( L, [X|P]) :- del ( X, L, L1), permutation ( L1, P). 1

لیست معکوس reverse( [ ], [ ]) . reverse( [X|Tail], L) :- reverse (Tail, L1), conc (L1, [X] , L). 1

تمرين 1. evenlength(List) 2. oddlength(List) 3. shift (L1, L2) 4. palindrome(List) such as [m, a, d, a, m] 5. translate(List1, List 2) such as translate([1 , 2], [one, two]) use means(0, zero), means(1, one), … 6. flatten(List , FlatList) ?- flatten([a,b,[c,d],[ ],[[[e]]],f],L) L= [a,b,c,d,e,f] 1