بخشی از مقاله

استدلال جلورو در مقابل عقب رو
هدف روال جستجو، كشف يك مسير از ميان فضاهاي مسئله از يك وضعيت آغازي به وضعيت هدف است. چنين جستجويي مي تواند در دو جهت حركت كند:
• به طرف جلو، از وضعيت هاي آغازي
• به طرف عقب، از وضعيت هاي هدف


اين دو قرينه هستند. فرض كنيد كه مي خواهيم يك بازي معماي هشت را حل كنيم. قواعد اين معما را مي توان همانند شكل 1 نشان داد. در اينجا مي خواهيم معماي شكل 2 را حل كنيم. اين كار را مي توان به دو طريق انجام داد:
• استدلال به طرف جلو با شروع از وضعيت آغازي: ساختن يك درخت از سلسله حركتهايي كه ممكن است راه حل را تشيكل دهند، شروع كنيد. وضعيت آغازي در ريشة درخت قرار مي گيرد،

براي ساختن سطح بعدي درخت، تمام قواعدي را بيابيد كه سمت چپ آنها با گرة ريشة درخت يكسان هستند و با استفاده از سمت راست اين قواعد وضعيت هاي جديد را ايجاد كنيد. براي سطح بعدي درخت عمل فوق را در مورد گره هاي سطح قبلي انجام دهيد. به اين كار آنقدر ادامه دهيد تا به وضعيتي برابر با وضعيت هدف رسيده باشيد.

Square 1 empty and Square 2 contains tile n 
Square 2 empty and Square 1 contains tile n
Square 1 empty and Square 4 contains tile n 
Square 4 empty and Square 1 contains tile n


Square 2 empty and Square 1 contains tile n 
Square 1 empty and Square 2 contains tile n
شكل 1 : يك نمونه از قواعد براي حل كردن معماي هشت

شكل 2 : يك مثال از بازي معماي هشت
• استدلال به طرف عقب با شروع از وضعيت هدف: ساختن يك درخت از سلسله حركت هايي كه ممكن است راه حل را تشكيل دهند، شروع كنيد. وضعيت(هاي) هدف را در ريشة درخت قرار دهيد. جهت ايجاد سطح بعدي درخت، قواعدي را بيابيد كه سمت راست آنها با گرة ريشه برابر هستند. با استفاده از سمت چپ اين قواعد و بكارگيري آنها گره هاي سطح دوم اين درخت را بسازيد. سطوح بعدي را هم به كمك سطوح قبلي و با توجه به روش فوق بسازيد و آنقدر ادامه دهيد تا گرهي ساخته شود كه با وضعيت آغازي برابر است.
به روش فوق استدلال هدف گرا يا زنجيرة عقب رو مي گويند.


توجه كنيد كه از همان قواعد در استدلال جلورو يا عقب رو استفاده مي شود. براي استدلال جلورو، سمت چپ هاي قواعدي با وضعيت جاري تست مي شوند و از سمت راست قواعد در ايجاد گره هاي جديد استفاده مي شود.
در مسئلة معماي هشت فرقي نمي كند كه از استدلال جلورو يا عقب رو استفاده شود و در هر دو حالت تعداد يكساني مسير مورد جستجو قرار مي گيرند. اما در ساير مسائل هميشه اين طور نيست، و با توجه به توپولوژي فضاي مسئله ممكن است جستجو در يك جهت خيلي سريعتر از جهت ديگر باشد.
سه فاكتور در رابطه با اين سئوال كه استدلال بايد در كدام جهت باشد مهم هستند:
• تعداد وضعيت هاي آغازي بيشتر است يا هدف؟ ما هميشه مايليم كه از تعداد كمتر وضعيت ها به طرف تعداد بيشتر برويم.


• در كدام جهت فاكتور شاخه شاخه شدن بزرگتر است؟ (اين فاكتور تعداد متوسط گره هايي است كه مستقيماً مي توان از يك گره تك رسيد) ما مايليم در جهتي حركت كنيم كه اين فاكتور كوچكتر است.
• آيا از برنامه خواسته خواهد شد تا روند استدلالش را براي استفاده كننده توجيه كند؟ اگر اين طور است بهتر است حركت در جهتي باشد كه با طرز تفكر استفاده كننده مطابقت بيشتري دارد.


