الذكاء الصناعيبرمجةمقالات

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

ما هو الذكاء الإصطناعي ؟

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

The Best Programming Language for AI: Your Ultimate Guide
دعونا الأن نمر الى أهم اللغات البرمجية التي يبرمج بها الذكاء الإصطناعي :

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# قادرتين على ذلك ، الا ان اللغتين الأخيرتين لا يستعملان كثيرا في هذا المجال ، لكن هذا لا يعني انه لا يمكن إستخدامهما ، و بالطبع فلا داعي لأشرح كل من الجافا و السي بلس بلس و الماتلاب ، فالكثير يعرف هذه اللغات و ليست بلغات غريبة علينا .

 

اترك تعليقاً

زر الذهاب إلى الأعلى