बैकवर्ड चेनिंग: Difference between revisions
(Created page with "{{Short description|Method of forming inferences}} {{distinguish|Backward chaining (applied behavior analysis)|Back-chaining}} बैकवर्ड चेनिंग (या...") |
No edit summary |
||
(7 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Method of forming inferences}} | {{Short description|Method of forming inferences}} | ||
{{distinguish| | {{distinguish|बैकवर्ड चेनिंग (अनुप्रयुक्त व्यवहार विश्लेषण)|बैकवर्ड चेनिंग}} | ||
बैकवर्ड चेनिंग | |||
[[ | बैकवर्ड चेनिंग या बैकवर्ड रीजनिंग एक [[अनुमान|इन्फरन्स]] पद्धति है, जिसे कोलोक्विअल में लक्ष्य से बैकवर्ड काम करने के रूप में वर्णित किया जाता है। इसका उपयोग स्वचालित प्रमेय प्रोवर्स, [[अनुमान इंजन|इन्फेरेंस इंजन]], [[प्रमाण सहायक|प्रूफ असिस्टेंट]] और अन्य आर्टिफिशियल इंटेलिजेंस अनुप्रयोगों में उपयोग किया जाता है।<ref>{{cite book|last=Feigenbaum|first=Edward|title=विशेषज्ञ कंपनी का उदय|url=https://archive.org/details/riseofexpertcomp00feig|url-access=registration|year=1988|publisher=Times Books|isbn=0-8129-1731-6|page=[https://archive.org/details/riseofexpertcomp00feig/page/317 317]}}</ref> | ||
[[ खेल सिद्धांत |गेम सिद्धांत]] में, शोधकर्ता [[ पीछे की ओर प्रेरण |बैकवर्ड इंडक्शन]] नामक प्रक्रिया में गेम का समाधान खोजने के लिए इसे सरल[[ उपखेल | उपगेम]] पर प्रयुक्त करते हैं। शतरंज में, इसे [[प्रतिगामी विश्लेषण|रेट्रोग्रेड विश्लेषण]] कहा जाता है और इसका उपयोग [[कंप्यूटर शतरंज]] के [[एंडगेम]] के लिए टेबल बेस तैयार करने के लिए किया जाता है। | |||
[[ तर्क प्रोग्रामिंग | लॉजिक प्रोग्रामिंग]] में बैकवर्ड चेनिंग को SLD रेजोल्यूशन द्वारा कार्यान्वित किया जाता है। दोनों नियम [[ मूड सेट करना |मोडस पोनेंस]] [[अनुमान नियम|इन्फेरेंस नियम]] पर आधारित होते है। यह इन्फेरेंस नियमों और [[तार्किक परिणाम|लॉजिकल इम्प्लीकेशन]] के साथ लॉजिक करने के दो सबसे अधिक उपयोग किए जाने वाली विधि में से एक है और इस प्रकार [[बैकवर्ड चेनिंग]] प्रणाली सामान्यतः [[गहराई-पहली खोज|डेप्थ फर्स्ट सर्च]] स्ट्रेटजी को नियोजित करते हैं, जैसे [[प्रोलॉग]] इत्यादि.<ref name="CheinMugnier2009">{{cite book|author1=Michel Chein|author2=Marie-Laure Mugnier|title=Graph-based knowledge representation: computational foundations of conceptual graphs|url=https://books.google.com/books?id=iz3y6WK2EMEC&pg=PA297|year=2009|publisher=Springer|isbn=978-1-84800-285-2|page=297}}</ref> | |||
== यह कैसे काम करता है == | == यह कैसे काम करता है == | ||
बैकवर्ड चेनिंग [[ | बैकवर्ड चेनिंग [[गोल्स]] या एक [[परिकल्पना|हाइपोथिसिस]] की एक सूची से शुरू होती है और कॉनसीक्वेंट से [[एंटीसीडेन्ट]] [[पूर्ववर्ती (तर्क)|(लॉजिक )]] तक बैकवर्ड काम करती है इस प्रकार यह देखने के लिए कि क्या कोई [[आंकड़े|डेटा]] इनमें से किसी भी इम्प्लीकेशन का समर्थन करता है।<ref name="Norwig Definition"/> बैकवर्ड चेनिंग का उपयोग करने वाला एक इन्फेरेंस इंजन तब तक इन्फेरेंस नियमों की खोज करता है जब तक कि उसे एक ऐसा कॉनसीक्वेंट खंड नहीं मिल जाता जो वांछित गोल से मेल खाता है। यदि उस नियम का एंटीसीडेन्ट खंड सत्य नहीं है, तो इसे गोल्स की सूची में जोड़ा जाता है और इस प्रकार किसी के लक्ष्य की पुष्टि के लिए व्यक्ति को वह डेटा भी प्रदान करना होता है जो इस नए नियम की पुष्टि करता है। | ||
उदाहरण के लिए, मान लीजिए कि एक नया पालतू जानवर, फ़्रिट्ज़, फ़्रिट्ज़ के बारे में दो तथ्यों के साथ एक अपारदर्शी बॉक्स में दिया गया है: | उदाहरण के लिए, मान लीजिए कि एक नया पालतू जानवर, फ़्रिट्ज़, फ़्रिट्ज़ के बारे में दो तथ्यों के साथ एक अपारदर्शी बॉक्स में दिया गया है: | ||
* फ़्रिट्ज़ कर्कश | * फ़्रिट्ज़ कर्कश | ||
* फ़्रिट्ज़ मक्खियाँ खाता है | * फ़्रिट्ज़ मक्खियाँ खाता है | ||
लक्ष्य निम्नलिखित चार नियमों वाले नियम आधार के आधार पर यह तय करना है कि फ़्रिट्ज़ हरा है या नहीं | इस प्रकार लक्ष्य निम्नलिखित चार नियमों वाले [[नियम आधार|नियम]] के आधार पर यह तय करना होता है कि फ़्रिट्ज़ हरा है या नहीं, | ||
[[File:Backward Chaining Frog Color Example.png|upright=0.56|thumb|alt=An Example of Backward Chaining.|बैकवर्ड चेनिंग का एक उदाहरण।]]# यदि X टर्र-टर्र करता है और X मक्खियाँ खाता है - तो X एक मेंढक है | [[File:Backward Chaining Frog Color Example.png|upright=0.56|thumb|alt=An Example of Backward Chaining.|बैकवर्ड चेनिंग का एक उदाहरण।]] | ||
# यदि X टर्र-टर्र करता है और X मक्खियाँ खाता है - तो X एक मेंढक है | |||
# यदि एक्स चहचहाता है और एक्स गाता है - तो एक्स एक कैनरी है | # यदि एक्स चहचहाता है और एक्स गाता है - तो एक्स एक कैनरी है | ||
# यदि X एक मेंढक है - तो X हरा है | # यदि X एक मेंढक है - तो X हरा है | ||
# यदि X एक कैनरी है - तो X पीला है | #यदि X एक कैनरी है - तो X पीला है | ||
पिछड़े | पिछड़े लॉजिक के साथ, एक इन्फेरेंस इंजन चार चरणों में यह निर्धारित करता है कि फ़्रिट्ज़ हरा है या नहीं और इस प्रकार आरंभ करने के लिए क्वेरी को एक लक्ष्य दावे के रूप में प्रस्तुत किया जाता है जिसे सिद्ध किया जाता है कि फ़्रिट्ज़ हरा है। | ||
1. यह देखने के लिए कि क्या इसका परिणाम लक्ष्य से मेल खाता है, फ़्रिट्ज़ को नियम #3 में X के स्थान पर प्रतिस्थापित किया गया है, इसलिए नियम #3 बन जाता है: | 1. यह देखने के लिए कि क्या इसका परिणाम लक्ष्य से मेल खाता है, फ़्रिट्ज़ को नियम #3 में X के स्थान पर प्रतिस्थापित किया गया है, इसलिए नियम #3 के रूप में बन जाता है: | ||
यदि फ़्रिट्ज़ एक मेंढक है - तो फ़्रिट्ज़ हरा है | यदि फ़्रिट्ज़ एक मेंढक है - तो फ़्रिट्ज़ हरा है | ||
चूँकि | चूँकि इम्प्लीकेशन लक्ष्य से मेल खाता है तो फ़्रिट्ज़ हरा है और इस प्रकार नियम इंजन को अब यह देखने की ज़रूरत है कि क्या एंटीसीडेन्ट फ़्रिट्ज़ एक मेंढक है यह सिद्ध किया जा सकता है। इसलिए, एंटीसीडेन्ट नया लक्ष्य बन जाता है | ||
फ़्रिट्ज़ एक मेंढक है | फ़्रिट्ज़ एक मेंढक है | ||
2. फिर से X के स्थान पर फ्रिट्ज़ को प्रतिस्थापित करने पर नियम #1 बन जाता है | 2. फिर से X के स्थान पर फ्रिट्ज़ को प्रतिस्थापित करने पर नियम #1 बन जाता है | ||
यदि फ़्रिट्ज़ टर्र-टर्र करता है और फ़्रिट्ज़ मक्खियाँ खाता है - तो फ़्रिट्ज़ एक मेंढक है | यदि फ़्रिट्ज़ टर्र-टर्र करता है और फ़्रिट्ज़ मक्खियाँ खाता है - तो फ़्रिट्ज़ एक मेंढक है | ||
चूँकि | चूँकि इम्प्लीकेशन वर्तमान लक्ष्य से मेल खाता है तो फ़्रिट्ज़ एक मेंढक है और इस प्रकार इन्फेरेंस इंजन को अब यह देखने की ज़रूरत है कि क्या एंटीसीडेन्ट को सिद्ध किया जा सकता है। इस प्रकार फ़्रिट्ज़ टर्र-टर्र करता है और मक्खियाँ खाता है, इसलिए एंटीसीडेन्ट नया लक्ष्य बन जाता है: | ||
फ़्रिट्ज़ क्रोक करता है और फ़्रिट्ज़ मक्खियाँ खाता है | फ़्रिट्ज़ क्रोक करता है और फ़्रिट्ज़ मक्खियाँ खाता है | ||
3. चूँकि यह लक्ष्य दो कथनों का संयोजन है, | 3. चूँकि यह लक्ष्य दो कथनों का संयोजन होता है, इन्फेरेंस इंजन इसे दो उप-गोल्स में तोड़ता है, जिनमें से दोनों को सिद्ध किया जाता है | ||
फ़्रिट्ज़ कर्कश | फ़्रिट्ज़ कर्कश | ||
फ़्रिट्ज़ मक्खियाँ खाता है | फ़्रिट्ज़ मक्खियाँ खाता है | ||
4. इन दोनों उप- | 4. इन दोनों उप-गोल्स को सिद्ध करने के लिए इन्फेरेंस इंजन देखता है कि ये दोनों उप-लक्ष्य प्रारंभिक तथ्यों के रूप में दिए गए थे। इसलिए, संयोजन सत्य है | ||
फ़्रिट्ज़ क्रोक करता है और फ़्रिट्ज़ मक्खियाँ खाता है | फ़्रिट्ज़ क्रोक करता है और फ़्रिट्ज़ मक्खियाँ खाता है | ||
इसलिए नियम #1 का पूर्ववृत्त सत्य है और | इसलिए नियम #1 का पूर्ववृत्त सत्य है और इम्प्लीकेशन सत्य होना चाहिए: | ||
फ़्रिट्ज़ एक मेंढक है | फ़्रिट्ज़ एक मेंढक है | ||
इसलिए नियम #3 का पूर्ववृत्त सत्य है और | इसलिए नियम #3 का पूर्ववृत्त सत्य है और इम्प्लीकेशन सत्य होना चाहिए: | ||
फ़्रिट्ज़ हरा है | फ़्रिट्ज़ हरा है | ||
इसलिए, यह व्युत्पत्ति | इसलिए, यह व्युत्पत्ति इन्फेरेंस इंजन को यह साबित करने की अनुमति देती है कि फ़्रिट्ज़ हरा है। नियम #2 और #4 का उपयोग नहीं किया जाता है। | ||
ध्यान दें कि लक्ष्य अधिकांशतः निहितार्थ के इम्प्लीकेशन के पुष्टि किए गए संस्करणों से मेल खाते हैं और इस प्रकार अस्वीकृत संस्करणों [[मोडस टोलेंस]] के रूप में होता है और फिर भी, उनके पूर्ववृत्त को नए लक्ष्य के रूप में माना जाता है न कि [[परिणाम की पुष्टि|इम्प्लीकेशन की पुष्टि]] करने वाले निष्कर्ष के रूप में होता है, जो अंततः ज्ञात तथ्यों से मेल खाना चाहिए सामान्यतः उन इम्प्लीकेशन के रूप में परिभाषित किया जाता है जिनके पूर्ववृत्त अधिकांशतः सत्य होते हैं; इस प्रकार प्रयुक्त इन्फेरेंस नियम मोडस पोनेंस के रूप में होते है। | |||
क्योंकि गोल्स की सूची यह निर्धारित करती है कि किन नियमों का चयन और उपयोग किया जाता है, इस पद्धति को [[डेटा विज्ञान|डेटा]] संचालित फॉरवर्ड चेनिंग इन्फेरेंस के विपरीत लक्ष्य-संचालित के रूप में जाना जाता है। बैकवर्ड चेनिंग दृष्टिकोण अधिकांशतः विशेषज्ञ प्रणालियों द्वारा नियोजित किया जाता है। | |||
प्रोलॉग, [[ज्ञान मशीन|नॉलेज मशीन]] और एक्लिप्स जैसी प्रोग्रामिंग भाषाएं अपने इन्फेरेंस इंजनों के भीतर बैकवर्ड चेनिंग का समर्थन करती हैं।<ref name="Programming Languages"/> | |||
==यह भी देखें== | ==यह भी देखें== | ||
* | *बैकट्रैकिंग | ||
* | *बैकवर्ड इंडक्शन | ||
* | *फॉरवर्ड चेनिंग | ||
*[[अवसरवादी तर्क]] | *[[अवसरवादी तर्क|ओपुर्चूनिस्टिक लॉजिक]] | ||
==संदर्भ== | ==संदर्भ== | ||
Line 81: | Line 84: | ||
* [http://www.j-paine.org/students/lectures/lect3/node12.html Backward chaining example] | * [http://www.j-paine.org/students/lectures/lect3/node12.html Backward chaining example] | ||
{{Automated reasoning}} | {{Automated reasoning}} | ||
[[Category: | [[Category:Articles with hatnote templates targeting a nonexistent page]] | ||
[[Category:Collapse templates]] | |||
[[Category:Created On 24/07/2023]] | [[Category:Created On 24/07/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:कंप्यूटर विज्ञान में तर्क]] | |||
[[Category:विचार]] | |||
[[Category:विशेषज्ञ प्रणालियां]] | |||
[[Category:स्वचालित तर्क]] |
Latest revision as of 11:25, 12 August 2023
बैकवर्ड चेनिंग या बैकवर्ड रीजनिंग एक इन्फरन्स पद्धति है, जिसे कोलोक्विअल में लक्ष्य से बैकवर्ड काम करने के रूप में वर्णित किया जाता है। इसका उपयोग स्वचालित प्रमेय प्रोवर्स, इन्फेरेंस इंजन, प्रूफ असिस्टेंट और अन्य आर्टिफिशियल इंटेलिजेंस अनुप्रयोगों में उपयोग किया जाता है।[1]
गेम सिद्धांत में, शोधकर्ता बैकवर्ड इंडक्शन नामक प्रक्रिया में गेम का समाधान खोजने के लिए इसे सरल उपगेम पर प्रयुक्त करते हैं। शतरंज में, इसे रेट्रोग्रेड विश्लेषण कहा जाता है और इसका उपयोग कंप्यूटर शतरंज के एंडगेम के लिए टेबल बेस तैयार करने के लिए किया जाता है।
लॉजिक प्रोग्रामिंग में बैकवर्ड चेनिंग को SLD रेजोल्यूशन द्वारा कार्यान्वित किया जाता है। दोनों नियम मोडस पोनेंस इन्फेरेंस नियम पर आधारित होते है। यह इन्फेरेंस नियमों और लॉजिकल इम्प्लीकेशन के साथ लॉजिक करने के दो सबसे अधिक उपयोग किए जाने वाली विधि में से एक है और इस प्रकार बैकवर्ड चेनिंग प्रणाली सामान्यतः डेप्थ फर्स्ट सर्च स्ट्रेटजी को नियोजित करते हैं, जैसे प्रोलॉग इत्यादि.[2]
यह कैसे काम करता है
बैकवर्ड चेनिंग गोल्स या एक हाइपोथिसिस की एक सूची से शुरू होती है और कॉनसीक्वेंट से एंटीसीडेन्ट (लॉजिक ) तक बैकवर्ड काम करती है इस प्रकार यह देखने के लिए कि क्या कोई डेटा इनमें से किसी भी इम्प्लीकेशन का समर्थन करता है।[3] बैकवर्ड चेनिंग का उपयोग करने वाला एक इन्फेरेंस इंजन तब तक इन्फेरेंस नियमों की खोज करता है जब तक कि उसे एक ऐसा कॉनसीक्वेंट खंड नहीं मिल जाता जो वांछित गोल से मेल खाता है। यदि उस नियम का एंटीसीडेन्ट खंड सत्य नहीं है, तो इसे गोल्स की सूची में जोड़ा जाता है और इस प्रकार किसी के लक्ष्य की पुष्टि के लिए व्यक्ति को वह डेटा भी प्रदान करना होता है जो इस नए नियम की पुष्टि करता है।
उदाहरण के लिए, मान लीजिए कि एक नया पालतू जानवर, फ़्रिट्ज़, फ़्रिट्ज़ के बारे में दो तथ्यों के साथ एक अपारदर्शी बॉक्स में दिया गया है:
- फ़्रिट्ज़ कर्कश
- फ़्रिट्ज़ मक्खियाँ खाता है
इस प्रकार लक्ष्य निम्नलिखित चार नियमों वाले नियम के आधार पर यह तय करना होता है कि फ़्रिट्ज़ हरा है या नहीं,
- यदि X टर्र-टर्र करता है और X मक्खियाँ खाता है - तो X एक मेंढक है
- यदि एक्स चहचहाता है और एक्स गाता है - तो एक्स एक कैनरी है
- यदि X एक मेंढक है - तो X हरा है
- यदि X एक कैनरी है - तो X पीला है
पिछड़े लॉजिक के साथ, एक इन्फेरेंस इंजन चार चरणों में यह निर्धारित करता है कि फ़्रिट्ज़ हरा है या नहीं और इस प्रकार आरंभ करने के लिए क्वेरी को एक लक्ष्य दावे के रूप में प्रस्तुत किया जाता है जिसे सिद्ध किया जाता है कि फ़्रिट्ज़ हरा है।
1. यह देखने के लिए कि क्या इसका परिणाम लक्ष्य से मेल खाता है, फ़्रिट्ज़ को नियम #3 में X के स्थान पर प्रतिस्थापित किया गया है, इसलिए नियम #3 के रूप में बन जाता है:
यदि फ़्रिट्ज़ एक मेंढक है - तो फ़्रिट्ज़ हरा है
चूँकि इम्प्लीकेशन लक्ष्य से मेल खाता है तो फ़्रिट्ज़ हरा है और इस प्रकार नियम इंजन को अब यह देखने की ज़रूरत है कि क्या एंटीसीडेन्ट फ़्रिट्ज़ एक मेंढक है यह सिद्ध किया जा सकता है। इसलिए, एंटीसीडेन्ट नया लक्ष्य बन जाता है
फ़्रिट्ज़ एक मेंढक है
2. फिर से X के स्थान पर फ्रिट्ज़ को प्रतिस्थापित करने पर नियम #1 बन जाता है
यदि फ़्रिट्ज़ टर्र-टर्र करता है और फ़्रिट्ज़ मक्खियाँ खाता है - तो फ़्रिट्ज़ एक मेंढक है
चूँकि इम्प्लीकेशन वर्तमान लक्ष्य से मेल खाता है तो फ़्रिट्ज़ एक मेंढक है और इस प्रकार इन्फेरेंस इंजन को अब यह देखने की ज़रूरत है कि क्या एंटीसीडेन्ट को सिद्ध किया जा सकता है। इस प्रकार फ़्रिट्ज़ टर्र-टर्र करता है और मक्खियाँ खाता है, इसलिए एंटीसीडेन्ट नया लक्ष्य बन जाता है:
फ़्रिट्ज़ क्रोक करता है और फ़्रिट्ज़ मक्खियाँ खाता है
3. चूँकि यह लक्ष्य दो कथनों का संयोजन होता है, इन्फेरेंस इंजन इसे दो उप-गोल्स में तोड़ता है, जिनमें से दोनों को सिद्ध किया जाता है
फ़्रिट्ज़ कर्कश फ़्रिट्ज़ मक्खियाँ खाता है
4. इन दोनों उप-गोल्स को सिद्ध करने के लिए इन्फेरेंस इंजन देखता है कि ये दोनों उप-लक्ष्य प्रारंभिक तथ्यों के रूप में दिए गए थे। इसलिए, संयोजन सत्य है
फ़्रिट्ज़ क्रोक करता है और फ़्रिट्ज़ मक्खियाँ खाता है
इसलिए नियम #1 का पूर्ववृत्त सत्य है और इम्प्लीकेशन सत्य होना चाहिए:
फ़्रिट्ज़ एक मेंढक है
इसलिए नियम #3 का पूर्ववृत्त सत्य है और इम्प्लीकेशन सत्य होना चाहिए:
फ़्रिट्ज़ हरा है
इसलिए, यह व्युत्पत्ति इन्फेरेंस इंजन को यह साबित करने की अनुमति देती है कि फ़्रिट्ज़ हरा है। नियम #2 और #4 का उपयोग नहीं किया जाता है।
ध्यान दें कि लक्ष्य अधिकांशतः निहितार्थ के इम्प्लीकेशन के पुष्टि किए गए संस्करणों से मेल खाते हैं और इस प्रकार अस्वीकृत संस्करणों मोडस टोलेंस के रूप में होता है और फिर भी, उनके पूर्ववृत्त को नए लक्ष्य के रूप में माना जाता है न कि इम्प्लीकेशन की पुष्टि करने वाले निष्कर्ष के रूप में होता है, जो अंततः ज्ञात तथ्यों से मेल खाना चाहिए सामान्यतः उन इम्प्लीकेशन के रूप में परिभाषित किया जाता है जिनके पूर्ववृत्त अधिकांशतः सत्य होते हैं; इस प्रकार प्रयुक्त इन्फेरेंस नियम मोडस पोनेंस के रूप में होते है।
क्योंकि गोल्स की सूची यह निर्धारित करती है कि किन नियमों का चयन और उपयोग किया जाता है, इस पद्धति को डेटा संचालित फॉरवर्ड चेनिंग इन्फेरेंस के विपरीत लक्ष्य-संचालित के रूप में जाना जाता है। बैकवर्ड चेनिंग दृष्टिकोण अधिकांशतः विशेषज्ञ प्रणालियों द्वारा नियोजित किया जाता है।
प्रोलॉग, नॉलेज मशीन और एक्लिप्स जैसी प्रोग्रामिंग भाषाएं अपने इन्फेरेंस इंजनों के भीतर बैकवर्ड चेनिंग का समर्थन करती हैं।[4]
यह भी देखें
- बैकट्रैकिंग
- बैकवर्ड इंडक्शन
- फॉरवर्ड चेनिंग
- ओपुर्चूनिस्टिक लॉजिक
संदर्भ
- ↑ Feigenbaum, Edward (1988). विशेषज्ञ कंपनी का उदय. Times Books. p. 317. ISBN 0-8129-1731-6.
- ↑ Michel Chein; Marie-Laure Mugnier (2009). Graph-based knowledge representation: computational foundations of conceptual graphs. Springer. p. 297. ISBN 978-1-84800-285-2.
- ↑
Definition of backward chaining as a depth-first search method:
- Russell & Norvig 2009, p. 337
- ↑
Languages that support backward chaining:
- Russell & Norvig 2009, p. 339
स्रोत
- Russell, Stuart; Norvig, Peter (2009). कृत्रिम बुद्धिमत्ता एक आधुनिक दृष्टिकोण. Prentice Hall. ISBN 978-0-13-604259-4.