ذكر چند مثال براي روشنتر شدن مطلب ضروري است. به نظر مي رسد كه رانندگي از يك محل ناآشنا به طرف منزل خيلي راحت تر از منزل به طرف محل ناآشنا باشد. چرا؟ فاكتور شاخه شاخه شدن تقريباً در هر دو جهت يكسان است. نكتة مهم اين است كه ما خيلي نقاط نزديك منزل را هم همانند منزل تلقي مي كنيم و به اين ترتيب تعداد محل هايي كه جزء تعريف خانة ما مي گنجند بيش از تعداد محل هايي است كه به عنوان هدف ناآشناي ما وجود دارند. بنابراين اگر نقطة آغازي ما منزل ما ست و هدف ما يك محل ناآشناست بهتر است از استدلال عقب رو با شروع از محل ناآشنا استفاده كنيم.


از طرف ديگر يك مسئله انتگرال گيري را در نظر بگيريد. فضاي مسئله عبارت است از مجموعة فرمولها كه برخي داراي عبارت انتگرال هستند. وضعيت آغازي يك فرمول بخصوص با عبارت انتگرال است. وضعيت هدف فرمولي است كه معادل فرمول اولي است ولي عبارت انتگرال ندارد. پس وضعيت آغازي راحت و يكتا است ولي هدف متعدد است يعني وضعيت هاي متعددي در محدودة هدف ممكن است قرار گيرند (تمام عبارات بدون انتگرال!) پس در اينجا از استدلال جلورو با شروع از وضعيت آغازي استفاده مي كنيم.


در مثال فوق فرض ما اين بوده است كه فاكتور شاخه شاخه شدن در هر دو جهت تقريباً يكسان است. اگر اينگونه نباشد بايد آنرا نيز در نظر گرفت.
باز هم مسئلة ثابت كردن تئوري هايي در يك قلمرو بخصوص رياضي را در نظر بگيريد. وضعيت هدف ما عبارتست از اثبات يك تئوري خاص

. وضعيت آغازي ما معمولاً تعداد كمي از اصول مي باشند. اين دو مجموعة هدف و آغازي معمولاً از نظر اندازه فرقي ندارند. اما فاكتور شاخه شاخه شدن در هر دو جهت را در نظر بگيريد. از يك تعداد كمي اصل، مي توانيم تعداد زيادي تئوري نتيجه بگيريم. از طرف ديگر اين تعداد زياد تئوري ها به همان تعداد كمي اصل برمي گردند. بنابراين فاكتور شاخه شاخه شدن در جهت اصول به تئوري ها خيلي بيشتر از دو جهت معكوس است. اين بدين معناست كه ما بهتر است در هنگام اثبات تئوريها از اثبات شروع كنيم و به عقب برويم. رياضيدانان مدتهاست كه اين را درك كرده اند.


سومين عاملي كه جهت جستجو را تعيين مي كند اين است كه گاهي برنامه مجبور است دلايل خود را توجيه كند. طراحان MYCIN (برنامة تشخيص بيماري هاي عفوني) به اين نكته توجه خاصي مبذول داشتند. اين برنامه از هدفش كه تعيين علت بيماري شخص مريض است به طرف عقب استدلال مي كند. براي اين منظور از قواعدي استفاده مي كند

كه به آن چيزهايي مشابه عبارت زير را مي گويند:
"If the organism has the following set of characteristics as determined by the lab results, then it is likely that it is organism X"
با استدلال عقب رو با استفاده از قواعدي همچون قواعد فوق، برنامه مي تواند به سئوالاتي از قبيل سئوال:
Why should I perform that test you just asked for?


پاسخي همانند زير بدهد:
"Because it would help to determine whether organism X is present."
از اكثر تكنيك هاي جستجو كه در اين فصل معرفي مي شوند در استدلال جلورو و عقب رو مي توان استفاده كرد. يكي از كارهاي جالب اين است كه از هر دو جهت شروع كنيم تا اينكه از دو مسير به هم برسند. به اين استراتژي جستجوي دوسو مي گويند. اين روش هميشه مؤثر نيست و شكل 3 يكي از علل شكست اين گونه جستجو را نشان مي دهد:
*************************
شكل 3- استفادة بد از جستجوي هيوريستيك دوسو
ارائه دانش به كمك ساير منطق ها
مقدمه


