অ্যাবডাক্টিভ লজিক প্রোগ্রামিং

**অকাট্য যৌক্তিক প্রোগ্রামিং** (Abductive logic programming - ALP) হলো উঁচুস্তরের জ্ঞান উপস্থাপন ফ্রেমওয়ার্ক যা অকাট্য যুক্তির উপর ভিত্তি করে সমস্যার সমাধান করতে ব্যবহার করা হয়। এটি সাধারণ যুক্তিভিত্তিক প্রোগ্রামিংকে কিছু বিধেয়কে অকাট্য হিসেবে ঘোষণা করে অসম্পূর্ণভাবে সংজ্ঞায়িত করার মাধ্যমে বর্ধিত করে। সমস্যা সমাধানকরণে এসব অকাট্য বিধেয় হতে প্রাপ্ত অনুকল্পগুলোকে সমাধান বিবেচনা করা হয়। এসব সমস্যা হতে পারে এমন কোন পর্যবেক্ষণ, যার ব্যাখ্যা প্রয়োজন (যেমনটা ক্লাসিকাল অ্যাবডাকশন এ) অথবা কোন লক্ষ্যে পৌঁছানোর প্রয়োজন (যেমনটা সাধারণ যুক্তিভিত্তিক প্রোগ্রামিং এ)। এটি সনাক্তকরণ, পরিকল্পনাকরণ, প্রাকৃতিক ভাষা প্রক্রিয়াকরণ এবং যান্ত্রিক জ্ঞানার্জনের সমস্যা সমাধানে ব্যবহার করা যেতে পারে। এটি ইতিমধ্যেই অকাট্য যুক্তিবিদ্যার রূপ হিসেবে negation as failure সনাক্তকরণে ব্যবহৃত হয়েছে।
## ব্যাকরণ
অকাট্য যুক্তিভিত্তিক প্রোগ্রামিংয়ের তিনটি উপাদান রয়েছে, \langle P,A,IC\rangle, যেখানে:
* P হল একটি যৌক্তিক প্রোগ্রাম যা মূলত যুক্তিভিত্তিক প্রোগ্রামিং এর আকারে থাকে।
* A হল বিধেয় নামসমূহের একটি সেট, যাদেরকে বলা হয় অকাট্য বিধেয়।
* IC হল ক্লাসিকাল একমাত্রিক সূত্রগুলোর সেট।
 
সাধারণত যৌক্তিক প্রোগ্রাম P তে অকাট্য বিধেয়সমূহকে নির্দেশ করে এমন কোন শীর্ষকবিশিষ্ট বাক্যাংশ থাকে না (সাধারণতা হারানো ব্যতিরেকেই এই সীমাবদ্ধতা প্রদান করা যেতে পারে)। বাস্তবে অনেক সময়, IC তে অবস্থিত integrity constraintsগুলো প্রায় অস্বীকার আকারে সীমাবদ্ধ থাকে অর্থাৎ নিম্নোক্ত আকারে বাক্যাংশগুলো থাকে:
 মিথ্যা:- A1,...,An, not B1, ..., not Bm.

এসব সীমাবদ্ধতা বলতে বুঝায় যে সকল A1,...,An একই সঙ্গে সত্য হতে পারে না এবং একই সময়ে সকল B1,...,Bm মিথ্যা হতে পারে না।
## অনানুষ্ঠানিক ব্যাখ্যা এবং সমস্যা সমাধানকরণ
P এর বক্তব্য সমূহ ভেদনযোগ্য বিধেয়সমূহের একটি সেট সংজ্ঞায়িত করে এবং এর দ্বারা তারা সমস্যা ক্ষেত্রের মডেল প্রদান করে। IC এর অখণ্ড সীমাবদ্ধতাসমূহ সমস্যা ক্ষেত্রে সাধারণ ধর্মসমূহ সুনির্দিষ্ট করে।

