متفرقه برنامه نویسی منطقی

  • نویسنده موضوع MAHl
  • تاریخ شروع
  • پاسخ‌ها 5
  • بازدیدها 168
  • کاربران تگ شده هیچ

MAHl

عکاس انجمن + مدیر بازنشسته فرهنگ و مذهب
هنرمند انجمن
تاریخ ثبت‌نام
21/4/21
ارسالی‌ها
1,032
پسندها
32,355
امتیازها
59,573
مدال‌ها
23
سن
20
سطح
33
 
  • نویسنده موضوع
  • #1
برنامه‌نویسی منطقی یک پارادایم برنامه‌نویسی است که بیشتر آن مبتنی بر منطق صوری است. هر برنامه نوشته‌شده به یک زبان برنامه‌نویسی منطقی مجموعه‌ای از جمله‌ها است که حالت منطقی دارند، که آن جمله‌ها بیانگر «واقعیت» و «قاعده» دربارهٔ یک دامنه مسئله هستند. خانواده‌های زبان برنامه‌نویسی منطقی اصلی شامل پرولوگ، برنامه‌نویسی مجموعه جواب (ASP) و دیتالاگ است. در همه این زبان‌ها، «قاعده‌ها» به حالت «بند» نوشته می‌شوند:

H :- B1, …, Bn.
که به صورت اعلانی به صورت پیامد منطقی خوانده می‌شود:

H if B1 and … and Bn.
به H «راس» یا «سر» قاعده گفته می‌شود، و به B1, … , Bn «بدنه» گفته می‌شود. «واقعیت» قاعده‌ای است که بدنه ندارد.
 
امضا : MAHl

MAHl

عکاس انجمن + مدیر بازنشسته فرهنگ و مذهب
هنرمند انجمن
تاریخ ثبت‌نام
21/4/21
ارسالی‌ها
1,032
پسندها
32,355
امتیازها
59,573
مدال‌ها
23
سن
20
سطح
33
 
  • نویسنده موضوع
  • #2
در ساده‌ترین حالت که H, B1, … , Bn همه شان فرمول اتمی هستند، به این بندها بند معین یا بند هورن گفته می‌شود. با این حال گسترش‌های زیادی برای این حالت ساده وجود دارد، که مهمترین گسترش حالتی است که شرط‌های موجود در بدنه بند، توانمندی "نقیض فرمول اتمی بودن" را نیز دارند. زبان‌های برنامه‌نویسی منطقی که شامل این گسترش هستند، توانمندی‌های نمایش دانش را برای منطق غیریکنواخت دارند.

در ASP و Dataloog، برنامه‌های منطقی را فقط به صورت اعلانی می‌توان خواند، و اجرایشان توسط فرایند اثبات، یا مولد مدل انجام می‌شود، که این رفتار در آن‌ها توسط برنامه‌نویس قابل کنترل نیست. با این حال در خانواده پرولوگ از زبان‌ها، برنامه‌های منطقی یک تفسیر رویه‌ای هم وجود دارد، که به صورت «رویه‌های کاهش هدف» است:

to solve...
لطفا برای مشاهده کامل مطالب در انجمن ثبت نام کنید.
 
امضا : MAHl

MAHl

عکاس انجمن + مدیر بازنشسته فرهنگ و مذهب
هنرمند انجمن
تاریخ ثبت‌نام
21/4/21
ارسالی‌ها
1,032
پسندها
32,355
امتیازها
59,573
مدال‌ها
23
سن
20
سطح
33
 
  • نویسنده موضوع
  • #3
که بر اساس مثالی از آقای تری وینوگراد است، و هدفش توضیح زبان برنامه‌نویسی پلانر است. به عنوان یک بند در برنامه منطقی، از آن هم به عنوان «یک روند برای آزمون آنکه آیا X خطاپذیر است، توسط آزمون آنکه X انسان است استفاده می‌شود»، و هم به صورت «رویه یافتن یک X که خطاپذیر است، از طریق یافتن یک X که انسان است» به کار می‌رود. حتی واقعیت‌ها هم تفسیر رویه‌ای دارند.
 
امضا : MAHl

MAHl

عکاس انجمن + مدیر بازنشسته فرهنگ و مذهب
هنرمند انجمن
تاریخ ثبت‌نام
21/4/21
ارسالی‌ها
1,032
پسندها
32,355
امتیازها
59,573
مدال‌ها
23
سن
20
سطح
33
 
  • نویسنده موضوع
  • #4
