البرمجة الاستقرائية
البرمجة الاستقرائية ( IP ) هي مجال خاص من البرمجة الآلية ، تغطي الأبحاث من الذكاء الاصطناعي والبرمجة ، والتي تتناول تعلم البرامج التصريحية ( المنطقية أو الوظيفية ) والتكرارية في كثير من الأحيان من مواصفات غير مكتملة، مثل أمثلة الإدخال/الإخراج أو القيود.
توجد أنواع عديدة من البرمجة الاستقرائية تبعاً للغة البرمجة المستخدمة. وقد برزت البرمجة الوظيفية الاستقرائية ، التي تستخدم لغات البرمجة الوظيفية مثل ليسب أو هاسكل ، وخاصة البرمجة المنطقية الاستقرائية ، التي تستخدم لغات البرمجة المنطقية مثل برولوج وغيرها من التمثيلات المنطقية مثل منطق الوصف ، ولكن تم استخدام نماذج لغات برمجة أخرى أيضاً، مثل برمجة القيود أو البرمجة الاحتمالية .
تعريف
يشمل البرمجة الاستقرائية جميع المناهج التي تُعنى بتعلم البرامج أو الخوارزميات من مواصفات غير مكتملة ( رسمية ). وتشمل المدخلات المحتملة في نظام البرمجة الاستقرائية مجموعة من مدخلات التدريب ومخرجاتها المقابلة، أو دالة تقييم المخرجات التي تصف السلوك المطلوب للبرنامج المقصود، أو مسارات أو تسلسلات الإجراءات التي تصف عملية حساب مخرجات محددة، أو قيودًا على البرنامج المراد استنتاجها فيما يتعلق بكفاءته الزمنية أو تعقيده، أو أنواعًا مختلفة من المعرفة الأساسية مثل أنواع البيانات القياسية ، والوظائف المُعرَّفة مسبقًا والمُراد استخدامها، ومخططات أو قوالب البرامج التي تصف تدفق البيانات للبرنامج المقصود، والأساليب الاستدلالية لتوجيه البحث عن حل، أو غيرها من التحيزات.
إن مخرجات نظام IP هي برنامج بلغة برمجة عشوائية تحتوي على عبارات شرطية وحلقات أو هياكل تحكم تكرارية، أو أي نوع آخر من لغات التمثيل الكاملة تورينج .
في العديد من التطبيقات، يجب أن يكون برنامج الإخراج صحيحًا فيما يتعلق بالأمثلة والمواصفات الجزئية، وهذا يؤدي إلى اعتبار البرمجة الاستقرائية مجالًا خاصًا داخل البرمجة التلقائية أو توليف البرامج ، [ 1 ] [ 2 ] وعادة ما يتم معارضتها لتوليف البرامج "الاستنتاجي"، [ 3 ] [ 4 ] [ 5 ] حيث تكون المواصفات عادةً كاملة.
في حالات أخرى، يُنظر إلى البرمجة الاستقرائية على أنها مجال أوسع يُمكن فيه استخدام أي لغة برمجة تصريحية أو لغة تمثيلية، وقد تتضمن الأمثلة بعض الأخطاء، كما هو الحال في التعلم الآلي العام ، أو مجال استخراج البنية ، أو مجال الذكاء الاصطناعي الرمزي . ومن السمات المميزة عدد الأمثلة أو المواصفات الجزئية المطلوبة. عادةً، تستطيع تقنيات البرمجة الاستقرائية التعلم من عدد قليل من الأمثلة.
عادة ما يأتي تنوع البرمجة الاستقرائية من التطبيقات واللغات المستخدمة: فإلى جانب البرمجة المنطقية والبرمجة الوظيفية، تم استخدام أو اقتراح نماذج برمجة ولغات تمثيل أخرى في البرمجة الاستقرائية، مثل البرمجة المنطقية الوظيفية ، وبرمجة القيود ، والبرمجة الاحتمالية ، والبرمجة المنطقية الاستنباطية ، والمنطق الموجه ، ولغات الأفعال ، ولغات الوكلاء، وأنواع عديدة من اللغات الإجرائية .
تاريخ
كان لأعمال بلوتكين المبكرة، [ 6 ] [ 7 ] ونظريته " التعميم الأقل عمومية النسبية (rlgg) "، أثرٌ بالغٌ في برمجة المنطق الاستقرائي . وقد ظهرت بعض النتائج المشجعة في تعلم برامج برولوج التكرارية، مثل خوارزمية الفرز السريع، من خلال أمثلة إلى جانب معرفة أساسية مناسبة، كما هو الحال مع لغة غوليم. [ 8 ] مع ذلك، وبعد النجاح الأولي، خاب أمل المجتمع العلمي بسبب التقدم المحدود في استقراء البرامج التكرارية [ 9 ] [ 10 ] [ 11 ] ، حيث قلّ تركيز برمجة المنطق الاستقرائي على البرامج التكرارية، واتجهت أكثر فأكثر نحو بيئة تعلم الآلة وتطبيقاتها في استخراج البيانات العلائقية واكتشاف المعرفة. [ 12 ]
بالتوازي مع العمل في مجال البرمجة الخطية الاستقرائية، اقترح كوزا [ 13 ] البرمجة الجينية في أوائل التسعينيات كنهج قائم على التوليد والاختبار لتعلم البرامج. وقد طُوِّرت فكرة البرمجة الجينية لاحقًا إلى نظام البرمجة الاستقرائية ADATE [ 14 ] ونظام البحث المنهجي MagicHaskeller [ 15 ] . وهنا أيضًا، تُتعلَّم البرامج الوظيفية من مجموعات من الأمثلة الإيجابية، بالإضافة إلى دالة تقييم المخرجات (الكفاءة) التي تحدد سلوك الإدخال/الإخراج المطلوب للبرنامج المراد تعلمه.
ترتبط الأعمال المبكرة في استقراء القواعد النحوية (المعروف أيضًا بالاستدلال النحوي) بالبرمجة الاستقرائية، حيث يمكن استخدام أنظمة إعادة الكتابة أو البرامج المنطقية لتمثيل قواعد الإنتاج. في الواقع، اعتبرت الأعمال المبكرة في الاستدلال الاستقرائي استقراء القواعد النحوية واستدلال برامج لغة ليسب مشكلة واحدة أساسًا. [ 16 ] ارتبطت النتائج المتعلقة بقابلية التعلم بمفاهيم كلاسيكية، مثل التحديد في النهاية، كما ورد في العمل الرائد لجولد. [ 17 ] في الآونة الأخيرة، تناول مجتمع البرمجة الاستقرائية مشكلة تعلم اللغة. [ 18 ] [ 19 ]
في السنوات الأخيرة، تمّ استئناف المناهج الكلاسيكية وتطويرها بنجاح كبير. ولذلك، أُعيدت صياغة مشكلة التركيب على خلفية أنظمة إعادة كتابة المصطلحات القائمة على المُنشئات، مع مراعاة التقنيات الحديثة للبرمجة الوظيفية، بالإضافة إلى الاستخدام المعتدل لاستراتيجيات البحث، والاستفادة من المعرفة الأساسية، فضلاً عن الابتكار التلقائي للبرامج الفرعية. وقد ظهرت مؤخراً العديد من التطبيقات الجديدة والناجحة خارج نطاق تركيب البرامج، لا سيما في مجال معالجة البيانات، والبرمجة بالأمثلة، والنمذجة المعرفية (انظر أدناه).
تم استكشاف أفكار أخرى تشترك في استخدام لغات وصفية لتمثيل الفرضيات. على سبيل المثال، تم الترويج لاستخدام خصائص أو مخططات أو مسافات مُهيكلة من الرتبة العليا لتحسين التعامل مع أنواع البيانات والهياكل المتكررة ؛ [ 20 ] [ 21 ] [ 22 ] كما تم استكشاف التجريد كنهج أكثر فعالية للتعلم التراكمي وابتكار الدوال. [ 23 ] [ 24 ]
يُعدّ البرمجة الاحتمالية (والنماذج ذات الصلة، مثل برامج المنطق العشوائي وبرمجة المنطق البايزي) نموذجًا قويًا استُخدم مؤخرًا لتمثيل الفرضيات في البرمجة الاستقرائية (عادةً في شكل نماذج توليدية ). [ 25 ] [ 26 ] [ 24 ] [ 27 ]
مجالات التطبيق
حددت ورشة العمل الأولى حول مناهج وتطبيقات البرمجة الاستقرائية (AAIP)، المؤرشفة بتاريخ 3 مارس 2016 على موقع Wayback Machine ، والتي عُقدت بالتزامن مع المؤتمر الدولي للتعلم الآلي (ICML) لعام 2005، جميع التطبيقات التي تتطلب "تعلم البرامج أو القواعد التكرارية، [...] أولاً في مجال هندسة البرمجيات حيث يمكن للتعلم الهيكلي، ومساعدي البرمجيات، ووكلاء البرمجيات أن تُخفف عن المبرمجين المهام الروتينية، وتُقدم دعمًا برمجيًا للمستخدمين النهائيين، أو دعمًا للمبرمجين المبتدئين وأنظمة تعليم البرمجة. وتشمل مجالات التطبيق الأخرى تعلم اللغات، وتعلم قواعد التحكم التكرارية لتخطيط الذكاء الاصطناعي، وتعلم المفاهيم التكرارية في استخراج البيانات من الويب أو لتحويل تنسيقات البيانات".
منذ ذلك الحين، أثبتت هذه المجالات والعديد من المجالات الأخرى أنها مجالات تطبيق ناجحة للبرمجة الاستقرائية، مثل برمجة المستخدم النهائي ، [ 28 ] والمجالات ذات الصلة بالبرمجة عن طريق المثال [ 29 ] والبرمجة عن طريق العرض التوضيحي ، [ 30 ] وأنظمة التدريس الذكية .
تشمل المجالات الأخرى التي طُبِّق فيها الاستدلال الاستقرائي مؤخرًا اكتساب المعرفة ، [ 31 ] والذكاء الاصطناعي العام ، [ 32 ] والتعلم المعزز وتقييم النظريات، [ 33 ] [ 34 ] والعلوم المعرفية بشكل عام. [ 35 ] [ 27 ] وقد تكون هناك تطبيقات مستقبلية في الوكلاء الأذكياء، والألعاب، والروبوتات، والتخصيص، والذكاء المحيطي، وواجهات المستخدم.
انظر أيضاً
مراجع
- ↑ بيرمان، أ. و. (1992). شابيرو، س. س. (محرر). "البرمجة الآلية". موسوعة الذكاء الاصطناعي : 18-35 .
- ↑ ريتش، سي.؛ ووترز، آر سي (1993). يوفيتس، إم سي (محرر). مناهج البرمجة الآلية (ملف PDF) . التقدم في الحوسبة. المجلد 37. الصفحات 1-57 . doi : 10.1016/S0065-2458(08)60402-7 . ISBN 9780120121373.
- ↑ لوري، إم إل؛ مكارثي، آر دي، محرران. (1991). تصميم البرمجيات الآلي .
- ^ مناع، ز. والدينجر، ر. (1992). “أساسيات توليف البرنامج الاستنتاجي”. IEEE Trans Softw Eng . 18 (8): 674-704 . سايتسيركس 10.1.1.51.817 . دوى : 10.1109/32.153379 .
- ↑ فلينر، ب. (2002). "إنجازات وآفاق توليف البرامج". في: كاكاس، أ.؛ صدري، ف. (محرران). المنطق الحسابي: البرمجة المنطقية وما بعدها؛ مقالات تكريمًا لروبرت أ. كوالسكي . سلسلة محاضرات في علوم الحاسوب. المجلد LNAI 2407. الصفحات 310-346 . doi : 10.1007/3-540-45628-7_13 . ISBN 978-3-540-43959-2.
- ↑ بلوتكين، جوردون د. (1970). ميلتزر، ب.؛ ميتشي، د. (محرران). "ملاحظة حول التعميم الاستقرائي" (ملف PDF) . الذكاء الآلي . 5 : 153-163 .
- ↑ بلوتكين، جوردون د. (1971). ميلتزر، ب.؛ ميتشي، د. (محرران). "ملاحظة إضافية حول التعميم الاستقرائي". ذكاء الآلة . 6 : 101-124 .
- ↑ موغلتون، إس إتش؛ فينغ، سي. (1990). "الاستقراء الفعال للبرامج المنطقية". وقائع ورشة عمل نظرية التعلم الخوارزمي . 6 : 368-381 . S2CID 14992676 .
- ↑ كوينلان، جيه آر؛ كاميرون-جونز، آر إم (1993). "تجنب المزالق عند تعلم النظريات التكرارية". المؤتمر الدولي المشترك للذكاء الاصطناعي : 1050-1057 . S2CID 11138624 .
- ↑ كوينلان، جيه آر؛ كاميرون-جونز، آر إم (1995). "استقراء البرامج المنطقية: FOIL والأنظمة ذات الصلة" (ملف PDF) . 13 ( 3-4 ). سبرينغر: 287-312 . مؤرشف من الأصل (ملف PDF) بتاريخ 2017-09-07 . تم الاسترجاع بتاريخ 2017-09-07 .
{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal= - ↑ فلينر، ب.؛ يلماز، س. (1999). "التوليف الاستقرائي لبرامج المنطق التكراري: الإنجازات والآفاق" . مجلة برمجة المنطق . 41 (2): 141-195 . doi : 10.1016/s0743-1066(99)00028-x .
- ↑ دزيروسكي، ساشو (1996)، "البرمجة المنطقية الاستقرائية واكتشاف المعرفة في قواعد البيانات"، في فياض، يو إم؛ بياتيتسكي-شابيرو، جي؛ سميث، بي؛ أوثوروسامي، آر (محررون)، التطورات في اكتشاف المعرفة واستخراج البيانات ، مطبعة معهد ماساتشوستس للتكنولوجيا ، ص 117-152
- ↑ كوزا، جيه آر (1992). البرمجة الجينية: المجلد 1، حول برمجة الحواسيب عن طريق الانتقاء الطبيعي . مطبعة معهد ماساتشوستس للتكنولوجيا. ISBN 9780262111706.
- ↑ أولسون، جيه آر (1995). "البرمجة الوظيفية الاستقرائية باستخدام تحويل البرنامج التزايدي" . الذكاء الاصطناعي . 74 (1): 55-83 . doi : 10.1016/0004-3702(94)00042-y .
- ↑ كاتاياما، سوسومو (2008). "التوليد الشامل الفعال للبرامج الوظيفية باستخدام بحث مونت كارلو مع التعميق التكراري" (ملف PDF) . مؤتمر PRICAI 2008: اتجاهات في الذكاء الاصطناعي . سلسلة محاضرات في علوم الحاسوب. المجلد 5351. الصفحات 199-210 . CiteSeerX 10.1.1.606.1447 . doi : 10.1007/978-3-540-89197-0_21 . ISBN 978-3-540-89196-3.
- ↑ أنجلوين، د.؛ سميث، سي إتش (1983). "الاستدلال الاستقرائي: النظرية والأساليب". مجلة ACM Computing Surveys . 15 (3): 237-269 . doi : 10.1145/356914.356918 . S2CID 3209224 .
- ↑ غولد، إي إم (1967). "تحديد اللغة في الحد" . المعلومات والتحكم . 10 (5): 447-474 . doi : 10.1016/s0019-9958(67)91165-5 .
- ↑ موغلتون، ستيفن (1999). "البرمجة المنطقية الاستقرائية: قضايا ونتائج وتحدي تعلم اللغة في المنطق" . الذكاء الاصطناعي . 114 ( 1-2 ): 283-296 . doi : 10.1016/s0004-3702(99)00067-3 .هنا: القسم 2.1
- ↑ أولسون، جيه آر؛ باورز، دي إم دبليو (2003). "التعلم الآلي للغة البشرية من خلال البرمجة التلقائية". وقائع المؤتمر الدولي للعلوم المعرفية : 507-512 .
- ↑ لويد، جيه دبليو (2001). "تمثيل المعرفة، والحساب، والتعلم في منطق الرتبة العليا" (PDF) .
{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal= - ↑ لويد، جيه دبليو (2003). المنطق من أجل التعلم: تعلم نظريات مفهومة من بيانات منظمة . سبرينغر. ISBN 9783662084069.
- ↑ إستروش، ف.؛ فيري، س.؛ هيرنانديز-أورالو، ج.؛ راميريز-كوينتانا، م. ج. (2014). "سد الفجوة بين المسافة والتعميم" . الذكاء الحسابي . 30 (3): 473-513 . doi : 10.1111/coin.12004 . hdl : 10251/34946 . S2CID 7255690 .
- ↑ هندرسون، آر جيه؛ موغلتون، إس إتش (2012). "الابتكار التلقائي للتجريدات الوظيفية" (ملف PDF) . التطورات في برمجة المنطق الاستقرائي .
- 1 2 إيرفين، هـ.؛ ستولمولر، أ.؛ غودمان، ن.د. (2011). "استنباط البرامج الاحتمالية عن طريق دمج البرامج البايزية". arXiv : 1110.5667 [ cs.AI ].
- ↑ موغلتون، س. (2000). "تعلم برامج المنطق العشوائي" (ملف PDF) . المعاملات الإلكترونية للذكاء الاصطناعي 4 (ب) : 141-153 . مؤرشف من الأصل (ملف PDF) بتاريخ 7 سبتمبر 2017. تم الاطلاع عليه بتاريخ 7 سبتمبر 2017 .
- ↑ دي رايدت، ل.؛ كيرستينغ، ك. (2008). البرمجة المنطقية الاستقرائية الاحتمالية . سبرينغر.
- 1 2 ستولمولر، أ.؛ غودمان، ن. د. (2012). "الاستدلال حول الاستدلال من خلال التكييف المتداخل: نمذجة نظرية العقل باستخدام البرامج الاحتمالية". بحوث الأنظمة المعرفية . 28 : 80-99 . doi : 10.1016/j.cogsys.2013.07.003 . S2CID 7602205 .
- ↑ ليبرمان، هـ.؛ باتيرنو، ف.؛ وولف، ف. (2006). تطوير المستخدم النهائي . سبرينغر.
- ↑ ليبرمان، هـ. (2001). أمرك مطاع: البرمجة بالأمثلة . مورغان كوفمان. ISBN 9781558606883.
- ↑ سايفر، إي.؛ هالبرت، دي سي (1993). شاهد ما أفعله: البرمجة بالعرض التوضيحي . مطبعة معهد ماساتشوستس للتكنولوجيا. ISBN 9780262032131.
- ↑ شميد، يو .؛ هوفمان، إم.؛ كيتزلمان، إي. (2009). "البرمجة الاستقرائية التحليلية كأداة لاكتساب القواعد المعرفية" (ملف PDF) . وقائع المؤتمر الثاني حول الذكاء الاصطناعي العام : 162-167 .
- ↑ كروسلي، ن.؛ كيتزلمان، إ.؛ هوفمان، م.؛ شميد، يو. (2009). "الجمع بين البرمجة الاستقرائية التحليلية والتطورية" (ملف PDF) . وقائع المؤتمر الثاني حول الذكاء الاصطناعي العام : 19-24 .
- ↑ هيرنانديز-أورالو، ج. (2000). "التعلم المعزز البنّاء". المجلة الدولية للأنظمة الذكية . 15 (3): 241-264 . CiteSeerX 10.1.1.34.8877 . doi : 10.1002/(sici)1098-111x(200003)15:3 < 241::aid-int6 > 3.0.co ; 2-z . S2CID 123390956 .
- ↑ كيمب، سي.؛ غودمان، ن.؛ تيننباوم، جيه بي (2007). "تعلم واستخدام النظريات العلائقية" (ملف PDF) . التطورات في أنظمة معالجة المعلومات العصبية : 753-760 .
- ↑ شميد، يو .؛ كيتزلمان، إي. (2011). "التعلم الاستقرائي للقواعد على مستوى المعرفة". بحوث الأنظمة المعرفية . 12 (3): 237-248 . doi : 10.1016/j.cogsys.2010.12.002 . S2CID 18613664 .
للمزيد من القراءة
- فلينر، ب.؛ شميد، يو. (2008). "مقدمة في البرمجة الاستقرائية". مراجعة الذكاء الاصطناعي . 29 (1): 45-62 . doi : 10.1007/s10462-009-9108-7 . S2CID 26314997 .
- كيتزلمان، إي. (2010). "البرمجة الاستقرائية: دراسة استقصائية لتقنيات توليف البرامج" (ملف PDF) . مناهج وتطبيقات البرمجة الاستقرائية . سلسلة محاضرات في علوم الحاسوب. المجلد 5812. الصفحات 50-73 . CiteSeerX 10.1.1.180.1237 . doi : 10.1007/978-3-642-11931-6_3 . ISBN 978-3-642-11930-9.
- بارتريدج، د. (1997). "حجة البرمجة الاستقرائية". مجلة الكمبيوتر . 30 (1): 36-41 . doi : 10.1109/2.562924 . S2CID 206403583 .
- فلينر، ب.؛ بارتريدج، د. (2001). "البرمجة الاستقرائية". هندسة البرمجيات الآلية . 8 (2): 131-137 . doi : 10.1023/a:1008797606116 . S2CID 6675212 .
- هوفمان، م.؛ كيتزلمان، إ. (2009). "إطار موحد لتحليل وتقييم أنظمة البرمجة الاستقرائية" . وقائع المؤتمر الثاني حول الذكاء الاصطناعي العام : 55-60 .
- موغلتون، س.؛ دي رايدت، ل. (1994). "البرمجة المنطقية الاستقرائية: النظرية والأساليب" . مجلة البرمجة المنطقية . 19-20 : 629-679 . doi : 10.1016/0743-1066(94)90035-3 .
- لافراك، ن .؛ دزيروسكي، س. (1994). البرمجة المنطقية الاستقرائية: التقنيات والتطبيقات . نيويورك: إليس هوروود. ISBN 978-0-13-457870-5.https://web.archive.org/web/20040906084947/http://www-ai.ijs.si/SasoDzeroski/ILPBook/
- موغلتون، إس.؛ دي رايدت، لوك.؛ بول، د.؛ براتكو، آي.؛ فلاخ، ب.؛ إينوي، ك.؛ سرينيفاسان، أ. (2012). "البرمجة الخطية المستقلة تبلغ 20 عامًا" . تعلم الآلة . 86 (1): 3-23 . doi : 10.1007/s10994-011-5259-2 .
- جولواني، س. هيرنانديز أورالو، J .؛ كيتزلمان، إي. موغلتون، SH؛ شميد، يو . زورن، ب. (2015). "البرمجة الاستقرائية تلتقي بالعالم الحقيقي" . اتصالات ACM . 58 (11): 90– 99. سايتسيركس 10.1.1.696.3800 . دوى : 10.1145/2736282 . اتش دي ال : 10251/64984 . S2CID 425881 .
روابط خارجية
- صفحة مجتمع البرمجة الاستقرائية ، التي تستضيفها جامعة بامبرغ.
- نماذج البرمجة
- التعلم الآلي