একটি সমস্যা, *G*, যা একটি পর্যবেক্ষণ যার ব্যাখ্যা প্রয়োজন কিংবা একটি প্রত্যাশিত লক্ষ্যকে প্রকাশ করে, ধনাত্মক এবং ঋণাত্মক ফলাফল গুলোর সংযোগ দ্বারা উপস্থাপিত হয়। এসব সমস্যা এর এবডাক্টিভ ব্যাখ্যার মাধ্যমে সমাধান করা হয়।

একটি সমস্যা*G* এর এবডাকটিভ ব্যাখ্যা হল ধনাত্মক এবং মাঝে মাঝে ঋণাত্মক অকাট্য বিধেয়সমূহের সেট ,যেন, যখন এগুলোকে যৌক্তিক প্রোগ্রাম তে যুক্ত করা হয়, *G* সমস্যা টি এবং অখণ্ড সীমাবদ্ধতা সমূহ IC উভয়েই তা সমর্থন করে। এভাবে অকাট্য বিধেয়সমূহের পূর্ণ কিংবা আংশিক সংজ্ঞা যোগের মাধ্যমে এবডাকটিভ ব্যাখ্যা যৌক্তিক প্রোগ্রাম P কে বর্ধিত করা হয়। এভাবে, P এবং IC এর সমস্যা ক্ষেত্রের ব্যাখ্যা সমাধান প্রস্তুত করে এবডাকটিভ যুক্তির ব্যাখ্যা, যা প্রদত্ত সমস্যাকে বর্ধিত কিংবা সম্পূর্ণ বিবরণ প্রদান করে, নতুন তথ্য প্রদান করে যদিও তা সবসময় সমস্যার সমাধান দেয় না। একটি সমাধানের পরিবর্তে অন্য সমাধানকে নির্বাচনের জন্য মানদণ্ডসমূহ (প্রায়ই অখণ্ড সীমাবদ্ধতার দ্বারা প্রকাশ করা হয়) সমস্যাটির নির্দিষ্ট ব্যাখ্যা নির্বাচনে প্রয়োগ করা যেতে পারে।

ALP এর বিশ্লেষণ মূলত সাধারণ যুক্তিভিত্তিক প্রোগ্রামিং এর সঙ্গে একধরনের অখণ্ডতা যাচাইয়ের একীভূত রূপ যা প্রমাণ করে যে প্রাপ্ত ব্যাখ্যাটি গ্রহণযোগ্য।

নিম্নোক্ত উদাহরণদ্বয়, যা কঠোর ALP এর ব্যাকরণের বদলে সাধারণ ভাষায় লেখা হয়েছে, সমস্যা সমাধানের ক্ষেত্রে এর প্রয়োগ ব্যাখ্যা করবে।
### উদাহরণ ১
abductive যুক্তিভিত্তিক প্রোগ্রাম, \langle P,A,\mathit{IC} \rangle এবং P এ নিম্নোক্ত বক্তব্যসমূহ রয়েছে:

   ঘাস ভেজা থাকে **যদি** বৃষ্টি হয়
   ঘাস ভেজা থাকে **যদি** সিঞ্চক চালু থাকে
   সূর্য কিরণ দিচ্ছিল

A তে অকাট্য বিধেয়সমূহ হল "বৃষ্টি হয়েছিল" এবং "সিঞ্চক চালু ছিল" এবং \mathit{IC} এ একমাত্র অখণ্ড সীমাবদ্ধতা হল:

   মিথ্যা **যদি** বৃষ্টি হয়ে থাকে এবং সিঞ্চক চালু থাকে

"**ঘাস ভেজা রয়েছে**" এমন পর্যবেক্ষণের দুটি ব্যাখ্যা রয়েছে - "বৃষ্টি হয়েছিল" এবং "সিঞ্চক চালু ছিল", যার ফলশ্রুতিতে ঘটনাটি ঘটেছিল। তবে, শুধুমাত্র দ্বিতীয় ব্যাখ্যা, "সিঞ্চক চালু ছিল", অখণ্ড সীমাবদ্ধতাটিকে সিদ্ধ করে (কেননা, তখন বৃষ্টি হলে সূর্য কিরণ দেয়ার কথা নয়)।