هم قابلیت استفاده به صورت رویه‌ای برای نشان دادن آنکه سقراط انسان است، و هم به صورت رویه‌ای برای یافتن یک X که انسان است، با «انتساب» سقراط به X به کار می‌رود.

یک برنامه‌نویس می‌تواند برنامه‌های منطقی را به صورت اعلانی بخواند تا صحت آن را راستی‌آزمایی کند. بعلاوه، فنون تبدیل برنامه مبتنی بر منطق، را می‌توان استفاده کرد تا برنامه‌های منطقی را به برنامه‌های معادل منطقی که کاراتر هستند تبدیل کرد. در خانواده زبان‌های برنامه‌نویسی منطقی مبتنی بر پرولوگ، برنامه‌نویس می‌تواند از «رفتار حل مسئله شناخته شده سازوکار اجرایی» استفاده کند تا کارایی برنامه‌ها را بهبود بدهد.
 
امضا : MAHl

MAHl

عکاس انجمن + مدیر بازنشسته فرهنگ و مذهب
هنرمند انجمن
تاریخ ثبت‌نام
21/4/21
ارسالی‌ها
1,032
پسندها
32,355
امتیازها
59,573
مدال‌ها
23
سن
20
سطح
33
 
  • نویسنده موضوع
  • #5

منطق و کنترل​

برنامه‌نویسی منطقی را می‌توان به صورت «استنتاج کنترل‌شده» نگریست. یک مفهوم مهم در برنامه‌نویسی منطقی، جداسازی برنامه‌ها به «مولفهٔ منطقی» و «مولفهٔ کنترلی» است. در زبان‌های برنامه‌نویسی منطقی محض، «فقط» مولفه منطقی جواب‌های تولید شده را تعیین می‌کند. اما مولفه کنترلی برای ایجاد روش‌های متمایز اجرای یک برنامه منطقی قابل تغییر است. این مفهوم توسط این شعار قابل بیان است:

الگوریتم = منطق + کنترل

که در آن «منطق» نمایش‌دهنده یک برنامه منطقی است، و «کنترل» نمایش‌دهنده راهکارهای اثبات قضیه مختلف است.

اثبات مسئله​

در حالت ساده و گزاره‌ای، که در آن برنامه منطقی و هدف اتمی سطح بالا، هیچ متغیری ندارند، استدلال پس‌گرد تعیین‌کننده یک درخت and-or...
لطفا برای مشاهده کامل مطالب در انجمن ثبت نام کنید.
 
امضا : MAHl

MAHl

عکاس انجمن + مدیر بازنشسته فرهنگ و مذهب
هنرمند انجمن
تاریخ ثبت‌نام
21/4/21
ارسالی‌ها
1,032
پسندها
32,355
امتیازها
59,573
مدال‌ها
23
سن
20
سطح
33
 
  • نویسنده موضوع
  • #6
دو جواب نامزد وجود دارد که زیر هدف اول یعنی bird(X) را حل می‌کند، که X = john و X = mary هستند. دومین زیر هدف not abnormal(john) از راه‌حل نامزد اول شکست می‌خورد، زیرا wounded(john) پیروز می‌شود، و از این رو abnormal(john) پیروز می‌شود. با این حال، زیر هدف دومی not abnormal(mary) از راه‌حل نامزد دومی پیروز می‌شود، زیرا wounded(mary) شکست می‌خورد، و از این رو abnormal(mary) شکست می‌خورد. از این رو، X = mary تنها جواب برای هدف است.

زبان میکروپلنر، یک ساختار به نام "thnot" دارد، که موقعی که به یک عبارت اعمال شود، مقدار درست را فقط (و فقط) وقتی برمی‌گرداند که ارزیابی عبارت شکست بخورد. یک عملگر معادل معمولاً در پیاده‌سازی‌های مدرن پرولوگ وجود دارد. این عملگر معمولاً به صورت not(Goal)...
لطفا برای مشاهده کامل مطالب در انجمن ثبت نام کنید.
 
امضا : MAHl

کاربران بازدید کننده از موضوع (تعداد: 0)

کاربران در حال مشاهده موضوع (تعداد: 1, کاربر: 0, مهمان: 1)

عقب
بالا