همانطوري كه درقسمت پيش گفتيم، تكنيك هاي منطق مسند براي حل مسائل گوناگون مفيد هستند. اما متأسفانه منطق مسند در بسياري ديگر از قلمروها، راهي مناسب براي ارائه و كار با اطلاعات مهم فراهم نمي آورد. به عنوان نمونه در زير چند نوع از اطلاعاتي كه ارائه آنها در منطق مسند دشوار است آمده اند:
«امروز خيلي گرم است». چگونه مي توان درجات نسبي گرما را نشان داد؟


«افرا مو زرد معمولاً چشمان آبي دارند». چگونه مي توان يك «مقدار» اطمينان را ارائه نمود؟
«فرض كنيد هر فرد بالغي كه مي بينيد، بلد است بخواند، مگر اينكه گواهي برخلاف آن وجود داشته باشد». چگونه مي توان اين نكته را ارائه نمود كه از عدم حضور يك حقيقت مي توان حقيقت ديگري را استنتاج نمود؟


«بهتر است كه قطعات بيشتري (مهره هاي بيشتري) نسبت به رقيب خود در صفحه داشته باشيد» چگونه مي توان اين نوع از اطلاعات هيوريستيك را ارائه نمود؟»
«من مي دانم كه Bill فكر مي كند تيم Giants خواهد برد. اما خودم فكر مي كنم كه آنها خواهند باخت». چگونه مي توان چند سيستم تفكر متفاوت را يكجا ارائه نمود؟
بسياري از استدلال هايي كه انسان ها انجام مي دهند عبارت از كار با يك مجموعه از اعتقادات و تغيير دادن آنها است. هر يك از اين اعتقادات به كمك شواهدي تأكيد مي گردند و براي بسياري از آنها، محرك هاي شخصي جهت حفظشان وجود دارد. ناكامل و ناسازگار بودن مي تواند از مشخصات طبيعي يك مجموعه از اعتقادات، كه به آن «سيستم اعتقادات» مي گوييم،

باشد. براي اينكه برنامه ها بتوانند با سيستم هاي اعتقادات كار كنند، احتياج به سيستم استدلال است كه بتواند برنامه هاي بتوانند با سيستم هاي اعتقادات كار كنند، احتياج به سيستم استدلال است كه بتواند با اطلاعاتي همچون آنها كه در بالا آمدند كار كند. براي اينكه بهتر بفهميم منظور از اعتقادات، ايجاد، تست و همچنين تغيير آنها چيست

يك مثال از كتابي به نام The web of belief را به فارسي برمي گردانيم و آنرا بررسي مي كنيم.
فرض كنيد فهيمي، صدري و تفضلي از افراد مورد ظن در رابطه با يك قتل مي باشند! فهيمي داراي عذري است. به اين ترتيب كه اسم او در دفتر هتل عباسي براي روز قتل ثبت شده است. صدري هم عذري دارد زيرا برادر خانمش تأييد كرده كه وي در زمان وقوع قتل نزد او بوده است. تفضلي هم عذري دارد، او مي گويد در استاديوم تختي مشغول تماشاي مسابقة فوتبال بين تيم استقلال و آزادي بوده است. اما ما فقط گفتة خودش را داريم.

بنابراين ما معتقديم كه:
1- فهيمي مرتكب قتل نشده است.
2- صدري هم مرتكب قتل نشده است.
3- فهيمي، صدري يا تفضلي مرتكب قتل شده اند.
اما تفضلي شانس خوبي آورده است: تلويزيون او را در استاديوم در تاريخ مورد نظر نشان داده است. پس اعتقاد جديدي براي ما حاصل مي شود:
4- تفضلي مرتكب قتل نشده است.


