هوش مصنوعی با پایتون – بخش هفتم – برنامهنویسی منطقی
مثالهایی از برنامهنویسی منطقی
در زیر مثالهایی آمده که میتوان آنها را با برنامهنویسی منطقی حل نمود.
تطبیق عبارات ریاضی
در حقیقت ما میتوانیم مقادیر ناشناخته را در ریاضیات با استفاده از برنامهنویسی منطقی به شکل مؤثری بیابیم. کد پایتونی که در ادامه میآید به شما کمک خواهد کرد تا یک عبارت ریاضی را تطبیق دهید:
ابتدا پکیجهایی که در ادامه میآید، import کنید:
from kanren import run, var, fact
from kanren.assoccomm import eq_assoccomm as eq
from kanren.assoccomm import commutative, associative
ما باید عملگرهای ریاضی را که میخواهیم استفاده کنیم تعریف نماییم:
add = ‘add’
mul = ‘mul’
هردو عملگر جمع و ضرب فرآیندهای ارتباطی هستند. ازاینرو باید آنها را مشخص کنیم و این کار به شرح زیر قابل انجام است:
fact(commutative, mul)
fact(commutative, add)
fact(associative, mul)
fact(associative, add)
تعریف متغیرها اجباری است. به تکه کد زیر دقت کنید:
a, b = var(‘a’), var(‘b’)
ما باید عبارت ریاضی را با الگوی اصلی تطبیق دهیم. ما الگوی اصلی را درواقع * b( 5 + a ) است داریم.
Original_pattern = (mul, (add, 5, a), b)
دو عبارت ریاضی زیر را برای تطبیق با الگوی اصلی در نظر میگیریم:
exp1 = (mul, 2, (add, 3, 1))
exp2 = (add,5,(mul,8,1))
خروجی را میتوان در زیر مشاهده نمود:
print(run(0, (a,b), eq(original_pattern, exp1)))
print(run(0, (a,b), eq(original_pattern, exp2)))
بعد از اجرای کد بالا ما خروجی زیر را خواهیم داشت:
((3,2))
()
اولین خروجی مقادیر a و b را مشخص میکند. عبارت اول با الگوی اصلی مطابقت دارد و مقادیر a و b را برمیگرداند اما عبارت دوم با عبارت اصلی مطابقت ندارد ازاینرو چیزی برگردانده نشده است.
قسمتهای دیگر مقاله را از لینکهای زیر مطالعه کنید:
هوش مصنوعی با پایتون – بخش هفتم – برنامهنویسی منطقی (قسمت اول)
هوش مصنوعی با پایتون – بخش هفتم – برنامهنویسی منطقی (قسمت سوم)
هوش مصنوعی با پایتون – بخش هفتم – برنامهنویسی منطقی (قسمت آخر)