لماذا لا تعمل الخوارزميات الجينية على مشاكل مثل العوملة رسا?
-
12-11-2019 - |
سؤال
منذ بعض الوقت كنت مهتما جدا في الغاز ودرست عنهم قليلا جدا.كنت جالب لكتابة بعض البرامج وكنت مندهشا جدا من قدرتها على حل صعوبة خلاف ذلك لحساب المشاكل ، في بضع ثوان.لقد بدوا وكأنهم تقنية وحشية رائعة تعمل بذكاء حقا وتتكيف.
كنت أقرأ كتابا لميشالويتز ، إذا كنت أتذكر الاسم بشكل صحيح وبدا أن كل ذلك يعتمد على نظرية المخطط ، التي أثبتها معهد ماساتشوستس للتكنولوجيا.
لقد سمعت أيضا أنه لا يمكن حقا أن تستخدم لمعالجة مشاكل مثل العوملة رسا مفاتيح خاصة.
يمكن لأي شخص أن يفسر لماذا هذا هو الحال ?
المحلول
الخوارزمية الوراثية ليست ذكية على الإطلاق ، فهي خوارزميات محسن الجشع للغاية. انهم جميعا يعملون حول نفس الفكرة. لديك مجموعة من النقاط ("عدد السكان للأفراد")، وتحول هذه المجموعة إلى واحدة أخرى مع مشغل عشوائي، مع تحيز في اتجاه أفضل تحسن ("طفرة + كروس + اختيار"). كرر حتى يتقارب أو تعبت منه، لا شيء ذكي هناك.
للحصول على خوارزمية جينية للعمل، ينبغي أن يؤدي عدد السكان الجدد من النقاط بالقرب من السكان السابقين للنقاط. يجب أن يخلق القليل من الاضطرابات تغييرا قليلا. إذا، بعد اضطراب صغير في النقطة، تحصل على نقطة تمثل حلا بأداء مختلف تماما، ثم الخوارزمية ليست أفضل من البحث العشوائي، وعادة ما لا تكون خوارزمية تحسين جيدة. في حالة RSA، إذا كانت نقاطك هي الأرقام مباشرة، فهي إما نعم أو لا، فقط عن طريق التقليب قليلا ... وبالتالي استخدام خوارزمية وراثية ليست أفضل من البحث العشوائي، إذا كنت تمثل مشكلة RSA دون التفكير كثيرا "دعونا نقاط البحث كود كأجزاء من الأرقام "
نصائح أخرى
أود أن أقول لأن Summanation of Keys ليست مشكلة تحسين، ولكن مشكلة دقيقة.هذا التمييز ليس دقيقا للغاية، لذلك هنا تفاصيل. تعد الخوارزميات الوراثية رائعة لحل المشكلات حيث تكون الحد الأدنى (المحلي / العالمي)، ولكن لا توجد في مشكلة العكس.الخوارزمية الوراثية كما يحتاج DCA أو الصلب المحاكاة إلى مقياس من "المقرب الأول إلى الحل" ولكن لا يمكنك قول ذلك لمشكلتنا.
للحصول على مثال على المشكلات الوراثة جيدة، هناك مشكلة تسلق التل.
الغاز إلى تقييم اللياقة البدنية لحلول المرشحين.
لديك أساسا وظيفة اللياقة البدنية التي تأخذ في حل مرشح كإدخال ويمنحك عسمة تخبرك مدى جودة المرشح.يمكنك بعد ذلك إذن وتسمح بأفضل الأفراد من جيل معين لزميل الاحتمال الأعلى أكثر من البقية، بحيث يكون النسل (نأمل) أكثر "مناسبا" بشكل عام، وهلم جرا .
لا توجد وسيلة لتقييم اللياقة (كم هو حل مرشح مقارنة بالباقي) في سيناريو العومات RSA، ولهذا السبب لا يمكنك استخدامها.
الغاز ليست الغاشمة إجبار ، انهم مجرد خوارزمية البحث.كل الجا تبدو أساسا مثل هذا:
candidates = seed_value;
while (!good_enough(best_of(candidates))) {
candidates = compute_next_generation(candidates);
}
أين good_enough
و best_of
يتم تعريفها من حيث أ وظيفة اللياقة البدنية.وظيفة اللياقة البدنية تقول مدى نجاح مرشح معين في حل المشكلة.يبدو أن هذه هي القضية الأساسية هنا:كيف تكتب وظيفة اللياقة البدنية للعامل?على سبيل المثال 20 = 2*10 أو 4*5.الصفوف (2,10) و (4,5) من الواضح الفائزين, ولكن ماذا عن الآخرين?كيف "صالح" هو (1,9) أو (3,4)?
بشكل غير مباشر، يمكنك استخدام الخوارزميات بشكل غير مباشر لعملية استخدام أسلوب عامل التعثيم عدد صحيح N. Dixon المعادلات التي تنطوي على صلاحيات أول k الأعداد الأولية، Modulo N. هذه المنتجات من صلاحيات الأعداد الأولية الصغيرة تسمى "ناعم". إذا كنا نستخدم الأول k= 4 الأعداد الأولية - {2،3،5،7} - 42= 2x3x7 ناعمة و 11 ليس (لعدم وجود مصطلح أفضل، 11 هو "الخام" ). تتطلب طريقة Dixon مفصاح k k تتكون من الأسفل الذين يحددون هذه الأرقام السلسة. للمزيد من طريقة Dixon's، انظر https://en.wikipedia.org/wiki/dixon٪27s_mactorization_method .
الآن، عد إلى السؤال الأصلي: هناك خوارزمية وراثية لإيجاد معادلات طريقة Dixon.
في مزيد من التفكير في أفضل طريقة لجعل طريقك نحو معاملات سلسة X، Y في Lattice Ax= بواسطة MOD N مع الانحدار وليس خوارزمية وراثية.
يتم تنفيذ تراجعين، واحد مع استجابة متجهة R0 يتكون من قيم X من الحلول المختارة بشكل عشوائي من الفأس= بواسطة وزارة الدفاع N؛ والآخر مع نوع ناقلات R1 يتكون من قيم ص من نفس الحلول. تستخدم كل من الانحدارات نفس المصفوفة التوضيحية X. في X أعمدة تتكون من بقايا مقصات × القيم × المعدن، وغيرها من الأعمدة التي تتكون من بقايا القيم y impero modulo غير السلس الأخرى.
الخيار الأفضل من الطبقات الملساء هو الذي يقلل من الأخطاء من كل الانحدار:
e0= r0 - x (معكوس (x-timpospos) (x)) (x-timorpos) (r0)
e1= r1 - x (معكوس (x-timpospos) (x)) (x-timing) (r1)
ما يلي عمليات الصف لإبادة X. ثم قم بتطبيق النتيجة Z من عمليات الصف هذه إلى قيم X و Y من الحلول الأصلية التي تم تشكيلها x منها. giveacodicetagpre.
وبالمثل، Z R1= Z E1
يتم دمج ثلاث خصائص الآن في Z R0 و Z R1:
- إنهم مضاعلون بأرقام ناعمة كبيرة، لأن Z يبقى بأرقام غير سلسة Modulo.
- هم صغيرون نسبيا، لأن E0 و E1 صغيرة.
- مثل أي مزيج خطي من الحلول ل AX= بواسطة mod n، z r0 و z r1 هي حلول أنفسهم لهذه المعادلة.
مضاعف صغير نسبيا من عدد ناعم كبير قد يكون فقط الرقم السلس نفسه. وجود حل أملس من الفأس= من قبل وزارة الدفاع N تعطي مدخلات طريقة ديكسون.
اثنين من التحسينات تجعل هذا بسرعة خاصة:
- ليست هناك حاجة لتخمين جميع الأرقام والأعمدة السلس من X في وقت واحد. يمكنك تشغيل الانحدار مستمرا، إضافة عمود واحد إلى x في وقت واحد، واختيار الأعمدة التي تقلل من E0 و E1 أكثر. في أي وقت من الأوقات، سيتم تحديد أي أرقام ناعم مع عامل مشترك.
- يمكنك أيضا أن تبدأ مع الكثير من الحلول العشوائية من ZX= بواسطة MOD N، وإزالة الأشخاص بأكبر أخطاء بين تحديدات أعمدة جديدة ل X.