اعتقادات 1 تا4 ما ناسازگار هستند. پس بايد يكي را براي رد كردن انتخاب نمود. كداميك ضعيف ترين گواهي را دارا مي باشند؟ پايه و اساس اعتقاد 1 قوي است زيرا هتل عباسي هتل معتبري است. پاية اعتقاد 2 ضعيف تر است، زيرا ممكن است برادرخانم صدري دروغ بگويد. اعتقاد 3 از دو جهت محكم مي شود: اول اينكه هيچ علامت دزدي وجود ندارد و دوم اينكه اگر از امكان دزدي بگذريم فقط فهيمي، صدري يا تفضلي مي توانسته اند سودي از قتل ببرند!


اين حذف امكان دزدي قطعي است اما قسمت دوم هنوز قطعي نيست زيرا ممكن است نفر چهارمي باشد كه او هم سودي از قتل مي برده است. اعتقاد 4 قطعي است. به اين ترتيب 2 و 3 ضعيف هستند يعني يا بايد صدري را متهم كرد يا به دنبال نفر چهارم گشت. ببينيد چگونه تجديدنظر ما تا پايين ادامه مي يابد. اگر 2 را رد نماييم در واقع در اعتقاد قبلي خود (هر چند ضمني) كه برادرخانمش راست گفته است تجديدنظر كرده ايم. اگر 3 را رد كنيم، در اعتقاد قبلي خود مبني بر اينكه از دزدي كه بگذريم فقط اين سه نفر مي توانسته اند از قتل سودي ببرند تجديدنظر نموده ايم.


در ضمن نوعي حالت اختياري و دلبخواهي در سازمان اين بررسي وجود دارد. البته اعتقادات ناسازگار 1 تا 4 را بيرون و سپس آنها را با برخي اعتقادات ضمني همراه كرديم: براي مثال اعتقاد در مورد قسمت پذيرش هتل، اعتبار هتل، تلويزيون و برادر خانم. ما در واقع به اين اعتقادات اخير مرتبة كمتري داديم، در حالي كه مي توانستيم همة اعتقادات را در يك سطح تصور كنيم و شروع به حذف ناسازگاري ها نماييم. اما سازمان سيستم ما، معرف هدف ما است. ما چهارتايي اصلي را انتخاب نموديم

و براي حذف يا انتخاب يكي از ساير اعتقادات كمك گرفتيم. اين در واقع همان استراتژي divide and conquer است. به اين ترتيب كه وقتي كه يك مجموعه از اعتقادات به گونه اي در كنار هم جمع شده اند كه تناقض ايجاد مي كنند، زير مجموعه اي كوچك از آنها را طوري انتخاب كنيد كه هنوز داراي تناقض باشند. براي مثال: 1 تا 4. زيرا مطمئن هستيم كه به اين روش بزودي برخي از اعتقادات را از زيرمجموعه حذف خواهيم كرد. در بازنگري و تجديدنظري كه در رابطه با اعتقادات زيرمجموعه خواهيم به طرف اعتقادات مجموعة اوليه كشيده خواهيم شد و به مرور شاهد حذف آن اعتقادات هم خواهيم بود.


كي از كنكاش در عقايد دست برخواهيم داشت؟ در رابطه با عقايد 1 تا 4 ديديم كه عقايد زيرين آنها را نيز بيرون كشيديم. البته مي توانستيم عميق تر هم برويم. در عمل، كنكاش هنگام پايان مي يابد كه راضي شده باشيم كه مي توانيم سازگاري را در عقايد برقرار سازيم.
داستان بالا تعدادي از مشكلات مربوط به دانش غيرمطمئن و مشكوك را نشان مي دهد. در علوم كامپيوتر چندين راه حل براي اين مشكلات پيشنهاد شده است:
• منطق غيريكنواخت- اين منطق اجازه مي دهد احكام از بانك اطلاعات حذف شوند يا بدان اضافه گردند. يكي از منافع اين منطق در آن است كه اجازه مي دهد اعتقاد به يك حكم به خاطر عدم اعتقاد به حكمي ديگر ايجاد گردد.
• استدلال احتمالي- اين روش كمك مي كند استنتاج محمتل اما غير يقين انجام دهيم.


