مقدمة إلى لغة الذكاء الإصطناعي برولوج 2

Wednesday, August 13, 2008 | Labels: | |


من منا لا يعرف مسألة أو لغز آينشتاين الذي انتشر كثيراً على المنتديات وجروبات الياهو وفي كل مكان ، وهو اللغز الذي يعتقد آينشتاين أن 98% من البشر لا يمكنهم حله ، هذا هو اللغز :

1- توجد خمس منازل لكل منها لون مختلف .

2- يسكن كل منزل شخص من جنسية مختلفه .

3- كل ساكن يفضل ان يشرب مشروبا معين , ويدخن سجائر نوع معين منها,ويحتفظ بحيوان أليف معين .

4- لاأحد من الجيران الخمسة يشرب نفس المشروب أو يدخن نفس النوع من السجائر أو لديه نفس الحيوان الأليف .

معلومات الربط :

* يسكن البريطاني في المنزل الأحمر .

* لدى السويدي كلب. * يحب الدنماركي شرب الشاي .

* البيت الأخضر على الجانب الأيسر من البيت الأبيض.



* مالك البيت الاخضر يشرب القهوة.

* الشخص الذي يشرب سجائر نوع بال مال لديه طائر.

* الرجل الذي يسكن في البيت الأوسط يشرب الحليب.

* مالك المنزل الأصفر يدخن سجائر نوع دانهيل .

* يسكن النرويجي في المنزل الاول .

* يسكن مدخن سجائر نوع مارلبور مجاورا لمن لديه قطه.

* الرجل الذي لديه حصان يسكن مجاورا لمن يدخن سجائر نوع دانهيل

* مدخن سجائر نوع وينفيلد يحب شرب الجعه (شراب الشعير).

* يسكن النرويجي مجاورا للبيت الأزرق .

* يدخن الألماني سجائر نوع روثمانز.

* مدخن سجائر نوع مارلبور لديه جار يحب شرب الماء.

المطلوب -.:

تحدد اللون / الجنسيه / الحيوان / المشروب / نوع السجائر لكل واحد مع توضيح :

من منهم لديه السمكة (أو أن حيوانه الأليف سمكة)؟

لا توجد خدعه في حل هذا اللغز , بل هو منطق صرف من يعرف الإجابة سيكون من ضمن أذكى أذكياء العالم (2% الأذكياء في العالم).

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

بداية هذه المسألة بالغة الانجليزية لنستخلص منها بعض المصطلحات

The Brit lives in the red house.
The Swede keeps dogs as pets.
The Dane drinks tea.
The green house is on the left of the white house.
The green house's owner drinks coffee.
The person who smokes Pall Mall rears birds.
The owner of the yellow house smokes Dunhill.
The man living in the center house drinks milk.
The Norwegian lives in the first house.
The man who smokes Blends lives next to the one who keeps cats.
The man who keeps horses lives next to the man who smokes Dunhill.
The owner who smokes Bluemaster drinks beer.
The German smokes Prince.
The Norwegian lives next to the blue house.
The man who smokes Blend has a neighbour who drinks water.

والآن سننقل نفس البيانات السابقة ولكن بنظام كتابة برولوج :

next_to(X, Y, List) :- iright(X, Y, List).
next_to(X, Y, List) :- iright(Y, X, List).
iright(L, R, [L [R _]]).
iright(L, R, [_ Rest]) :- iright(L, R, Rest).
einstein(Houses, Fish_Owner) :-
=(Houses, [[house, norwegian, _, _, _, _], _, [house, _, _, _, milk, _], _, _]),
member([house, brit, _, _, _, red], Houses),
member([house, swede, dog, _, _, _], Houses),
member([house, dane, _, _, tea, _], Houses),
iright([house, _, _, _, _, green], [house, _, _, _, _, white], Houses),
member([house, _, _, _, coffee, green], Houses),
member([house, _, bird, pallmall, _, _], Houses),
member([house, _, _, dunhill, _, yellow], Houses),
next_to([house, _, _, dunhill, _, _], [house, _, horse, _, _, _], Houses),
member([house, _, _, _, milk, _], Houses),
next_to([house, _, _, marlboro, _, _], [house, _, cat, _, _, _], Houses),
next_to([house, _, _, marlboro, _, _], [house, _, _, _, water, _], Houses),
member([house, _, _, winfield, beer, _], Houses),
member([house, german, _, rothmans, _, _], Houses),
next_to([house, norwegian, _, _, _, _], [house, _, _, _, _, blue], Houses),
member([house, Fish_Owner, fish, _, _, _], Houses).

بعد ترجمة هذا المشروع ، تستطيع سؤال البرنامج عن اي منهم وسوف يتتبع البيانات المتاحة له + القواعد ليصل بك إلى الناتج ، هذا هو السؤال الأساسي والخاص بمن يمتلك سمكة :

?- einstein(Houses, Fish_Owner).

بداية ، دعني استغل ذكائك وحاول القيام بالحل بمفردك ، يمكنك التأكد من حلك باستخدام برولوج ، وفي النهاية لا تنس أن تحاول أن تتوسع في برولوج فقد تستفيد الكثير لاحقاً .

وفي الختام هذا هو الحل يمكنك اظهاره بتحديد الكلمة التالية بالماوس (الألماني) ، إذا لم يكن هذا هو حلك فأنت مرشح للانضمام إلى نادي ال 98% ، وهي نسبة ليست بسيطة كما ترى .

0 comments: