البرمجة الوظيفية LISP :
أول لغات البرمجة الوظيفية تم اختراعها لتقديم مميزات في اللغة للعمليات على القوائم . الحاجة إليها ونموها كان في أول تطبيقاتها في مساحة من الذكاء الاصطناعي .
بدايات الذكاء الاصطناعي والعمليات على القوائم :
بدأ ظهور الاهتمام بالذكاء الاصطناعي في منتصف الخمسينات في عدة أماكن. البعض منها زاد اهتمامها في علم اللغة وبعض علم النفس وعلم الرياضيات... العلماء النفسيين اهتموا بعرض تخزين معلومات الإنسان واسترجاعها بواسطة عمليات أساسية في الدماغ . الرياضيون اهتموا بعمليات الذكاء مثل إثبات النظريات وجميع هذه التحقيقات التي وصلوا إليها و على نفس القائمة بعض الطرق يجب أن يتم تطويرها لكي تسمح للحاسبات بعملية تبسيط البيانات في القوائم المرتبطة . تقريباً جميع الحسابات كانت على البيانات الرقمية في المصفوفات.
تطور مفهوم العمليات على القوائم على يد Herbert Simon ,Allen Newell وكان أول منشور في ورقة كلاسيكية تصف أول برامج الذكاء الاصطناعي حتى يمكن تطبيق اللغة. وسميت اللغة باسم IPL-I ( لغة معالجة المعلومات ) ولم يتم تطبيقها .
الإصدار اللاحق IPI-II تم تطبيقه في شركة حاسبات Rand Corporation Jonnica Computer . استمر تطوير لغة IPL حتى عام 1960 عندما تم نشر وصف لغة IPL-V على يد Nwell و Tonge المستوى الأدنى للغة IPL لم يُستخدم بشكل واسع. في الحقيقة تم تطبيق لغة التجميع للحاسبات الافتراضية بواسطة المفسر, وتضمنت أوامر العمليات على القوائم أول تطبيق كان على آلةJohnniac ، العامل الآخر لبقاء لغات IPL هو انتشارها وشعبيتها هو أن مساهمات لغة IPL كانت في تصميم قوائمها ومظاهرة العمليات على القوائم التي كانت عملية ومفيدة. حاسبات IBM أصبحت مهتمة بالذكاء الاصطناعي في منتصف الخمسينات واختارت إثبات النظريات كمساحة مظاهرة. التكلفة العالية لمترجم FORTRAN I أقنعت IBM بضرورة إلحاق العمليات على القوائم بلغة فورتران بدلاَ من أن تكون صيغة للغة جديدة. تم تصميم وتطبيق لغة فورتران للعمليات على القوائم كامتداد لغة فورتران .
عمليــــــــة التصميـــــــــم :
أخذ John Me Carthy الترقيم الملخص لقسم بحث معلومات IBM عام 1958. وكان هدفه تحقيق حسابات مبسطة وتطوير مجموعة متطلبات لأداء هذه الحسابات . كمثال لأحد المشاكل : اختار تعابير جبرية مختلفة لإجراء هذه الدراسة أحضر قائمة متطلبات اللغة. من بين هذه المتطلبات توجد طرق التحكم في الدوال الرياضية: التكرار و التعابير الشرطية . اللغة عالية المستوى الوحيدة المتوفرة في ذلك الوقت هي FORTRAN I التي لا تحتوي على أي من هذه المتطلبات .
المتطلب الآخر الذي نشأ من تحقيق الاختلافات المبسطة هو الحاجة إلى تخصيص القوائم المرتبطة وبعض أنواع القوائم المخصصة ضمنياً Mc Carthy لا يسمح لخوارزميته الرائعة بالاختلافات لتكون مبعثرة بجمل عدم التخصيص الواضحة. لأن لغة فورتران للعمليات على القوائم FLPL لا تدعم التكرار و التعابير الشرطية والتخزين الغير مخصص أو عدم التخصيص الضمني كانت واضحة كمتطلبات للغة الجديدة بالنسبة لـ Mc Carthy . وعندما عاد إلى MIT في نهاية 1958 قام هو و Manin Minsky بصياغة مشاريع MIT للذكاء الاصطناعي مع وجود مختبرات بحث الكترونية . أول جهد هام للمشروع كان لإنتاج نظام للعمليات على القوائم واستخدم أوليا لتطبيق برنامج اقترحه Mc Carthy لتطوير العمليات على القوائم الإصدار الأول من LISP يسمى أحياناً Pure LISP لأنه لغة وظيفية تماماَ .
نظـــــــرة عامــــــــــــــة :
هياكل البيانات :
لغة Pure lISP تحتوي على نوعين فقط من هياكل البيانات : الذرات والقوائم .
* الذرات عبارة عن رموز من معرفين وأرقام . مفهوم تبسيط تخزين المعلومات في القوائم المرتبطة طبيعي وتم استخدامه في IPL-II. الهياكل تسمح بالإدخال والحذف في أي نقطة . العمليات التي قد تكون ضرورية هي جزء من العمليات على القوائم . LISP نادراَ ما تتطلب هذه العمليات .
* القوائم تعرف بتحديد عناصرها . القوائم البسيطة هي التي تكون عناصرها مقيدة للذرات.
هياكل القوائم المتداخلة تعرف أيضاً بعلامات الحصر ( أقواس ) .
داخلياً : القوائم عادة تخزن كهياكل قائمة مرتبطة مفردة بحيث كل عقدة لها مؤشرين وتمثل عنصر من عناصر القائمة , المؤشر الأول يشير إلى رمز أو قيمة عددية .
المؤشر الأول في القائمة الفرعية يشير إلى عقدة القائمة الفرعية. في كل الحالات المؤشر الثاني يشير إلى العنصر التالي في القائمة. عناصر القائمة توضع أفقياً ..
العمليات في البرمجة الوظيفية :
صممت لغة LISP كلغة برمجة وظيفية. جميع العمليات الحسابية في البرنامج الوظيفي بارعة بتطبيق الدوال على القيم. جمل التخصيص والمتغيرات التي تشكل حدود لبرامج اللغات الأمرية ليست ضرورية في لغات البرمجة الوظيفية. العمليات التكرارية يمكن أن تحدد بواسطة مناداة الدالة التكرارية وعمل تكرار غير ضروري. هذه المفاهيم الأساسية للبرمجة الوظيفية تجعلها مختلفة بشكل ملحوظ عن البرمجة في اللغات الأمرية .
صيغة لغة LISP ( النحو والصرف ) :
لغة LISP مختلفة جداً عن اللغات الأمرية و ذلك لأنها لغة برمجة وظيفية ولأن برامج LISP تبدو مختلفة عن تلك اللغات مثل فورتران و C .
على سبيل المثال : لغة C خليط معقد من اللغة الإنجليزية والجبر، بينما لغة LISP بسيطة شيفرة البرنامج والبيانات لها نفس الصيغة بالضبط ( A B C D ) .
عندما تفسر كبيانات هي عبارة عن قائمة من 4 عناصر ، وعندما ينظر إليها على أنها شيفرة هي تطبيق لدالة اسمها A لثلاثة قيم D , C , B .
التطويـــــــــــــر :
لغة LISP إجمالا مسيطرة على تطبيقات الذكاء الاصطناعي لمدة ربع قرن ومازالت أكثر اللغات المستخدمة في الذكاء الاصطناعي انتشاراً. العديد من التطبيقات المعاصرة مجموعة في شيفرة واحدة أسرع بكثير من الشيفرة المصدرية في المفسر.
إضافة إلى نجاح هذه اللغة في الذكاء الاصطناعي , فإن لغة LISP لغة برمجة وظيفية مبتكرة مثبتة لتكون مساحة حيوية من البحث في لغات البرمجة. اللغات الوظيفية أفضل بكثير للنظر إلى تطوير البرامج من استخدام اللغات الأمرية. خلال السبعينات وبداية الثمانينات كان عدد كبير من لهجات لغة LISP قد تطورت واستخدمت. الإصدار القياسي سمي COMMON LISP .
اللهجات المنحـــــــــدرة من لغة LISP :
هناك لهجتان من لغة LISP تستخدم بشكل واسع الآن :COMMON LISP و SCHEME .
1 - SCHEME :
ظهرت لهجة SCHEME من MIT في منتصف السبعينات. وكانت مميزة بصغر حجمها واستخدامها الخاص للمجال الثابت Static scoping ومعالجتها للدوال . دوال Scheme يمكن أن تكون قيم التعابير الرياضية وعناصر القوائم .. يمكن أن تعطى كقيمة للمتغيرات وتمرر كقيم وترجع كقيم من تطبيقات الدالة ..
الإصدار المبكر من LISP لا يقدم جميع هذه القابليات , عدا أنه يستخدم المجال الثابت Static scoping . كلغة صغيرة بمعاني و تركيبات بسيطة , Scheme مناسبة جداً للتطبيقات التعليمية كدراسة البرمجة الوظيفية والمقدمة العامة للبرمجة .
2 - COMMON LISP :
أنشئت لغة COMMON LISP بجهد لتجميع المميزات من لهجات متعددة للغة LISP ثم تم تطويرها في بداية الثمانينات لتتضمن Scheme داخل لغة مفردة .. أصبحت كمزيج من لهجات ، أي أن COMMON LISP لغة كبيرة ومعقدة..تعتمد على Pure LISP إذاً صيغتها والدوال الأولية والطبيعة الأساسية تأتي من هذه اللغة. لغة COMMON LISP تسمح بنوعية من المجالات dynamic scoping و static scoping. المجال الافتراضي للمتغيرات هو static ولكن عند الإعلان عن المتغيرات باستخدام كلمة special يصبح المجال هو dynamic. لغة COMMON LISP تحتوي على عدد كبير من أنواع البيانات والهياكل التي تتضمن السجلات والمصفوفات والأعداد المركبة والجمل ..
اللغات ذات العلاقـــــــــــــــــة :
ML صممت أصلا في الثمانينات على يد Robin Milner كلغة مصدرية لبرنامج يحقق النظام يسمى منطق الدوال القابلة للحساب ( L C F ) . M L لغة وظيفية أولية ولكنها أيضاً تدعم اللغات الأمرية. في ML الدوال عامة أكثر منها في اللغات الأمرية وتمرر كقيم بشكل دوري وقد تكون متعددة الأشكال بمعنى أنها يمكن أن تأخذ قيم من أنواع مختلفة في كل نداء مختلف للدالة. واختلافاً عن LISP و Scheme فإن نوع كل متغير وتعبير رياضي في ML يمكن أن يحدد وقت الترجمة . الأنواع مرتبطة بالمكونات بدلاً عن الأسماء . أنواع التعابير الرياضية تستنتج من سياق التعبير إلى حد ما تركيب ML يشبه اللغات الأمرية مثل باسكال و C .
Miranda تم تطويرها على يد David Turner في بداية الثمانينات وتعتمد جزئياً على اللغات ML و SASL و KRC . لغةHaskell تعتمد على جزء كبير من Miranda وهي مثلها لغة وظيفية مجردة لا تحتوي على متغيرات و لا جمل مساواة ( تخصيص ). خاصية أخرى مميزة للغة Haskell هي استخدامها للتطوير المتكاسل . ليس هناك تعابير رياضية مقيمة حتى تتطلب قيمها .هذا يقود إلى قابليات مفاجئة في اللغة.
معلومات إضافية عن الذكاء الاصطناعي :
تعريف الذكاء الاصطناعي :
هو دراسة الملكات العقلية للإنسان باستخدام النماذج الحسابية لإكساب الحاسب بعضا منها . وهو برامج الكمبيوتر التي تحاكي طريقة تفكير البشر، وفي إحدى المرات أعتقد علماء الكمبيوتر أن هذا ممكن وسهلٌ ولكنهم لم يتمكنوا من الوصول إلى ذلك بعد وبدلاً من ذلك فإن معظم الكمبيوترات مازالت تظهر درجة واضحة من الغباء.
علم الذكاء الإصطناعي :
هو أحد علوم الحاسب الآلي الحديثة التي تبحث عن أساليب متطورة لبرمجته للقيام بأعمال واستنتاجات تشابه ولو في حدود ضيقة تلك الأساليب التي تنسب لذكاء الإنسان ، فهو بذلك علم يبحث أولاً في تعريف الذكاء الإنساني وتحديد أبعاده ، ومن ثم محاكاة بعض خواصه ، وهنا يجب توضيح أن هذا العلم لا يهدف إلى مقارنة أو مشابهة العقل البشري الذي خلقه الله جلت قدرته وعظمته بالآلة التي هي من صنع المخلوق ، بل يهدف هذا العلم الجديد إلى فهم العمليات الذهنية المعقدة التي يقوم بها العقل البشري أثناء ممارسته ( التفكير ) ومن ثم ترجمة هذه العمليات الذهنية إلى ما يوازيها من عمليات محاسبية تزيد من قدرة الحاسب على حل المشاكل المعقدة.
تاريخ تطور الذكاء الاصطناعي :
1-الشبكات العصبية : في عام 1940 بدأت المحاولات لبناء تصميم نظام يفكر، يمكنه استخدام المنطق في عملياته بدلا من فكرة العلاقة الثابتة بين الرموز و ردود الأفعال . و تمخضت هذه المحاولات عن ابتكار الشبكات العصبية لمحاولة محاكاة شكل و ترتيب و طريقة عمل الخلايا في الجهاز العصبي للإنسان . انبعثت البحوث في هذا المجال من العمل الريادي للعالمين( نوربرت فينز . و وارن مكالك) في الأربعينات . الخلية العصبية تتركب من جسم يحتوي على نوى و يمتد منه ساق طويلة و تتصل الخلايا العصبية ببعضها عن طريق هذه السيقان بإفراز كيماوي يعمل كموصل فينقل الإشارات بين الخلايا . و لذلك فالتواصل في الجهاز العصبي عملية كهر وكيميائية . تحاول الشبكات العصبية تقليد هذا النموذج الطبيعي بتقسيم الشبكات إلى وحدات تمثل كل مها نموذجا لخلية عصبية شديدة التبسيط . و في عام 1940 تمكن عالمان هما( ماكلوش وبيتس) من تصميم شبكات إلكترونية بسيطة تحاكي الخلايا العصبية بصورة بدائية و تستطيع القيام بالحسابات المنطقية باستخدام الجبر البولي كطريقة للتعبير عن المفاهيم الرياضية بصيغة منطقية .في الخمسينات بدأ علماء الذكاء الاصطناعي محاولة بناء آلة ذكية تحاول تقليد المخ البشري و كان من أهم المحاولات في ذلك الشأن المحاولة التي قام بها( روزنبلات) عام 1957 لبناء نموذج مبسط لشبكية العين أكثر تعقيدا، والتي تعتبر الأب الشرعي للشبكات العصبية الحديثة بفضل احتوائها على مكبرات كان بإمكانها تمييز الأنماط و، هو التعرف على أشكال أو صيغ الإشارات ليمكن تصنيفها أو تمييزها أو تجميعها . و قد أمكن تعليم هذا النموذج من التعرف على بعض الأشكال المحدودة . و لكن إمكانياته المحدودة جدا جعلت الاهتمام يقل ببحوث الشبكات العصبية . و لا يقلل هذا من دور( مينسكى) و آلته البسيطة التي صممها في عام 1951 . بعد عقد واحد من الزمان ظهرت شبكات أكثر تطورا و تقيدا و عاد معها الحماس لمواصلة أبحاث الشبكات العصبية إلى إن اشتد الاهتمام بها مرة أخرى في الثمانينات بصورة متطورة .
مجالات الذكاء الاصطناعي : اتجهت أبحاث الذكاء الاصطناعي إلى بناء برامج في مجالات محددة كما سبق إليه القول و من هذه المجالات:
1. النظم الخبيرة أو نظم الخبرة .
2. منظومات اللغات الطبيعية .
3. البرمجة الآلية .
4. إدراك الحاسب للكلام .
5. أمكانية الرؤية في الحاسب .
6. آلات الروبوت .
7. إثبات النظريات.
8. تعلم الحاسب .
9. ألعاب الحاسب و التطبيقات التجارية في الإعلام المتعدد .
و قد كانت إحدى المشاكل الكبرى التي تواجه بناء هذه البرامج إلى وقت قريب إضافة إلى درجة التعقيد العالية التي تمييز هذه البرامج ، هو حاجتها إلى سعة تخزينية عالية . كما أن هذه البرامج كانت تتولى معالجة مشاكل معدة و مبهمة ما زالت قيد البحث و التطوير . و لذلك فقد تميزت برامج الذكاء الاصطناعي بالميزات و الخصائص التالية :
خصائص الذكاء الاصطناعي :
1) التمثيل الرمزي : فقد كانت هذه البرامج تتعامل مع رموز تعبر عن المعلومات المتوفرة مثل : الجو اليوم حار . و السيارة خالية من الوقود . و احمد في صحة جيدة . و الطعام له رائحة زكية و هو تمثيل يقترب من شكل تمثيل الإنسان لمعلوماته في حياته اليومية .
2)البحث التجريبي : تتوجه برامج الذكاء الاصطناعي نحو مشاكل لا تتوافر لها حلول يمكن إيجادها تبعا لخطوات منطقية محددة . إذ يتبع فيها أسلوب البحث التجريبي كما هو حال الطبيب الذي يقوم بتشخيص المرض للمريض ، فأمام هذا الطبيب عدد من الاحتمالات قبل التوصل إلى التشخيص الدقيق ، و لن يتمكن بمجرد رؤيته للمريض و سماع آهاته من الوصول إلى الحل ، و ينطبق الحال على لاعب الشطرنج ، فان حساب الخطوة التالية يتم بعد بث احتمالات و افتراضات متعددة ، و هذا الأسلوب من البحث التجريبي يحتاج إلى ضرورة توافر سعة تخزين كبيرة في الحاسب ، كما تعتبر سرعة الحاسب من العوامل الهامة لفرض الاحتمالات الكثيرة و دراستها .
3)احتضان المعرفة و تمثيلها : لما كان من الخصائص الهامة في برامج الذكاء الاصطناعي استخدام أسلوب التمثيل الرمزي في التعبير عن المعلومات ، و إتباع طرق البحث التجريبي في إيجاد الحلول فان برامج الذكاء الاصطناعي يجب أن تمتلك في بنائها قاعدة كبيرة من المعرفة تحتوي على الربط بن الحالات والنتائج مثل ذلك : إذا كان مشغل الأقراص في جهاز الكمبيوتر لا يقرا البيانات المسجلة على القرص ، و القرص جيد ، و حاكم تشغيل القرص سليم ، و الكابل بين مشغل القرص و الحاكم سليم ، فان العطل يكون في مشغل الأقراص نفسه . و مثال ذلك : إذا كان الجو غير صحو ، و درجة الحرارة منخفضة ، فيجب ارتداء المعطف . و في هذه الأمثلة يتضح التمثيل الرمزي (الجو غير صحو )، واحتضان المعرفة بمعرفة عطل مشغل الأقراص و بمعرفة وجوب ارتداء المعطف .
4)البيانات غير المؤكدة أو غير المكتملة : يجب على البرامج التي تصمم في مجال الذكاء الاصطناعي أن تتمكن من إعطاء حلول إذا كانت البيانات غير مؤكدة أو مكتملة ، و ليس معنى ذلك أن تقوم بإعطاء حلول مهما كانت الحلول خاطئة أم صحيحة ، و إنما يجب لكي تقوم بأدائها الجيد أن تكون قادرة على إعطاء الحلول المقبولة و إلا تصبح قاصرة ، ففي البرامج الطبية إذا ما عرضت حالة من الحالات دون الحصول على نتائج التحليلات الطبية فيجب أن يحتوي البرنامج على القدرة على إعطاء الحلول .
1- يستخدم أسلوب مقارن للأسلوب البشري في حل المشكلات المعقدة .
2- يتعامل مع الفرضيات بشكل متزامن وبدقة وسرعة عالية .
3- وجود حل متخصص لكل مشكلة ولكل فئة متجانسة من المشاكل .
4- يعمل بمستوى علمي واستشاري ثابت لا تتذبذب .
5- يتطلب بناؤه تمثيل كميات هائلة من المعارف الخاصة بمجال معين .
6- يعالج البيانات الرمزية غير الرقمية من خلال عمليات التحليل والمقارنة المنطقية .
دوافع اللجوء للذكاء الاصطناعي :
1- لأنه يهدف لمحاكاة الإنسان فكرا وأسلوبا .
2- لإثارة أفكار جديدة تؤدي إلى الابتكار .
3- لتخليد الخبرة البشرية .
4- توفير أكثر من نسخة من النظام تعوض عن الخبراء .
5- غياب الشعور بالتعب والملل .
6- تقليص الاعتماد على الخبراء البشر .
7- معمارية النظام الخبير / الذكاء الاصطناعي .يتكون من ثلاثة مكونات أساسية :
أولاً- قاعدة المعرفة ( knowledge base ) غالبا ما يقاس مستوى أداء النظام بدلالــة حجم ونوعيـــة قاعــــدة المعرفة التي يحتويها وتتضمن قاعدة المعرفة :
1. الحقائق المطلقة : تصف العلاقة المنطقية بين العناصر والمفاهيم ومجموعة الحقائق المستنــــدة إلى الخبـــرة والممارسة للخبراء في النظام .
2. طرق حل المشكلات وتقديم الاستشارة .
3. القواعد المستندة على صيغ رياضية .
ثانياً- منظومة آلية الاستدلال(gine inferenceen ) وهي إجراءات مبرمجة تقود إلى الحـــل المطلوب من خلال ربط القواعد والحقائق المعينة تكوين خط الاستنباط والاستدلال .
ثالثاً- واجهة المستفيد( user interface ) وهي الإجراءات التي تجهـــز المستفيـــد بأدوات مناسبة للتفاعل مع النظام خلال مرحلتي التطوير والاستخدام .
تختلف البرامج المكتوبة في مجالات الذكاء الاصطناعي عن البرامج العادية التي تكتب لحساب المرتبات و الأجور و شؤون العاملين و الإحصاء و غيرها من مجالات البرمجة التقليدية التي تقوم الحاسبات بتنفيذها ، وبالرغم من انه يمكن كتابة بعض البرامج في مجالات مختلفة من مجالات الذكاء الاصطناعي بلغات البرمجة العادية مثل لغة بيسك و فورتران و باسكال و سي و غيرها من لغات المستوى العالي فان العملية ذات كفاءة منخفضة أو متردية ، و معقدة إلى حد كبير . و لقد خرجت إلى الوجود منذ زمن بعيد لغات برمجة توجهت بصورة مباشرة نحو معالجة برامج الذكاء الاصطناعي ، و هذه اللغات تمتلك من الإمكانيات و المميزات الضرورية التي تتيح كتابة برامج معقدة و كبيرة بكفاءة عالية ،
و من بين الامتيازات التي امتازت بها هذه اللغات :
1. القدرة على صياغة تراكيب البيانات المعقدة .
2. القدرة على فرز و بحث قواعد البيانات و المعلومات .
3. الاستنتاج الذاتي .
4. إمكانية معالجة الجداول و مطابقة الأنماط و تركيب المعرفة .
و قد استحدثت لغات برمجة تشبه اللغات الطبيعية و نشأت لغات كثيرة تتعدد في الاستخدام و تتنوع في الإمكانيات ، و من بين هذه اللغات :
· لغة البرمجة (information processing language ) IPL و هي من اللغات الأولى في هذا المجال و صممت خصيصا لمعالجة المعومات في عام 1956 .
· لغة البرمجة ريتا (RITA Language ) و استخدمت في بناء نظم الخبرة لمكافحة الإرهاب الدولي .
· -لغة البرمجة روزى ( ROSIE Language ) و استخدمت في بناء نظم الخبرة للتخطيط الحربي (TATR ) و قد قام بتصميمها( جون ماكارثى) في عام 1958 و استخدمت في بناء نظم خبرة متعددة منها ( opsv, ops 5, DEND ) و تعد من اللغات الشهيرة في هذا المجال .
· لغة البرمجة بر ولوج ( PROLOG ) و تعد من اشهر لغات البرمجة في الوقت الراهن و قد استخدمت في نظم الخبرة المتعددة منها ( ESP/ Advisor,M,1 ) .
· لغة البرمجة SMALL TALK
· لغة البرمجة Stanford Artificial Intelligence Laboratory ) SALL )و قد تم تصميمها في جامعة ستنافورد .
أهمية الذكاء الاصطناعي :
مما لا شك فيه أن التقدم الكبير الذي يشهده العالم في كافة المجالات إنما يرجع بعض من الفضل فيه إلى أجهزة الحاسبات . و ربما يكون الوقت مبكرا للحديث عن فضل الحاسبات الذكية و لكن مما لا شك فيه أن الحاسبات الذكية ( أن جاز استخدام هذا التعبير ) تلعب دورا متناميا في مجالات عديدة في الوقت الراهن و ينتظر لها أن تبلغ شأنا كبيرا في الوقت القريب في مجالات منها :
1) المجال الهندسي من حيث القدرة على وضع و فحص خطوات التصميم و أسلوب تنفيذه .
2) في المجال الطبي من حيث التشخيص للحالات المرضية ووصف الدواء لهم .
3) في المجال العسكري من حيث اتخاذ القرارات وقت نشوب المعارك و تحليل المواقف و إعداد الخطط و الإشراف على تنفيذها.
4) في المجال التعليمي من حيث القيام بمهام المعلم و إبداء الاستشارات في مجال التعليم .
محدودية الذكاء الاصطناعي:
على الرغم من التطور الكبير الذي ابتدعته أبحاث الذكاء الاصطناعي نحو إضفاء بعض من خصائص الذكاء على الآلة الحاسبة إلا أن الوقت لا يزال مبكرا جدا للقول بان هناك برامج يمكن أن تنتج تحاكي العقل البشري في أسلوبه في التفكير و الخلق و الإبداع ، و النجاح الحالي الذي تشهده برامج الذكاء الاصطناعي إنما هو تطوير لبرمجيات معينة متخصصة في مجالات تطبيقية محددة تحتضن فيه الآلة حصيلة خبرة بشرية في مجال من المجالات .
معلومات إضافية عن لغــــــــة LISP :
لغة Lisp من أشهر اللغات المستخدمة لكتابة تطبيقات وبرامج الذكاء الاصطناعي، حيث أن 90% من برامـــــج وتطبيقات الذكاء الاصطناعي الموجودة حاليا تم صناعتها باستــــخدام لغة Lisp . common Lispمـــاهي إلا نسخة Version قياسية وشائعة جدا من لغة Lisp.
مميزات لغة LISP :
مميزات لغة LISP :
1- يتم ترجمة الكود سطراً سطراً باستخدام المفسر Interpreter في الجزء Listener من البرنامج، بينما يتم عمل تقييم وتقدير Evaluation للكود ككل وإظهار الأخطاء مرة واحدة بعد قراءة جميع أسطر الكود في المحرر Text Editor الموجود في البرنامج.
2- لغة Lisp هي لغة إجرائية Procedural أي أن الكود يعكس الخوارزم Algorithm مباشرة وبالتالي فإنه يكون متسلسل ومتتالي تماما كالخوار زم أو خريطة التدفق Flowchart التي يمثلها.
وبالرغم من أن هذه الطريقة تعد قديمة في مقابل اللغات الحديثة كالجافا والسي شارب والتي تستخــــدم تقنيـــــــة البرمجة الشيئية Object Oriented Programming ، إلا أن جميع لغات الذكـــاء الاصطنـــــاعي لا تـــزال تستخدم الطريقة القديمة لأنها تعكس بوضوح الخوارزم مما يجعل الكود أكثر وضوحا.
3- تعتمد هذه اللغة بشكل رئيسي على استخدام الدوال functions وهي على قسمين:
2- لغة Lisp هي لغة إجرائية Procedural أي أن الكود يعكس الخوارزم Algorithm مباشرة وبالتالي فإنه يكون متسلسل ومتتالي تماما كالخوار زم أو خريطة التدفق Flowchart التي يمثلها.
وبالرغم من أن هذه الطريقة تعد قديمة في مقابل اللغات الحديثة كالجافا والسي شارب والتي تستخــــدم تقنيـــــــة البرمجة الشيئية Object Oriented Programming ، إلا أن جميع لغات الذكـــاء الاصطنـــــاعي لا تـــزال تستخدم الطريقة القديمة لأنها تعكس بوضوح الخوارزم مما يجعل الكود أكثر وضوحا.
3- تعتمد هذه اللغة بشكل رئيسي على استخدام الدوال functions وهي على قسمين:
v دوال معرفة ومبنية مسبقا داخل اللغة Built-in Functions ، وهي كثيرة جدا، وتعتبر من أفضل الدوال المبنية داخل لغات البرمجة الأخرى.
v دوال يقوم بتعريفها المبرمج User-defined Functions .
وبالتالي فإننا نقول عن لغة Lisp بأنها Functional Language لأنها لغة تعتمد على الدوال ووظائفها ويكون الكود فيها مكون من دوال تستدعي بعضها لتؤدي معا وظيفة محددة.
مقدمة في العمليات على القوائم :
أولاً: الدوال والبيانات :Function & Data:لو نظرنا إلى الشكل التالي والذي يمثل دالة للضرب أدخلنا لها ثلاث مدخلات، وطلب منّا وصف هذا الشكل.. فكيف سنصفه؟
هناك عدة طرق للوصف:
- الوصف من جهة المدخلات: فنقول أن هناك ثلاث بيانات مدخلة لدالة الضرب التي ستقوم بعملية ضربهم وإعادة الناتج.
- الوصف من جهة المخرجات: فنقول أن الدالة ستعيد إلينا 30 نتيجة ضرب ثلاثة أرقام هي 2، 3 و5.
- الوصف من وجهة نظر المبرمج: وهنا سنقول أن لدينا دالة وظيفتها هي الضرب، تأخذ عدد من المدخلات وتعيد إلينا الناتج.
ما يهمنا هنا كمبرمجين هو الوصف من وجهة نظر المبرمج، هنا تكمن فكرة العمليات على القوائم.ولو نظرنا إلى الشكل التالي:
نلاحظ أننا حصلنا على نفس النتيجة ولكن باستخدام الدالة مرتين، في المرة الأولى أخذت بيانين كمدخلين، وفي المرة الثانية أخذت البيان الثالث مع نتيجة المرة الأولى كمدخلين.
كذلك، يمكننا استخدام أكثر من دالة بنفس الطريقة كما يوضح الشكل التالي:
ثانياً: القوائم Lists:
ماهي القائمة؟ القائمة هي مجموعة من العناصر التي وضعت داخل قوسين، نفصل بين كل عنصر والآخر بواسطة مسافة فقط، من الممكن أن تكون العناصر عبارة عن قوائم أخرى.
أمثلة:
- (RED GREEN BLUE) : قائمة بها ثلاث عناصر.
- (2 3 5 7 11 13 17) : قائمة بها سبعة عناصر.
- (MOHD 3 MAKKAH 459) : قائمة بها أربعة عناصر وتمثل سجل لشخص.
- ((BLUE SKY) (GREEN GRASS) (BROWN EARTH)) : قائمة تتكون من ثلاث عناصر كل عنصر عبارة عن قائمة من عنصرين.
- ( ) أو NIL : قائمة فارغة! وتوضح الأشكال التالية دالة جاهزة في لغة الليسب اسمها Length تأخذ قائمة كمدخل وتخرج لنا عدد العناصر في هذه القائمة:
ثالثاً: العمليات على القوائم ومفهوم تنفيذها List Processing & EVAL Notation:هناك مفهوم مرن يدعى "EVAL notation" وفيه نستبدل المربعات بالقوائم عند تمثيل الدوال، حيث نلاحظ أن:
1. أي مفهوم برمجي يمثل بواسطة المربعات نستطيع تمثيله بسهولة بواسطة Eval notation.
2. Eval notation سهل الطباعة باستخدام لوحة المفاتيح، على عكس المربعات.
3. في لغة الليسب: هذا المفهوم يسمح لنا بكتابة دوال تقبل دوال أخرى كمدخلات .
هذا المفهوم يعتبر القلب النابض في لغة الليسب، وظيفته هو التعبير عن العمليات بواسطة القوائم في هذه اللغة، يتم هذا التعبير بذكر الدالة function أولاً ثم تتبعها مجموعة المدخلات الخاصة بها في القائمة. مثال: لو كتبنا التعبير التالي: (* 2 3 5)
وهنا نقولthe expression (* 2 3 5) evaluates to 30 :.
الصيغ الرمزية والقواعد الغوية في لغة Common LISP :
تعتمد لغة LISP في صياغتها على ما يسمى بالصيغ الرمزية أو الصيـــغ التي تستخـــــــدم الرموز Symbolic Expressions ويطلق عليها اختصارا s-expressions.والصيغ الرمزية s-expressions توجد في صورتين: إما أن تكون atomأو في صورة list .ماهي الـAtom ؟ يعتبر الـAtom وحدة بسيطة جدا في اللغة بحيث لا يمكن أن يتم تبسيطها لأكثر من ذلك.. يمكن أن يتضمن الـAtom حروف أو أرقام أو رموز.
تعتمد لغة LISP في صياغتها على ما يسمى بالصيغ الرمزية أو الصيـــغ التي تستخـــــــدم الرموز Symbolic Expressions ويطلق عليها اختصارا s-expressions.والصيغ الرمزية s-expressions توجد في صورتين: إما أن تكون atomأو في صورة list .ماهي الـAtom ؟ يعتبر الـAtom وحدة بسيطة جدا في اللغة بحيث لا يمكن أن يتم تبسيطها لأكثر من ذلك.. يمكن أن يتضمن الـAtom حروف أو أرقام أو رموز.
أمثلة على بعض الـ Atoms :
3.1416
100x c4arab *some-name*nil |
ما هو الـــــــ List ؟ عبارة عن سلسلة من الـ Atoms أو من الـ Lists يفصل بينها بالمسافات Blank spaces وتحــــاط بأقـــواس دائرية ( ). فالقائمة list هي عنصر غير بسيط Non-atomic في LISP.
أمثلة على القوائم Lists:
; قائمة تحتوي على الأرقام من 1 إلى 4
(1 2 3 4)
; قائمة تحتوي على أسماء مجموعة من الطلاب
(Mohammad Thamer Rashed Yaser)
; قائمة تحتوي على قوائم أخرى بداخلها
( a (a b) (d (e f)))
; قائمة فارغة( )
(1 2 3 4)
; قائمة تحتوي على أسماء مجموعة من الطلاب
(Mohammad Thamer Rashed Yaser)
; قائمة تحتوي على قوائم أخرى بداخلها
( a (a b) (d (e f)))
; قائمة فارغة( )
نلاحظ أن الـlist يمكن أن تكون عنصرا في list أخرى.. وهذا الشكل قد يكون مفيد جدا في إنشاء هياكل Structures متداخلة وبأي درجة من التعقيد.. بالنسبة للقائمة الفارغة Empty List فهي تلعب دور خاص عند إنشاء ومعالجة هياكل البيانات Data Structures وتسمى غالبا بالاسم nil في لغة LISP.
Artificial Intelligence
The branch of computer
science concerned with
making computers behave like humans. The term was coined
in 1956 by John McCarthy at the Massachusetts Institute of Technology.
Artificial intelligence includes.
&
expert
systems : programming
computers to make decisions in real-life situations (for example, some expert
systems help doctors diagnose diseases based on symptoms)
&
neural
networks : Systems that simulate intelligence by attempting
to reproduce the types of physical connections that occur in animal brains
& robotics : programming
computers to see and hear and react to other sensory
stimuli
Currently, no
computers exhibit full artificial intelligence (that is, are able to simulate
human behavior). The greatest advances have occurred in the field of games
playing. The best computer chess programs are now capable of beating humans. In
May, 1997, an IBM super-computer called Deep Bluedefeated world chess
champion Gary Kasparov in a chess match.
In the area of
robotics, computers are now widely used in assembly plants, but they are
capable only of very limited tasks. Robots have great difficulty identifying
objects based on appearance or feel, and they still move and handle objects
clumsily.
Natural-language
processing offers the greatest potential rewards because it would allow people
to interact with computers without needing any specialized knowledge. You could
simply walk up to a computer and talk to it. Unfortunately, programming
computers to understand natural languages has proved to be more difficult than
originally thought. Some rudimentary translation systems that translate from
one human language to another are in existence, but they are not nearly as good
as human translators. There are also voice
recognition systems that can
convert spoken sounds into written words, but they do
not understand what they are writing; they simply take dictation.
Even these systems are quite limited -- you must speak slowly and distinctly.
In the early 1980s,
expert systems were believed to represent the future of artificial intelligence
and of computers in general. To date, however, they have not lived up to
expectations. Many expert systems help human experts in such fields as medicine
and engineering, but they are very expensive to produce and are helpful only in
special situations.
Today, the hottest
area of artificial intelligence is neural networks, which are proving
successful in a number of disciplines such as voice recognition and
natural-language processing.
There are
several programming
languages that are known
as AI languages because they are used almost
exclusively for AI applications. The two most common are LISP and Prolog.
Timeline of History
~3000BC
|
A papyrus, that was bought in a Luxor antique
shop by Edwin Smith in 1882, was prepared representing 48 surgical
observations of head wounds. The observations were stated in
symptom-diagnosis-treatment-prognosis combinations as: IF a patient has this
symptom, THEN he has this injury with this prognosis if this treatment is applied.
This was the first known expert system.
|
|
13th C
|
Ramón Lull invented the Zairja, the first
device that systematically tried to generate ideas by mechanical means.
|
|
1651
|
Leviathan, written by Thomas Hobbes (15881679),
was published. In it he proposes that humans collectively, by virtue of their
organization and use of their machines, would create a new intelligence.
George B. Dyson refers to Hobbes as the patriarch of artificial intelligence
in his book, "Darwin Among the Machines: The Evolution of Global
Intelligence," p7, 1997.
|
|
17th C
|
Leibnitz and Pascal invented mechanical
computing devices. Pascal was 19 years old in 1642 when he invented an
eight-digit calculator, the Pascaline. In 1694, Gottfried Liebnitz invented
the Liebnitz Computer, which multiplied by repetitive addition, an algorithm
still in use today. Leibnitz also conceived of a 'reasoning calculator' for
interpreting and evaluating concepts, but realized the problem was immense
because of the great interconnectedness of concepts.
|
|
1726
|
Jonathan Swift anticipated an automatic book
writer in Gulliver's Travels.
|
|
1805
|
Joseph-Marie Jacquard invented the first truly
programmable device to drive looms with instructions provided by punched
cards.
|
|
1832
|
Charles Babbage designed the 'analytical
engine,' a mechanical programmable computer. He had earlier designed a more
limited Difference Engine in 1822, which he never finished building.
|
|
1847
|
George Boole developed a mathematical symbolic
logic (later called Boolean algebra) for reasoning about categories (i.e.,
sets) of objects, which is also applicable to manipulating and simplifying
logical propositions.
|
|
1879
|
Gottlob Frege went beyond Boole in his
treatment of logic with his invention of predicate logic, making it possible
to prove general theorems from rules. However, the meaning of the words being
manipulated by this logic is still only what the user intended, and therefore
not conveyed by his representation of the logic.
|
|
~1890
|
Hand-driven mechanical calculators became
available.
|
|
1890
|
Herman Hollerith patented a tabulating machine
to process census data fed in on punched cards. His company, the Tabulating
Machine Company, eventually merged into what was to become IBM.
|
|
Late 1800s
|
Leonardo Torres y Quevedo invented a
relay-activated automaton that played end games in chess.
|
|
1898
|
Behaviorism was expounded by psychologist
Edward Lee Thorndike in "Animal Intelligence." The basic idea is
that all actions, thoughts, or desires are reflexes triggered by a higher
form of stimulus, with humans just reacting to a higher form of stimulus.
Mind, according to behaviorism, becomes a trivial concept, a passive
associative mechanism.
|
|
1921
|
Karel Capek, a Czech writer, invented the term
robot to describe intelligent machines that revolted against their human
masters and destroyed them.
|
|
1928
|
John von Neumann introduced the minimax
theorem, which is still used as a basis for game-playing programs.
|
|
1931
|
Vannevar Bush's mechanical differential
analyzer (a mechanical analog computer) was able to solve differential
equations.
|
|
1937
|
Alan Turing conceived of a universal Turing
machine that could mimic the operation of any other computing machine.
However, as did Godel, he also recognized that there exists certain kinds of
calculations that no machine could perform. Even recognizing this limit on
computers, Turing still did not doubt that computers could be made to think.
|
|
1937
|
Alan Turing and Alonzo Church independently
arrived at the same thesis, the Church-Turing thesis, that all problems that
a human can solve can be reduced to a set of algorithms.
|
|
~1938
|
Claude Shannon showed that calculations could
be performed much faster using electromagnetic relays than they could be
performed with mechanical calculators. He applied Boolean algebra.
Electromechanical relays were used in the world's first operational computer,
Robinson, in 1940. Robinson was used by the English to decode messages from
Enigma, the Germans' enciphering machine.
|
|
1941
|
A leading German aeronautical research center
deployed the Zuse Z3, a general-purpose electromechanical computer. It
performed several instructions per second, and the program was entered by
using a movie reel with punched holes representing instructions.
|
|
1943
|
Vacuum tubes replaced electromechanical relays
in calculators. These were used in 1943 in Colossus, a faster successor to
Robinson, to decipher increasingly complex German codes.
|
|
1943
|
Walter Pitts and Warren McCullock showed how
artificial neural networks could compute, relying on the use of feedback
loops.
|
|
1945
|
John von Neumann designed the basic computer
architecture still used today, in which the memory stores instructions as
well as data, and instructions are executed serially. He described this in a
1945 paper.
|
|
1945
|
ENIAC (Electronic Numerical Integrator and
Calculator), which was to run 1,000 times faster than the relay-operated
computers, was ready to run in late 1945. It was the first general purpose,
fully electronic, programmable computer. John W. Mauchley and John Presper
Eckert were its inventors.
|
|
1945—1956
|
Symbolic artificial intelligence emerged as a
specific intellectual field. Key developments included Norbert Wiener's
development of the field of cybernetics, in which he invented a mathematical
theory of feedback in biological and engineered systems. This work helped
clarify the concept that intelligence is the process of receiving and
processing information to achieve goals.
|
|
1947
|
The transistor was invented by William
Shockley, Walter Brattain, and John Bardeen.
|
|
1948
|
Nobert Wiener published Cybernetics, a
landmark book on information theory. "Cybernetics" means "the
science of control and communication in the animal and the machine."
|
|
1949
|
Donald O. Hebbs suggested a way in which
artificial neural networks might learn.
|
|
1950
|
Turing proposed his test, the Turing test, to
recognize machine intelligence.
|
|
1951
|
EDVAC, the first von Neumann computer, was
built.
|
|
1951
|
Marvin Minsky and Dean Edmonds build the first
artificial neural network that simulated a rat finding its way through a
maze.
|
|
7 June 1954
|
Turing suicided in mysterious circumstances by
eating a cyanide-laced apple following a conviction for homosexuality in
1953.
|
|
1950s
|
It became clear that computers could
manipulate symbols representing concepts as well as numerical data.
|
|
1955 - 1956
|
Logic Theorist, the first AI program, was
written by Allen Newell, Herbert Simon, and J.C. Shaw. It proved theorems
using a combination of searching, goal-oriented behavior, and application of
rules. It used a list-processing technique in a new computer language, IPL
(Information Processing Language) that they developed to write Logical
Theorist. IPL provided pointers between related pieces of information to
mimic associative memory; and catered to creating, changing, and destroying
interacting symbolic structures on the fly.
|
|
1955
|
John McCarthy names the new discipline,
"Artificial Intelligence" in a proposal for the Dartmouth
conference.
|
|
~1956
|
IBM released the 701 general purpose
electronic computer, the first such machine on the market. It was designed by
Nathaniel Rochester.
|
|
1956
|
A two-month summer conference on thinking
machines was held at Dartmouth University. The attendees included John
McCarthy, Marvin Minsky, Claude Shannon, Nathaniel Rochester, Ray Solomonoff,
Oliver Selfridge, Trenchard More, Arthur Samuel, Herbert Simon, and Allen
Newell. It did not result in a consensus view of AI.
"Every aspect of learning or any other feature of intelligence can in principle be so precisely described that a machine can be made to simulate it." according to a statement of the Dartmouth conference participants, that expresses the physical symbol hypothesis. |
|
1956
|
George Miller published "The Magic Number
Seven" on the limits of short-term memory.
|
|
1956 - 1963
|
Two main themes emerge in AI:
|
|
1957
|
Newell and Simon ran the General Problem
Solver incorporating "means-ends analysis." Means-ends analysis
seeks to reduce the difference between the predicted outcome and desired
outcome by changing controlling factors. GPS and later AI programs were
really quite limited in their problem solving ability as the programmer had
to feed information to it in a highly stylized way. They also had to work
hard to define each new problem, and the program made only a small
contribution to the solution. Also, these programs contributed nothing to
providing motivation for solving a problem, still an open issue today.
Edward Feigenbaum's EPAM (Elementary Perceiver and Memorizer), provided a model of how people memorize nonsense syllables. Herbert Gelernter wrote the Geometry Theorem Prover which used information to prune a search with a billion alternatives (for a 3-step proof of a geometry theorem) to only 25 alternatives. He was the first to demonstrate "model referencing." Arthur Samuel wrote a checkers-playing program that soon learned how to beat him. |
|
1957
|
Noam Chomsky, a linguist at MIT, postulated
that language could be analyzed without reference to its content or meaning.
In other words, syntax was independent of semantics. This concept was
enticing to AI people as it would mean knowledge could be represented and
analyzed without knowing anything about what was being said. Experience has
shown that this concept doesn't apply well to human languages.
|
|
1958
|
John McCarthy and Marvin Minsky founded the
Artificial Intelligence Laboratory at the Massachusetts Institute of
Technology.
|
|
1958
|
John McCarthy developed the LISP program at
MIT for AI work. It soon supplanted the earlier AI language, IPL, and
retained its popularity against a later language, COMIT, developed in 1962.
|
|
Early 1960s
|
AI researchers concentrated on means of
representing related knowledge in computers, a necessary precursor to
developing the ability of computers to learn.
|
|
1961
|
Mortimer Taube, an engineer, authored the
first anti-AI book, "Computers and Common Sense: The Myth of Thinking
Machines." It did not receive much attention.
|
|
1962
|
The world's first industrial robots were
marketed by a U.S. company.
|
|
1963
|
Tom Evans, under Marvin Minsky's supervision,
created the program, ANALOGY. It was designed to solve problems that involved
associating geometric patterns that occurred in a past case with the pattern
in a current case. ANALOGY could solve shape problems of the kind, figure C
is to which of several alternative figures as figure A is to figure B.
|
|
1963
|
The Stanford University founded the Artificial
Intelligence Laboratory under John McCarthy.
|
|
1965
|
Brothers, Herbert L. Dreyfus, a philosopher,
and Stuart E. Dreyfus, a mathematician, wrote a strongly anti-AI paper,
"Alchemy and AI," which was published reluctantly by the RAND
Corporation for whom Herbert was consulting.
|
|
1965
|
Herbert Simon predicted that machines will be
capable of doing any work a man can do by 1985.
|
|
1965
|
The Robotics Institute was started at Carnegie
Mellon University under Raj Reddy.
|
|
1965 to ~1975
|
Edward Feigenbaum and Robert K. Lindsay at
Stanford built DENDRAL, the first expert system. Its expertise was in mapping
the structure of complex organic chemicals from data gathered by mass
spectrometers. After DENDRAL's rules grew to a certain size, its tangled set
of statements became difficult to maintain and expand.
|
|
Middle and late 1960s
|
Marvin Minsky and Seymour Papert directed the
Blocks Microworld Project at MIT AI Laboratory. This project improved
computer vision, robotics, and even natural language processing enough for
computers to view and manipulate a simple world of blocks of different
colors, shapes, and sizes. Similar experiments proceeded at Stanford under
John McCarthy and at Edinburgh University.
|
|
1966
|
National Research Council ended all support
for automatic translation research, a field closely related to AI.
|
|
1968
|
The tradition of mad computers is continued
with the release of the film, 2001: A Space Odyssey, directed by Stanley
Kubrick, from Arthur C. Clarkes' book. The computer's name, HAL, is a
reminder of the giant computer company, IBM. (Form a word from the letters
that come after H, A, and L in the alphabet.)
|
|
1968 & 1969
|
Terry Winograd, a doctoral student under
Seymour Papert, wrote SHRDLU (a word used in MAD magazine for mythical
monsters and other oddities). SHRDLU created a simulated block world and
robotic arm on a computer about which a user could ask questions and give commands
in ordinary English. It has gradually been realized that the techniques
employed in SHRDLU would not work beyond artificially defined toy worlds or
restricted areas of expertise because, to do so, the computer would have to
know vast amounts of knowledge that humans regard as common knowledge or
common sense.
|
|
1969 - 1974
|
Roger Schank developed his "conceptual
dependency" theory which enabled computers to make more plausible
inferences about the meaning of the "semantic primitives" in
sentences, when words took on secondary meanings. For example, the meanings
of sentences such as "He gave her a present," and "Bill gave
Joe a glancing blow" could be distinguished. However, the theory was
inadequate for dealing with the complexities of meaning possible in linked
sentences narrating a sequence of events, when some of the events can only be
inferred from what is said. Typically, humans can readily infer the unstated
events in a specific sequence.
|
|
1969
|
A mobile robot called Shakey was assembled at Stanford,
that could navigate a block world in eight rooms and follow instructions in a
simplified form of English.
|
|
1969
|
Marvin Minsky and Seymour Papert published
their book, Perceptrons—An Introduction to Computational Geometry. Until its
publication work on artificial networks in the U.S. was flourishing, which
this book brought to a near halt until the 1980s by disparaging some of this
work.
|
|
1969
|
John McCarthy and Patrick J. Hayes reappraised
how AI might usefully proceed. They discounted possible help from philosophy
as "philosophers have not really come to agreement in 2500 years."
They identified two basic problems to overcome . One is the "frame
problem," that of managing all that is going on around the central
actors, a task that creates a heavy computational burden. Next is the
"qualification problem," meaning the need to deal with all the
qualifiers that can arise to stop an expected rule from being followed
exactly. For example, if the ignition key of a car is turned, usually the
engine starts. However, there are many exceptions, such as when the car has
no fuel, or the battery is discharged.
|
|
1970
|
William Wood at Bolte, Beranek & Newman in
Boston conceived a parsing scheme called the Augmented Transition Network. By
mixing syntax rules with semantic analysis, the scheme could discriminate
between the meanings of sentences such as "The beach is sweltering"
and "The boy is sweltering."
|
|
1970s
|
Earlier machine learning efforts aimed at
enabling computers to automatically optimize appropriate weights for
variables they had been told were important to solving a problem. Now efforts
were directed to automatically deriving those variables themselves—in other
words, automatic concept formation.
Douglas Lenat programmed Automated Mathematician (AM), a program to rediscover number theory by itself. It combined a set of rudimentary ideas, a sense of experimentation, and a sense of rightness of good discoveries to guide its activities, the latter two capabilities expressed in a number of rules (or heuristics). Despite some initial dramatic success, it quickly reached limits for discovering new number theory. Lenat realized that it was because the heuristics it had been given were limited, and he decided it needed to be able to create new and useful discovery heuristics for itself. Over five years he developed this new ability in a successor program, EURISKO. EURISKO kept track of the performance of the heuristics it used, and dropped the ones that performed poorly, and modified and improved the better performing ones. The program was successfully used to improve the design of 3D computer chips. It even taught itself how to play a space-war game, Traveller TCS, and became the national champion in 1982 and 1983 with a radical approach to the game. |
|
Early 1970s
|
DARPA's Speech Understanding Research (SUR)
program, for which Carnegie Mellon was the prime contractor was brought to an
abrupt end. Although goals were met, the product, which has a limited
grammar, was not considered practical.
AI researchers turned from research into the control and expression of knowledge (such as was demonstrated in the Micro Worlds project) to the manipulation of large amounts of knowledge. This was done in recognition of the limitations of successful programs such as SHDLU and GPS to be extended to tackle the more complex problems of the real world in useful ways. The earlier work reflected overly simplistic approximations of the ways the human mind works, and better approximations were required. Manipulation of larger amounts of information was also enabled by the increasing power of computers. |
|
Early 1970s
|
First practical demonstration of the use of
fuzzy logic for process control. Abe Mamdani and his student, Seto Assilian,
at Queen Mary College (now Queen Mary and Westfield) in London used fuzzy
logic to control the operation of a small steam engine.
|
|
1971-1972
|
Alain Colmerauer and Phillipe Roussel wrote
the computer language, PROLOG (for PROgrammation en LOGique). It was revised
in 1974 to force logical statements (i.e., IF ... THEN) to be written only in
the Horn clause format. This permitted it to solve problems that required
showing something was NOT true to be concluded in a finite number of steps.
PROLOG became the favored AI language outside the U.S. where LISP still held
sway.
|
|
1972 on
|
Edward Shortliffe, a Stanford doctoral student
under Bruce Buchanan, and others wrote MYCIN, an expert system to diagnose
infectious blood diseases and recommend antibiotics, with dosage adjusted for
patient's body weight. They also created the first expert system shell, that
contained the inference engine, which contained the logic of how rules were
to be applied. MYCIN could also deal with probabilistic rules, which DENDRAL
couldn't. MYCIN could outperform human clinicians in some trials. A
difficulty that arose during the writing of these and subsequent expert
systems has been the extraction of the knowledge from human experts into the
rules, the so-called knowledge engineering.
|
|
1972
|
Herbert Dreyfus expanded his "Alchemy and
AI" paper into an aggressively anti-AI book, "What Computers Can't
Do."
|
|
1973
|
Sir James Lighthill, Cambridge University's
Lucasian Chair of Applied Mathematics, advised the British government to
cease most AI research in Britain.
|
|
1974
|
Funding for AI research at MIT, Carnegie
Mellon, and Stanford from DARPA was cut drastically as a result of recent
disappointing results.
|
|
By mid-1970s
|
Diverging specialties in AI field emerged.
These included Edward Feigenbaum's work on expert systems; Roger Schank on
language analysis; Marvin Minsky on knowledge representation; Douglas Lenat
on automatic learning and nature of heuristics; David Marr on machine vision;
and others developing PROLOG.
|
|
1974
|
Paul J. Werbos invented the back-propagation
algorithm, that enabled multilayer neural networks, that had the ability to
perform classification operations beyond simple Perceptrons. Back-propagation
was independently rediscovered in the early 1980s by David Rumelhat and David
Parker.
|
|
1975
|
Marvin Minsky published a paper, "A
Framework for Representing Knowledge," which he started with "It
seems to me that the ingredients of most theories in artificial intelligence
and in psychology have been on the whole too minute, local, and unstructured
to account ... for the effectiveness of commonsense thought." He
proposed that people thought in terms of generic "frames" within
which we look for expected features (he called them "terminals")
with anticipated properties ("markers"). Frames may be grouped or
linked together into systems. So, we would have idealized "house"
frames with features including walls, windows, doors and a roof, which we
would use to recognize real houses by frame matching. These and other frames,
say, of shops, churches, and schools, would build a town system.
|
|
~1977
|
Roger Schank and others augmented the
conceptual dependency theory with the use of scripts (short stories of
typical sequences of events that don't leave out any events) and the use of
knowledge of people's plans and goals to make sense of stories told by people
and to answer questions about those stories that would require inferences to
be made to answer them. This combination resulted in successful language
analysis programs such as Janet Kolodner's CYRUS, that thought of itself as
Cyrus Vance, learned about his life from newspaper accounts, and could even
surmise that Vance's wife and the Israel prime minister Begin's wife met at a
social occasion to which it would be likely spouses would be invited. This in
fact happened.
|
|
Late 1970s
|
First commercial expert system was developed.
It was XCON. (for eXpert CONfigurer), developed by John McDermott
at Carnegie Mellon. He developed it for Digital Equipment Company, which
started using it in January 1980 to help configure computer systems, deciding
between all the options available for their VAX system. It grew from
containing about 300 rules in 1979 to more than 3,000 and could configure
more than 10 different computer systems.
|
|
End of 1970s
|
Practical, commercial applications of AI were
still rare.
|
|
July 1979
|
World champion backgammon player, Luigi Villa
of Italy, became the first human champion of a board game to be defeated by a
computer program, which was written by Hans Berliner of Carnegie Mellon. The
program evaluated its moves by evaluating a weighted set of criteria that
measured the goodness of a move. It did not use the alternative process of
searching amongst all possible future moves and countermoves, a method used
in chess, as there are too many alternatives in backgammon.
|
|
1980s
|
Fuzzy logic was introduced in a fuzzy
predictive system used to operate the automated subway trains in Sendai,
Japan. This system, designed by Hitachi, reduced energy consumption by 10%
and lowered the margin of error in stopping the trains at specified positions
to less than 10 centimeters.
|
|
1980
|
First meeting of the American Association for
Artificial Intelligence held in Stanford, California.
|
|
1980
|
Commercial AI products were only returning a
few million dollars in revenue.
|
|
1980
|
First industrial application of a fuzzy
controller by Danish cement manufacturer, F.L. Smidth & Co. A/S to
regulate the operation of a cement kiln, which is a complex process subject
to random disturbances that made it difficult for an operator to control.
|
|
1982
|
David Marr's book, "Vision," was
published posthumously, Marr died of leukemia in 1980. It provided a new view
of how the human brain used shading, steropsis, texture, edges, color, and
the frame concept to recognize things. While he put vision firmly on the map
as a major AI problem, many of his ideas turned out to be wrong.
|
|
1982
|
John Hopfield showed how networks of simple
neurons could be given the ability to calculate.
|
|
Early to mid 1980s
|
A succession of early expert systems were
built and put in use by companies. These included:
AI groups were formed in many large companies
to develop expert systems. Venture capitalists started investing in AI
startups, and noted academics joined some of these companies. 1986 sales of
AI-based hardware and software were $425 million. Much of the new business
were developing specialized hardware (e.g., LISP computers) and software
(e.g., expert system shells sold by Teknowledge, Intellicorp, and Inference)
to help build better and less expensive expert systems. Low quality, but
effective computer vision systems were also commercially launched
successfully.
|
|
1984
|
GE built an expert system based on electric
locomotive diagnosis knowledge of one expert, David Smith, who was close to
retirement. Called the Diesel Electric Locomotive Troubleshooting Aid, it
could diagnose 80% of breakdowns, and provide repair instructions.
|
|
Mid 1980s
|
Resurgence of neural network technology, with
the publication of key papers by the Parallel Distributed Processing Study
Group. Demonstrations of neural networks in diverse applications such as
artificial speech generation, learning to play backgammon, and driving a
vehicle illustrated the versatility of the technology. A build-up of
commercial interest in neural nets followed, with over 300 small companies,
mostly startup founded by researchers, competing by 1989. The classic
boom-bust cycle of expert systems was being repeated.
|
|
1985
|
MIT's Media Laboratory, dedicated to
researching media-related applications using computer science (including
artificial intelligence) and sociology, was founded under Jerome Weisner and
Nicholas Negroponte.
|
|
1985
|
Speech systems now able to provide any of the
following: a large vocabulary, continuous speech recognition, or speaker
independence.
|
|
1987
|
Etienne Wenger published his book,
"Artificial Intelligence and Tutoring Systems: Computational and
Cognitive Approaches to the Communication of Knowledge," a milestone in
the development of intelligent tutoring systems.
|
|
~1987
|
Rule-based expert systems start to show limits
to their commercially viable size. XCON, the Digital Equipment Company expert
system had reached about 10,000 rules, and was increasingly expensive to maintain.
Reasons for these limits include:
It was gradually realized that expert systems
are limited to "any problem that can be and frequently is solved by your
in-house expert in a 10 to 30 minute phone call," as expressed by Morris
W. Firebaugh at the University of Wisconsin.
|
|
End of 1980s
|
Expert systems were increasingly used in
industry, and other AI techniques were being implemented jointly with
conventional software, often unnoticed but with beneficial effect.
|
|
1990s
|
Emphasis on ontology began. Ontology is the
study of the kinds of things that exist. In AI, the programs and sentences
deal with various kinds of objects, and AI researchers study what these kinds
are and what their properties are.
|
|
1990s and 2000s
|
AI applications of many, seemingly unrelated
kinds are quietly being commercialized in greater and greater numbers. Not
all these applications work as well as desired, but they are continually
improving. These include:
Many commercializers of such products and
services aren't identifying their use of artificial intelligence in their
products and services. Probably they're not doing so because "artificial
intelligence" isn't perceived to sell, while improved intelligent
solutions to a customer's problem does.
|
|
Early 1990s
|
The National Center for Supercomputing
Applications (NCSA) at the University of Illinois at Urbana-Champaign
developed and released released the first widely used web browser,
named Mosaic.
|
|
1997
|
Deep Blue,
a highly parallel 32-node IBM RS/6000 SP supercomputer, beat Gary Kasparov,
world champion of chess. Deep Blue did this by calculating hundreds of
million of alternative plays for a number of moves ahead.
|
|
1997
|
Over 40 teams fielded teams of robotic soccer
players in the first RoboCup competition.
|
|
1999
|
Sony
Corporation introduced
the AIBO, a robotic pet dog that understandins 100 voice commands, sees
the world using computer vision, and learns and matures. AIBO is an acronym
for Artificial Intelligence roBOt, and aibo also means "love" or
"attachment" in Japanese. On January 26, 2006, Sony announced that it
would discontinue the AIBO.
|
|
May 17, 1999
|
An artificial intelligence system, Remote Agent, was given primary control of a spacecraft
for the first time. For two days Remote Agent ran on the on-board computer
of Deep Space 1, while 60 million miles from earth. The goal of such control
systems is to provide less costly, more capable control, that is more
independent from ground control. Currently the difficult job of spacecraft
control is done by a team of spacecraft engineers. Sharing control with
onboard AI systems will enable these people to control more spacecraft, and
for more ambitious missions than possible before to be undertaken.
|
|
2002
|
iRobot, founded by researchers at the MIT Artificial
Intelligence Lab, introduced Roomba, a vacuum cleaning robot. By
2006, two million had been sold.
|
|
March 13, 2004
|
The Defense Advanced Research Projects Agency
(DARPA), the central research
organization of the United States Department of Defense, sponsored the
first DARPA Grand Challenge, a prize competition for autonomous
(driverless) vehicles. The first Challenge took place on a desert course
between Barstow, California to Primm, Nevada. No vehicles completed the
course.
|
|
October 8, 2005
|
Stanley, an autonomous Volkswagen Touareg R5
entered by the Stanford Racing Team, won theDARPA Grand Challenge 2005 and a $2M prize by completing the 212.4
km course in just under 7 hours. 23 vehicles competed, and five completed the
course.
|
0 التعليقات:
إرسال تعليق