• منطق مشكوك- اين منطق اجازه مي دهد ويژگي هاي مشكوك يا پيوستة عناصر ارائه گردند.
• فضاي عقايد- اجازه مي دهد مدل هاي تودرتوي مجموعه هاي عقايد ارائه گردند.
در اين فصل ما فقط روش هاي اول و دوم را بررسي خواهيم كرد. سومي هرچند مديون يك ايراني به نام پروفسور زاده است و از لحاظ رياضي خيلي تكامل يافته است اما هنوز در زمينة هوش مصنوعي مانند دوتاي اولي مورد استفاده قرار نگرفته است.


استدلال غيريكنواخت
اصولاً سيستم هايي كه بر اساس منطق مسندها هستند، يكنواخت مي باشند. يعني تعداد احكامي كه مي دانيم حقيقت دارند مرتباً و فقط افزايش مي يابند. احكام جديدي را مي توان به سيستم افزود و تئوري هايي را اثبات كرد اما هيچ كدام از اين دو عمل منجر به غير معتبر شدن يك حكم درست قديمي نمي گردد. كار كردن با چنين سيستمي چندين نفع دارد:


• هنگامي كه حكم جديدي به سيستم افزوده مي گردد نيازي به انجام چك هايي جهت كشف ناسازگاري ها بين اين حكم و اطلاعات قديمي نيست.
• بعد از اين كه حكمي اثبات گرديد لازم نيست ليستي از احكامي كه در اثبات دخيل بوده اند نگهداري كرد زيرا خطر غيرمعتبر شدن هيچ يك از آنها وجود ندارد.
متأسفانه اين گونه سيستم هاي يكنواخت در رابطه با سه وضعيتي كه در مسائل واقعي بروز مي كنند خوب نيستند: 1) اطلاعات ناكامل 2) شرايط متغير 3) ايجاد فرض ها در طي روند حل مسائل پيچيده.
مقدمه اي بر استدلال غيريكنواخت


به ندرت پيش مي آيد كه سيستمي تمام اطلاعات مفيد را در اختيار داشته باشد. اما در اغلب موارد هنگامي كه اطلاعاتي در دسترس نيستند هنوز مي توان فرض هايي منطقي و عاقلانه نمود. البته به اين شرط كه هيچ تناقض آشكاري ايجاد نگردد. به ساختن چنين فرض هايي «استدلال قراردادي» مي گويند.
براي مثال، فرض كنيد براي شام در منزل دوستي دعوت هستيد. در بين راه از كنار يك گلفروشي مي گذريد. آيا صاحبخانه از گل خوشش مي آيد؟ احتمالاً شما اطلاع دقيقي نداريد و نمي توانيد به سئوال فوق پاسخ دهيد. اما شما راه اشتباهي نرفته ايد

اگر كه از اين قاعدة عمومي استفاده كنيد كه: اكثر مردم گل دوست دارند، بنابراين فرض كنيد هر شخص بخصوص هم گل دوست دارد مگر اينكه گواهي در رد اين فرض موجود باشد. اين نوع از استدلال قراردادي در واقع غيريكنواخت است (يعني افزودن اطلاع جديدي ممكن است باعث حذف يك اطلاع قديمي گردد) زيرا احكامي كه به اين ترتيب مشتق مي شوند به عدم وجود اعتقاد به ساير احكام وابسته هستند. يعني اگر يكي از آن احكام غايب قبلي حالا به سيستم افزوده گردد بايد حكمي كه بر اثر استدلال قراردادي ايجاد شده بود را حذف نمود. به اين ترتيب در مثال ما اگر شما گل را بخريد و به منزل دوست خود برويد اما او به مجرد ديدن شما شروع به عطسه كردن (در اثر آلرژي) نمايد بايد اعتقاد قبلي خود در مورد اين كه دوست شما گل دوست دارد را حذف كنيد و البته هر اعتقاد ديگري كه بر اين اساس استوار است نيز حذف مي گردد.


مثال بالا يك نوع معمول از استدلال قراردادي را نشان مي دهد. به اين نوع استدلال «محتمل ترين انتخاب» مي گويند. شما مي دانيد كه يكي از چند چيز بايد درست باشد و در غياب اطلاعات كامل، ما محتمل ترين را برمي گزينيم. اكثر مردم گل دوست دارند. اكثر سگ ها دم دارند. نوع ديگر از استدلال قراردادي، مبني بر قرائن و محافظه كارانه است.