### উদাহরণ ২
নিম্নোক্ত এবডাকটিভ যুক্তিভিত্তিক প্রোগ্রাম টি বিবেচনা করা যাক:
   X একজন মার্কিন নাগরিক **যদি** X যুক্তরাষ্ট্রে জন্মগ্রহণ করেন
   X মার্কিন নাগরিক **যদি** X যুক্তরাষ্ট্রের  বাইরে জন্মগ্রহণ করেন **এবং** X যুক্তরাষ্ট্রে বসবাস করেন **এবং** X অনুমোদনপ্রাপ্ত
   X একজন মার্কিন নাগরিক **যদি** X যুক্তরাষ্ট্রের বাইরে জন্মগ্রহণ করেন **এবং** X এর মাতা Y **এবং** Y একজন মার্কিন নাগরিক **এবং** X নিবন্ধিত
এখন নিম্নোক্ত বক্তব্য:
   John এর মাতা Mary
   Mary একজন মার্কিন নাগরিক

এর পাঁচটি বিধেয় - "যুক্তরাষ্ট্রে জন্মগ্রহণকারী", "যুক্তরাষ্ট্রের বাইরে জন্মগ্রহণকারী", "একজন যুক্তরাষ্ট্রে বসবাসকারী", "অনুমোদনপ্রাপ্ত" এবং "নিবন্ধিত" এবং অখণ্ড সীমাবদ্ধতা হল :

   মিথ্যা **যদি** John যুক্তরাষ্ট্রের বাসিন্দা হোন

এক্ষেত্রে "John একজন মার্কিন নাগরিক" বক্তব্যটির দুটি ব্যাখ্যা রয়েছে , যার একটি হল "John যুক্তরাষ্ট্রে জন্মগ্রহণ করেছেন", অন্যটি হল "John যুক্তরাষ্ট্রের বাইরে জন্মগ্রহণ করেছেন এবং John নিবন্ধিত". একজন বসবাস এবং অনুমোদনসূত্রে নাগরিক হওয়ার ব্যাখ্যাটি ব্যর্থ কেননা এটি অখণ্ড সীমাবদ্ধতাকে লঙ্ঘন করে।

আনুষ্ঠানিক রীতিতে লেখা আরো জটিল একটি উদাহরণ নিম্নরূপ:

### উদাহরণ ৩
এই প্রোগ্রামটি ই.কোলাই ব্যাকটেরিয়া কর্তৃক ল্যাকটোজ বিপাক প্রক্রিয়ার একটি সরল মডেল বর্ণনা করেন। প্রোগ্রামটির প্রথম নিয়ম বর্ণনা করে যে, ই ইকোলাই সুগার ল্যাকটোজ খেতে পারবে, যদি এটি গ্যালাকটোসাইডেজ এবং পার্মিজ নামক দুটি এনজাইম তৈরি করে। অন্যান্য এনজাইম এর মতই, এসব এনজাইম জিনে প্রকাশিত কোড দ্বারা তৈরি হয় (দ্বিতীয় শর্ত)। পারমিজ এবং গ্যালাকটোসাইডেজ এনজাইমদ্বয় যথাক্রমে জিন সমূহের একটি গুচ্ছ, lac(X), এ অবস্থিত lac(y) এবং lac(z) নামক দুটি জিনে কোড করা রয়েছে (পঞ্চম এবং ষষ্ঠ শর্তে উল্লেখিত) – যাদেরকে অপেরন বলা হয়-যখন গ্লুকোজের পরিমাণ কম এবং ল্যাকটোজের পরিমাণ বেশি অথবা উভয়ই মধ্যবর্তী পর্যায়ে থাকে, তখন এটি কার্যকর হয় (চতুর্থ এবং পঞ্চম শর্ত)৷ *A* বিধেয়সমূহ সকল *"পরিমাণকে"* অন্তর্ভুক্ত করে। এর ফলে "*যেকোনো সময় বিভিন্ন বস্তুর পরিমাণ এ মডেলটিতে অজানা *"- প্রকাশিত হয়। এটি হলো অসম্পূর্ণ তথ্য - যা প্রতিটি সমস্যার ক্ষেত্রে নির্ণয় করতে হয়।
অখণ্ড সীমাবদ্ধতা, *IC*, বিবৃতি প্রদান করে যে, যে কোন উপাদান (S) এর পরিমাণ শুধুমাত্র একটি মান গ্রহণ করতে পারে।

