لماذا لا تعمل الخوارزميات الجينية على مشاكل مثل العوملة رسا?

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

سؤال

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

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

لقد سمعت أيضا أنه لا يمكن حقا أن تستخدم لمعالجة مشاكل مثل العوملة رسا مفاتيح خاصة.

يمكن لأي شخص أن يفسر لماذا هذا هو الحال ?

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

المحلول

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

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

  1. دع r أن تكون معكوس رقم السلس mod n - لذلك r هو رقم تقريبي
  2. دع s يكون سلسا
  3. توليد حلول عشوائية من RX= SY وزارة الدفاع N. هذه الحلول [X، Y] هي السكان للخوارزمية الوراثية. كل X، Y لديها عنصر سلس ومكون تقريبي. على سبيل المثال، لنفترض X= 369= 9 × 41. ثم (على افتراض 41 ليس صغيرا بما يكفي لحساب الناعمة)، الجزء الخام من X هو 41 والجزء السلس هو 9.
  4. اختر أزواج الحلول - "الوالدان" - للجمع بين مجموعات خطية مع أجزاء خشنة أصغر من أي وقت مضى.
  5. الخوارزمية تنتهي عندما تم العثور على زوج [X، Y] بأجزاء خشنة [1،1]، [1، -1]، [- 1،1] أو [-1، -1]. هذا يعطي معادلة لطريقة ديكسون، لأن RX= SY وزارة الدفاع n و r هو الرقم الصعر الوحيد المتبقي: x و y سلسة، و s بدأت على نحو سلس. ولكن حتى 1 / ص وزارة الدفاع ن سلسة، لذلك كل شيء على نحو سلس!

    في كل مرة تجمع فيها بين أزواجين - قل [V و W] و [X و Y] - الأجزاء الناعمة من الأرقام الأربعة مظلمة، باستثناء العوامل التي سهم الأجزاء السلسة من v و x share، والعوامل أجزاء ناعمة من W و Y شارك. لذلك نختار الآباء الذين يشتركون في أجزاء ناعمة إلى أقصى حد ممكن. لجعل هذا دقيق، اكتب

    g= gcd (جزء أملس من V، جزء ناعم من x)

    h= GCD (جزء ناعم من W، جزء ناعم من Y)

    [v، w]، [x، y]= [g v / g، h w / h]، [g x / g، h y / h].

    سوف يتم الاحتفاظ بالعوامل السلس التي فاز بها G و H في الجيل التالي، ولكن سيتم التضحية بالأجزاء السلسة من V / G، W / H، X / G و Y / H من أجل الجمع بين [V، ث] و [X، Y]. لذلك نختار أولياء الأمور التي لديها V / G، W / H، X / G و Y / H أصغر أجزاء سلسة. وبهذه الطريقة، نقوم حقا بالقيادة في الأجزاء الخشنة من حلولنا ل RX= SY وزارة الدفاع N من جيل إلى آخر.

في مزيد من التفكير في أفضل طريقة لجعل طريقك نحو معاملات سلسة 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.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top