در اينجا ما فرض مي كنيم تنها آن عده از عناصر، ويژگي P را ارضاء مي كنند كه بتوان نشان داد اين كار را مي كنند. براي مثال فرض كنيد ما داريم براي حل مسئله اي قايقي را به طرف ديگر رودخانه پارو مي زنيم. چندين چيز مي توانند جلوي استفاده موفق از قايق را بگيرند. از جمله اينها فقدان پارو، سوراخ در قايق، در گل گير كردن قايق و غيره هستند. برنامة حل كنندة مسئله بايد بتوانند از اثبات صريح عدم صحت هر كدام اينها اجتناب كند. كاري كه برنامه مي تواند بكند اين است كه فرض كند تنها چيزهايي كه مي تواند صريحاً درست بودن آنها را اثبات نمايد درست هستند.


يك توصيف مختصر و صحيح استدلال قراردادي بايد فقدان برخي اطلاعات (X) را به اثبات (Y) ربط دهد. يعني:
استدلال قراردادي: تعريف 1:
If X is not known, then conclude Y.


اما در اكثر سيستم ها فقط كسر كوچكي از چيزهايي كه شناخته شده محسوب مي شوند صريحاً در بانك اطلاعات انبار شده اند. ساير اطلاعات را مي توان با سعي و كوشش به كمك آنهايي كه صريحاً انبار شده اند اثبات كرد. بنابراين تعريف موردنظر ما به صورت زير در مي آيد:
استدلال قراردادي: تعريف 2:
If Y con not be proved, then conclude Y.


اما اگر فرض كنيم كه هنوز با فرض مسند كار مي كنيم، چگونه مي دانيم كه X را نمي توان ثابت كرد؟ سيستم تصميم گيرنده نيست. بنابراين براي هر X اختياري ما نمي توانيم تضمين كنيم كه بتوانيم بگوييم X را مي توان يا نمي توان ثابت كرد. بنابراين مجبوريم به تعريف سوم پناه ببريم:
استدلال قراردادي: تعريف 3:
If X can not be proved in some allocated amount of time, then conclude Y.
اما حالا توجه داشته باشيد كه تعريف روند استدلالي كه توسط آن Y مشتق گرديد به چيزي وابسته است كه خارج از حيطة منطق قرار دارد. يعني حالا وابسته به مقدار محاسباتي است كه مي توان در مدت مشخص شده اي انجام داد و اين كه آيا آن محاسبات در رابطه با جستجوي اثبات سريع و با راندمان خوبي بوده است يا خير؟ پس حالا عملاً نمي توان احكامي صوري و رسمي در مورد رفتار سيستم بيان نمود بعلاوه، در مقايسه با منطق مسند

، در اينجا قدرت تعيين صحت يك اثبات را از دست داده ايم. حالا ممكن است اثباتي به ما بدهند كه مي گويند Y نتيجه شده است زيرا نتوانستيم X را ثابت نماييم. اما با توجه به اينكه اثبات يا عدم اثبات X قطعيت ندارد، بنابراين سيستم هايي كه از آن گرفته شده اند نيز از قطعيت برخوردار نيستند. به اين ترتيب نياز به استدلال قراردادي كه بخاطر عدم حضور اطلاعات كامل ايجاد مي گردد ما را وادار به استفاده از سيستم هايي مي كند كه عملكرد رفتار آنها را نمي توان به صورت صوري بيان داشت.


حتي اگر در رابطه با شرايطي اطلاعات كامل در دست داشته باشيم، بعيد است كه اين وضع براي مدت طولاني ادامه يابد زيرا دنيا سريعاً در حال تغيير است. به عبارت ديگر احكامي كه زماني صحت داشتند ممكن است ديگر صحيح و دقيق نباشند. اين همان «مسئلة قالب» است و ما در مورد آن صحبت كرديم. ديديم كه استفاده از متغيرهاي وضعيت به حل آن كمك مي نمود.

