mercredi 29 août 2018

 لغات البرمجة الخاصة ببرمجة الذكاء الإصطناعي

لغات البرمجة الخاصة ببرمجة الذكاء الإصطناعي

 لغات البرمجة الخاصة ببرمجة الذكاء الإصطناعي


 الذكاء الإصطناعي في مفهومه البسيط هو ان تجعل تلك الألة الحوسبية التي لا تفهم سوى الآحاد و الأصفار تفكر و تستخدم طاقاتها - ان صح التعبيير - من أجل التفكير ، التطبيق ، الإستنتاج ، و الفعل الذاتي دون ادراك برمجي من المبرمج ، ببساطة أكثر و أكثر ، هو ان تجعل الألى تحاكي العقل البشري ، لكن في مفهومه المعقد - ان صح التعبير مجددا - هو ان تجعل الألى تتخذ مواقف و تفكر و تستنتج و تحلل إنطلاقا من ذاتها و بيئتها ، لا يمكنني ان اشرح لك أكثر الذكاء الإصطناعي في مفهومه الكامل كون ان عبارة " الذكاء " مبهمة بالنسبة الينا . لذلك دعونا نكتفي بمفهوم جعل الألة تفكر ذاتيا انطلاقا من وقائع او احداث او البيئة المتواجدة فيها . اما ان كنت تريد البحث قليلا في ماضي الذكاء الإصطناعي و مخترعيه و تجلياته حاليا ، فسأترك لك خيار البحث و الإكتشاف في جوجل . 
دعونا الأن نمر الى أهم اللغات البرمجية التي يبرمج بها الذكاء الإصطناعي :
- Python :


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

- PROLOG :

 

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

-AIML


يا رباه ! كم من الصعب ان تجد صورا جيدة و مناسبة للغات البرمجة هذه ، هل تذكرك عبارة AIML بلغات سابقة ؟ مثلا الHTML او الXML ؟ نعم انت محق ، ان كنت قد إشتغلت بإحدى اللغتين ( لا تدخل معي في جدال ان تلك اللغات ليست لغات برمجة و ما الى ذلك فنحن في الذكاء الإصطناعي الأن ) فستدرك تماما ان عملهما يتضمن فقط رسم مخطط او هيكل لمادة ما ، على سبيل المثال ، فالHTML تمكن المستخدم من تشكيل هيكل صفحة الويب ، الXML ليس ببعيد عن هذا السياق ، الAIML و هي إختصار لعبارة (Artificial Intellegence Markup Language) تقوم بنفس دور رسم الهيكل و التخطيط (Markup) لكن ليس لصفحات الويب او برامج أخرى ، بل للذكاء الإصطناعي (Artificial Intellegence) .. و من الصورة أعلاه الخاص بنموذج بسيط للغة ، سندرك دورها تماما . 

- IPL :

 

 IPL هي إختصار لعبارة Information Processing Language ، و كانت من اللغات الأولى الخاصة بتطوير و برمجة الذكاء الإصطناعي ، تقوم هذه اللغة على جعل الألة قادرة على حل المشاكل و إيجاد الحلول من تلقاء ذاتها ، الأمر أشبه مثلا ان تعطي احجية معينة و لنفترض انها مكعب روبيك ، تقدمه للألة و تحله لك كاملا ، ثم تقدم لها أحجية اخرى و لنفترض انها من نوع اخر دعونا نقول لعبة شطرنج مثلا او شيئ من هذا القبيل و حلها مجددا ، ببساطة التعامل مع جميع انواع المشاكل ، كما انها تعالج تطور الذاكرة الديناميكي ، اي التوسع اللامتناهي للمعلومات ، ان كنت على دراية كافية بمجال المعلوميات و البرمجة ، فسأخبرك انها اشبه ب الBig Data و ستفهم قصدي ، اما ان لم تكن كذلك ، فدعني أفسرها لك انها قادرة على جعل ذاكرة الألة تكتسب اكبر قد من المعلومات من خلال ماتصادفه في مسيرتها و تصنيف تلك المعلومات على شكل قواعد بيانات ديناميكية قابلة للتوسع .

- STRIPS :

يبدو أن أكثر لغات البرمجة الخاصة ببرمجة الذكاء الإصطناعي تعتمد في الغالب حل على المشاكل في بادئ الأمر قبل تنفيذ الأوامر ، STRIPS و هي إختصار لعبارة (STanford Researsh Institue Problem Solver) ، هذه اللغة قد إقتبست معظم الأفكار الموجود في باقي لغات البرمجة الخاصة بالذكاء الإصطناعي ، ببساطة ،هذه اللغة تعتمد على توجيه اوامر معينة للحاسوب بلغة الجموع او اللغات الحية التي نعرفها كلنا ، بعدها تحليل هذه اللغة ، و حل المشاكل المتعلقة بها ، ثم تنفيذ الأوامر التي تم توجيهها بها ، لنقربكم أكثر سأعطيك مثالا بسيطا ، مثلا لدي روبوت ( يا رباه ههه ! ) مبرمج بالSTRIPS ، سأقول له : " اذهب و احضر لي كأس ماء " ، اولا سيستمع الى هذا الكلام ، ثم يبدأ بالخطوة الأولى و هي تحليل ما جاء في كلامي ، بعدا سيحل مشكلة الأمر ، الا وهي مثلا : اين المطبخ ؟ اين الكأس ؟ اين الماء ؟ بعد ان يحل المشكل و يجد الحل ، سيقوم بالتنفيذ فورا .. هذا تقريبا مجرد تبسيط بسيط لكيفية عمل لغة البرمجة هذه . 

- Java , C++ , Matlab

هناك العديد و العديد من اللغات البرمجة الخاصة بتطوير الذكاء الإصطناعي مثل LISP ، PLANNER ، HASKELL ، و Wolfram Language ، لكن سأكتفي باللغات التي قدمتها في الأعلى ، لكن قبل ان اختم كلامي ، فالذكاء الإطصناعي لا يتعلق دائما بهذه اللغات ، بل هناك لغات اخرى يمكن إستخدامها الى جانب البايثون من أجل الذكاء الإصطناعي ، و من اهم هذه اللغات هي JAVA , C++ ، Matlab ، فهذه اللغات أيضا قادرة على المساعدة في برمجة الذكاء الإصطناعي ، ليس هذا فقط بل حتى الC# و الF# قادرتين على ذلك ، الا ان اللغتين الأخيرتين لا يستعملان كثيرا في هذا المجال ، لكن هذا لا يعني انه لا يمكن إستخدامهما ، و بالطبع فلا داعي لأشرح كل من الجافا و السي بلس بلس و الماتلاب ، فالكثير يعرف هذه اللغات و ليست بلغات غريبة علينا


التسميات:
واتساب

مدونة مناصرية جلال : مدونة تقنية تحتوى على مجموعة دروس ودورات فى مجالات تقنية مختلفة مثل دروس تطوير مواقع الويب والبرامج والالعاب والمونتاج والانترنت وغيره من الشروحات المميزة تاست مدونة مناصرية جلال عام 2018 مؤسس المدونة مناصرية جلال مدون جزائري

Aucun commentaire:

Enregistrer un commentaire