ScholarGate
دستیار

برنامه‌نویسی منطقی و اعلانی

برنامه‌نویسی منطقی و اعلانی، مسائل را به صورت روابط، حقایق و قواعد بیان می‌کنند و جستجو برای راه‌حل‌ها را به یک موتور استنتاجی واگذار می‌کنند، نه دستورالعمل‌های گام به گام صریح.

یافتن موضوع با PaperMindبه‌زودیFind papers & topics
Tools & resources
دریافت اسلایدها
Learn & explore
ویدیوبه‌زودی

Definition

برنامه‌نویسی منطقی یک پارادایم اعلانی است که در آن یک برنامه مجموعه‌ای از بندهای منطقی (حقایق و قواعد) است و محاسبات با استنتاج خودکار، معمولاً رزولوشن با یکسان‌سازی، برای پاسخ به پرس‌وجوها در برابر آن دانش پیش می‌رود.

Scope

این موضوع برنامه‌نویسی منطقی مبتنی بر بندهای هورن و رزولوشن (مانند پرولوگ)، برنامه‌نویسی منطقی با محدودیت، و ایده اعلانی گسترده‌تر برای مشخص کردن آنچه باید برقرار باشد به جای چگونگی محاسبه آن را پوشش می‌دهد. این شامل یکسان‌سازی (unification)، جستجوی پسگرد (backtracking search)، معناشناسی مدل-نظری و اثبات-نظری برنامه‌های منطقی، و جداسازی مشخصات منطقی از کنترل می‌شود.

Core questions

  • محاسبه با اثبات یک هدف از بندهای منطقی به چه معناست؟
  • یکسان‌سازی و پسگرد چگونه جستجو را بر روی یک برنامه رابطه‌ای محقق می‌کنند؟
  • جداسازی منطق از کنترل چگونه دقیق می‌شود؟
  • محدودیت‌ها چگونه برنامه‌نویسی منطقی محض را گسترش می‌دهند؟

Key theories

اصل رزولوشن
رزولوشن رابینسون یک قاعده استنتاجی واحد و ماشین‌گرا برای منطق مرتبه اول ارائه می‌دهد که موتور استنتاجی را فراهم می‌کند که برنامه‌نویسی منطقی را از نظر محاسباتی امکان‌پذیر می‌سازد.
منطق به علاوه کنترل
تحلیل کوالسکی محتوای منطقی یک برنامه (آنچه درست است) را از مؤلفه کنترلی آن (چگونگی جستجوی اثبات) متمایز می‌کند و برنامه‌نویسی منطقی را به عنوان راهی برای تغییر کنترل در حالی که منطق ثابت می‌ماند، چارچوب‌بندی می‌کند.
معناشناسی اعلانی و رویه‌ای برنامه‌های منطقی
لوید معناشناسی مدل-نظری، نقطه ثابت، و عملیاتی برنامه‌های منطقی قطعی را رسمی می‌کند و تطابق آن‌ها را اثبات می‌کند، که معنای برنامه‌های منطقی را پایه می‌گذارد.

Clinical relevance

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

History

اصل رزولوشن رابینسون در سال ۱۹۶۵، مبنای استنتاجی را فراهم کرد. در اوایل دهه ۱۹۷۰، کلمرائر و روسل پرولوگ را ایجاد کردند و کوالسکی تفسیر رویه‌ای بندهای هورن را بیان کرد. این پارادایم در طول دهه ۱۹۸۰ شکوفا شد و بر پروژه نسل پنجم ژاپن تأثیر گذاشت و بعدها به برنامه‌نویسی منطقی با محدودیت و برنامه‌نویسی مجموعه پاسخ گسترش یافت.

Debates

خلوص در برابر کنترل عملی
زبان‌های برنامه‌نویسی منطقی بین ایده‌آل منطق اعلانی محض و نیازهای عملی برای کنترل صریح، مانند برش (cut) و ترتیب، که کارایی را بهبود می‌بخشند اما جدایی پاک منطق/کنترل را به خطر می‌اندازند، تعادل برقرار می‌کنند.

Key figures

  • Robert Kowalski
  • Alain Colmerauer
  • J. Alan Robinson
  • John Lloyd
  • Philippe Roussel

Related topics

Seminal works

  • kowalski1979
  • robinson1965
  • lloyd1987
  • colmerauer1993

Frequently asked questions

برنامه‌نویسی منطقی چه تفاوتی با برنامه‌نویسی دستوری دارد؟
به جای مشخص کردن دنباله‌ای از عملیات، یک برنامه منطقی حقایق و قواعد را اعلام می‌کند و یک موتور استنتاجی به دنبال اثبات‌هایی می‌گردد که به پرس‌وجوها پاسخ می‌دهند، بنابراین برنامه‌نویس بر آنچه درست است تمرکز می‌کند تا چگونگی محاسبه آن.
یکسان‌سازی چیست؟
یکسان‌سازی فرآیند یافتن یک جایگزینی است که دو عبارت منطقی را یکسان می‌کند؛ این مکانیسم اصلی است که برنامه‌های منطقی اهداف را با سر بندها مطابقت می‌دهند.

Methods for this concept

Related concepts