اما متأسفانه اين راه حل كاملي نيست. زيرا در اين صورت بايد حكم جداگانه اي در رابطه با هر وضعيت كه در آن يك مسند درست است قرار داد. يعني تلاش زيادي صورت مي گيرد تا يك حقيقت كه به آهستگي تغيير مي كند بيان گردد. از طرفي با توجه به اينكه پس از هر عمل يك وضعيت جديد معرفي مي گردد به سختي مي توان متوجه شد

كه چندين سلسلة عمليات به يك وضعيت يكسان منتهي شده اند. راه ديگر حل مشكل دنياي متغير، حذف كردن احكامي است كه ديگر به دقت دنيا را توصيف نمي نمايند و به جاي آنها قرار دادن احكامي كه اين كار را با دقت و صحت انجام مي دهند. بار ديگر اين روش منجر به سيستم غيريكنواخت مي گردد كه در آن مي توان احكامي را از بانك دانش حذف يا به آن اضافه نمود و حالا هر بار كه حكمي حذف مي شود، ساير احكام كه وابسته بدان بوده اند نيز ممكن است حذف گردند.


حتي اگر دانستني هايي كه در دسترس يك سيستم قرار دارند از هيچكدام از مشكلات فوق برخوردار نباشند، يك سيستم حل مسئلة خوب ممكن است در طي روند حل مسئله، دانش هايي با رفتار غيريكنواخت توليد نمايد. فرض كنيد مي خواهيم برنامه اي بنويسيم كه براي يك مسئله نسبتاً ساده به صورت زير حلي بيابد. مثلاً مسئله ما ممكن است تعيين زماني باشد كه سه نفر كه خيلي سرشان شلوغ است

بتوانند در جلسه اي شركت نمايند. يك راه حل اين مسئله به اين صورت مي باشد كه ابتدا فرض كنيم ملاقات در روز خاصي صورت مي گيرد (مثلاً چهارشنبه) و حكمي را در اين رابطه به انك اطلاعات بيافزاييم و به نحوي مشخص كنيم كه اين يك فرض است. حالا مي توانيم به دنبال زمان مناسب بگرديم و مرتباً با برنامه هاي آن سه نفر چك نماييم. اگر تناقضي نهايتاً وجود داشت حكمي كه فرض ما را بيان مي كرد بايد حذف گردد و حكم ديگري به جاي آن قرار گيرد. البته ساير نتايج كه بر اساس آن فرض ايجاد شده اند نيز بايد حذف گردند. پس مي بينيد كه سيستمي غيريكنواخت در اختيار داريم.


البته اين نوع وضعيت ها را مي توان به كمك يك درخت و جستجو در آن با امكان عقب گرد حل نمود. تمام فرض ها و نتايجي كه از آنها حاصل گشته اند را مي توان به كمك گره هايي نشان داد. وقتي كه عدم سازگاري در بانك اطلاعات ايجاد مي گردد

عقب گرد به گرهي كه داراي مسيرهاي بررسي نشده مي باشد صورت مي گيرد. به اين ترتيب فرض ها و استنتاجاتي كه به كمك آنها صورت گرفته است به صورت اتوماتيك محو مي شوند. نقطة ضعف اين روش در شكل نشان داده شده است. در اين شكل قسمتي از درخت حل مسئله ارائه گشته است. براي حل مسئله در واقع برنامه بايد يك مسئلة ارضاء محدوديت را حل نمايد يعني روز و ساعتي را بيابد كه هر سه نفر بيكار باشند و اطاق مناسبي هم آزاد باشد.


به شكل نگاه كنيد. فرض ها و نتايج حاصله در هر گره ثبت شده است. توجه داشته باشيد كه هر سه نفر هر روز ساعت 2 بعد از ظهر وقت آزاد دارند. وقتي كه برنامه كشف مي كند در روز چهارشنبه اطاق خالي جهت برقراري ملاقات يافت نمي شود به قبل از فرض نمودن چهارشنبه به عنوان روز ملاقات عقب گرد مي نمايد و روز ديگري را انتخاب مي نمايد و سپس روند قبلي را تكرار مي كند تا تشخيص دهد ساعت 2 بعدازظهر مناسب است.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید