سؤال

هنا مشكلتي، أنا تعديل التعليمات البرمجية التي وجدت للخوارزميات الوراثية للقيام بتحسين عددي لوظيفة. في الأساس، بالنظر إلى وظيفة F وقيمتنا المرجوة، يستخدم البرنامج GA لإجراء عمليات بحث عن قيم X و Y التي توفر القيمة المناسبة المناسبة. أظل العبث مع وظيفة لياقتي اللياقة البدنية، والتي أشعر أنها أصل القضية.

Basic Code Break Down هو:

إنشاء عدد عشوائي الكروموسوم

استخدم فرز فقاعة يعتمد على كل اللياقة البدنية من الكروموسومات

تحقق مما إذا كان أي منها يحدث لحل الوظيفة

إذا كان أحد يحلها، ثم توقف عن

آخر، توليد الأطفال بناء على الوالدين فرز، تحقق من أفضل إجابة، حلقة

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

giveacodicetagpre.

}

giveacodicetagpre.

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

المحلول

في الواقع، لقد كان خطأ بسيطا يزعمني، أنني يجب أن أمسك.كانت القضية الرئيسية في استخدام العائد (3 * x) ^ (2 * y)؛^ هو xor bitwise في جافا، ولكن الأسهم.(Whoops) تم تصحيح المشكلة باستخدام Math.Pow (3 * x، 2 * y)؛... وفحص مزدوج قليلا من وظيفة اللياقة البدنية ويدير مع بعض التغييرات الطفيفة الأخرى :)

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