ذكي استكمال التعليمات البرمجية؟هل يوجد ذكاء اصطناعي لكتابة التعليمات البرمجية عن طريق التعلم؟

StackOverflow https://stackoverflow.com/questions/710843

سؤال

أطرح هذا السؤال لأنني أعلم أن هناك الكثير من أنواع علوم الكمبيوتر المقروءة جيدًا هنا والتي يمكنها تقديم إجابة واضحة.

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

أعلم أن هذا يبدو أمرًا مستحيلًا، لذا أطلب معرفة ما تم إنجازه، إن وجد.

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

ولكن مع الذكاء الاصطناعي التعليمي المتطور، سأشعر بالفضول لمعرفة ما يمكن أن يولده.

أعلم أن هناك الكثير من الصفات الإنسانية التي لا تستطيع أجهزة الكمبيوتر محاكاتها، مثل أحكامنا وأذواقنا وأحكامنا المسبقة.لكن مخيلتي تحب فكرة البرنامج الذي ينشر موقع ويب بعد يوم من التفكير ويتيح لي رؤية ما توصل إليه، ومع ذلك كنت أتوقع في كثير من الأحيان أنه مجرد هراء؛ولكن ربما أقدم له تعليقات مرة واحدة يوميًا وأساعده على التعلم.

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

ماذا عنها؟

هل كانت مفيدة؟

المحلول

وهذه الأدوات موجودة. فهي موضوع الانضباط دعا الوراثية البرمجة . كيف تقيم نجاحها يعتمد على نطاق تطبيقها.

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

ولقد كانت عديمة الفائدة تماما في محاولة لبناء برامج السائدة، التي تتطلب تفاعل المستخدم، لأن العنصر الرئيسي في النظام الذي يتعلم الاحتياجات هو واضح "<لأ href =" http://en.wikipedia.org/wiki/ Fitness_function "يختلط =" noreferrer "> وظيفة اللياقة البدنية "، أو تقييم نوعية الحل الحالي قد حان حتى مع.

ومجال آخر يمكن أن ينظر إليها في التعامل مع "التعلم برنامج" هو href="http://en.wikipedia.org/wiki/Inductive_logic_programming" حثي المنطق البرمجة ، على الرغم من أن أكثر استخدامه لتوفير مظاهرة التلقائي أو تعلم اللغة / التصنيف.

نصائح أخرى

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

أريد أن أضيف المزيد إلى ما فارخان أجاب (وهو صحيح في الأساس).

ال البرمجة الجينية (GP) نهج ل البرمجة التلقائية يخلط معها وظائف اللياقة البدنية, ، مشكلتان مختلفتان ("التجميع الذاتي" هو أمر لا يحتاج إلى تفكير من الناحية النظرية):

  • التحسين/التكيف الذاتي - للبرنامج المركب، وإذا رغبت في ذلك، للمركب نفسه؛و
  • توليف البرنامج.

w.r.t. التحسين الذاتي / التكيف راجع يورغن شميدهوبر ماكينات جويدل: يقوم حل المشكلات العالمية ذات المرجعية الذاتية بإجراء تحسينات ذاتية مثالية.(كملاحظة جانبية:المثير للاهتمام هو عمله على فضول مصطنع.) ذات الصلة أيضا لهذه المناقشة هي الأنظمة الذاتية.

w.r.t. توليف البرنامج, أعتقد أنه من الممكن تصنيف 3 فروع رئيسية: العشوائية (احتمالي - مثل GP المذكور أعلاه)، استقرائية و استنتاجي.

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

توليف البرنامج الاستقرائي يُعرف عادة باسم البرمجة الاستقرائية (IP)، منها البرمجة المنطقية الاستقرائية (ILP) هو مجال فرعي.وهذا يعني أن التقنية بشكل عام لا تقتصر على ذلك برنامج المنطق التوليف أو التوليف المكتوب بلغة البرمجة المنطقية (ولا يقتصر كلاهما على ".. العرض التلقائي أو تعلم اللغة/التصنيف").

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

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

§ هذه الروابط مباشرة إلى ملفات PDF:آسف، أنا غير قادر على العثور على ملخص.

البرمجة عن طريق العرض التوضيحي (الرصاص) و البرمجة عن طريق المثال (PbE) هي تطوير المستخدم النهائي التقنيات المعروفة للاستفادة منها توليف البرنامج الاستقرائي عمليا.

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

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

عندما (إذا) ستنضج هذه التقنيات (التحسين الذاتي/التكيف وتوليف البرامج)، فإنها تبشر برفع كمية الأتمتة التي تقدمها البرمجة التصريحية (أن هذا الإعداد يجب أن يؤخذ في الاعتبار "برمجة" يكون يتم مناقشتها في بعض الأحيان):سوف نركز أكثر على هندسة المجال و تحليل المتطلبات والهندسة بدلاً من تصميم البرامج وتطويرها يدويًا، والتصحيح اليدوي، والضبط اليدوي لأداء النظام وما إلى ذلك (ربما بتكلفة أقل) التعقيد العرضي مقارنة بتلك المقدمة مع الدليل الحالي، وليس تقنيات التحسين/التكيف الذاتي).سيؤدي هذا أيضًا إلى تعزيز مستوى خفة الحركة لم يتم إثباتها بعد بالتقنيات الحالية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top