; Domain knowledge (P)
: 
```prolog
feed(lactose):-make(permease),make(galactosidase).
   make(Enzyme):-code(Gene,Enzyme),express(Gene).
   express(lac(X)):-amount(glucose,low),amount(lactose,hi).
   express(lac(X)):-amount(glucose,medium),amount(lactose,medium).
   code(lac(y),permease).
   code(lac(z),galactosidase).
   temperature(low):-amount(glucose,low).
```

; Integrity constraints (IC)
: 
```prolog
false :- amount(S,V1), amount(S,V2), V1 ≠ V2.
```

; Abducibles (A)
: 
```prolog
abducible_predicate(amount).
```

G=\text{feed(lactose)} হল সমস্যার মূল লক্ষ্য। এটি একটি "পর্যবেক্ষণ যার ব্যাখ্যা প্রয়োজন" কিংবা "পরিকল্পনার সাহায্যে কোনো ঘটনার অবস্থা ব্যাখ্যা প্রয়োজন" উত্তোলন করে। এই লক্ষ্যের দুটি ব্যাখ্যা রয়েছে:

: \begin{cases}
\Delta_1=\{\text{amount(lactose, hi), amount(glucose, low)}\}
\\
\Delta_2=\{\text{amount(lactose, medium), amount(glucose, medium)}\}
\end{cases}

দুটির মধ্যে কোনটি গ্রহণযোগ্য সে সিদ্ধান্ত প্রদত্ত তথ্য যেমন, "যখন গ্লুকোজের পরিমাণ নিম্ন তখন জীবটি যে নির্দিষ্ট ব্যবহার প্রদর্শন করে" - এই মডেলে জীবটির তাপমাত্রা নিম্ন এমন তথ্য-এবং পরীক্ষণের মাধ্যমে প্রথম কিংবা দ্বিতীয় ব্যাখ্যার গ্রহণযোগ্যতা ইত্যাদির উপর নির্ভর করে।

যখন যেকোনো একটি ব্যাখ্যা নির্বাচন করা হয়, তখন এটি তত্ত্বটির অংশ হয়ে যায়, যা নতুন উপসংহারে পৌঁছাতে সক্ষম। এসব উপসংহারই সমস্যাটির সমাধান গঠন করে।

## আনুষ্ঠানিক পরিভাষা
নিম্নোক্ত উপায়ে অ্যাবডাকটিভ যুক্তিভিত্তিক প্রোগ্রামিংয়ের কেন্দ্রীয় প্রকাশরীতি আনুষ্ঠানিকভাবে সংজ্ঞায়িত করা যায়।

একটি প্রোগ্রাম, \langle P,A,\mathit{IC}\rangle দেয়া আছে, an abductive explanation for a problem একটি সমস্যা G এর ব্যাখ্যাসমূহের সেট \Delta এমনভাবে বিধেয়সমূহের সঙ্গে সম্পর্কযুক্ত যেন:
* P \cup \Delta \models G
* P \cup \Delta \models IC
* P \cup \Delta পারস্পরিক সংগতিপূর্ণ

এই সংজ্ঞাটি যুক্তিভিত্তিক প্রোগ্রামিংয়ের প্রকাশরীতিসমূহকে মুক্ত রাখে, যার মাধ্যমে অপরিহার্যতার সম্পর্ক \models কে যথার্থভাবে সংজ্ঞায়িত করা যায়। যুক্তিভিত্তিক প্রোগ্রামিংয়ের বিভিন্ন প্রকাশরীতি একই প্রোগ্রামকে বিভিন্নভাবে প্রকাশ করে।

উপর্যুক্ত সংজ্ঞাটি, অখণ্ড সীমাবদ্ধতা \mathit{IC} এর ভূমিকার আনুষ্ঠানিকীকরণের উপর সম্ভাব্য সমাধান হিসেবে গুরুত্বারোপ করে। এতে একটি "অ্যাবডাকটিভ সমাধানের মাধ্যমে বর্ধিত যুক্তিভিত্তিক প্রোগ্রামের" প্রয়োজন পড়ে। কিছু ক্ষেত্রে তীব্র এবং দুর্বল সঙ্গতির প্রয়োজন পড়ে, যেমন P \cup \mathit{IC} \cup \Delta স্বসঙ্গত, যা দ্বারা বোঝায় যে কমপক্ষে এমন একটি সমাধান রয়েছে যা অখণ্ড সীমাবদ্ধতাকেসিদ্ধ করে। বাস্তবিকপক্ষে, অনেক ক্ষেত্রেই অখণ্ডতা সীমাবদ্ধতার ভূমিকা আনুষ্ঠানিকীকরণের এই উপায়দ্বয় যৌক্তিক প্রোগ্রাম এবং তার এক্সটেনশনগুলিতে সর্বদা একটি অনন্য মডেল বজায় রাখে। ALP সিস্টেমের অনেকগুলি অখণ্ডতা সীমাবদ্ধতার অনিবার্যতার দৃষ্টিভঙ্গি ব্যবহার করে কারণ এটি কোনো সমস্যার লক্ষ্যমাত্রার সাথে একইভাবে সীমাবদ্ধতাগুলি বিবেচনা করায় বিভিন্ন সীমাবদ্ধতার সিদ্ধকরণের জন্য কোনও অতিরিক্ত বিশেষ পদ্ধতিগুলির প্রয়োজন ছাড়া সহজেই বাস্তবায়িত করা যায়। উল্লেখ্য যে, অনেক ব্যবহারিক ক্ষেত্রে ALP এর একটি অ্যাবডাকটিভ ব্যাখ্যার এই আনুষ্ঠানিক সংজ্ঞা তৃতীয় শর্তকে সিদ্ধ করে কিংবা এটি নির্দিষ্ট পরিস্থিতিতে সঙ্গতিপূর্ণ অখণ্ড সীমাবদ্ধতাসহ দ্বিতীয় শর্তে অন্তর্ভুক্ত হয়।

## বাস্তবায়ন এবং ব্যবস্থা
এবডাকটিভ যুক্তিভিত্তিক প্রোগ্রামিং এর বেশিরভাগ প্রয়োগ যুক্তিভিত্তিক প্রোগ্রামিং এর SLD রেজ্যুলেশন-ভিত্তিক গাণিতিক মডেল কে বর্ধিত করে। এবডেকক্টিভ যুক্তিভিত্তিক প্রোগ্রামিংয়ের সঙ্গে উত্তর সেট প্রোগ্রামিং (ASP) এর সম্পর্কের সাহায্যেও এটি বাস্তবায়ন করা সম্ভব। ACLP, A-system, CIFF, SCIFF, ABDUAL এবং ProLogICA হল এর কিছু উদাহরণ।

## তথ্যসূত্র

* 
* 
* 
* 
* 
* 
* 
* 
* 

## বহিঃসংযোগ
* ACLP 
* ACL
* SCIFF
* Asystem 

বিষয়শ্রেণী:যুক্তিভিত্তিক প্রোগ্রামিং