انت هنا الان : شبكة جامعة بابل > موقع الكلية > نظام التعليم الالكتروني > مشاهدة المحاضرة

الخوارزمية الجينية - التشفير

Share |
الكلية كلية العلوم للبنات     القسم قسم الحاسبات     المرحلة 4
أستاذ المادة نور كاظم ايوب مهدي المهدي       17/12/2017 08:23:00
طرق التشفير(encoding) :

لغرض حل مشكلة معينة باستخدام الخوارزميات الجينية لابد من تشفير معاملات المسألة بهيئة كروموسومات تحوي على جينات لها قيم تعتمد على طبيعة المسألة و لها تأثير كبير في نجاح الخوارزمية أو فشلها.
التشفير ببساطة هو عملية ملئ جينات الكروموسوم بالقيم المناسبة. هناك ثلاث أنواع أساسية للتشفير :
1- التشفير الثنائي binary encoding :

و فيه تكون قيمة الجينة أمّا واحد أو صفر إليك مثالاً يوضّح كروموسوم مشفر بهذه الطريقة :
1 1 0 0 1

Chromosome =
و لغرض توليد الكروموسوم الثنائي عشوائيا نستخدم دالة (randint) :
- لتوليد بت واحد يتم استدعاء هذه الدالة بدون معاملات : randint ()
لذلك لتوليد متجه من الاعداد الثنائية نحتاج الى دوارة :
For j=1: chl
chrom(j)= randint ();
end
حيث ان chl يمثل طول المتجه ( عدد المواقع فيه).
- يمكن توليد المتجه مباشرة اي يتم توليد المتجه دفعة واحدة بدون دوارة وذلك عندما نضع معاملات للدالة المذكورة هذه المعاملات تمثل ابعاد المتجه المراد توليده فمثلا لتوليد متجه يتكون من 8 مواقع ثنائية القيم نستخدم الصيغة الاتية:
Chrom=randint (1,8)
2- التشفير الصحيح integer encoding :

تكون قيمة الجينة عدد صحيح , المثال التالي يبيّن كروموسوم مشفّر بهذه الطريقة :

1 6 1
Chromosome =

و لغرض توليد الكروموسوم الثنائي عشوائيا نستخدم دالة (randi) :
- لتوليد قيمة واحدة يتم استدعاء هذه الدالة بمعامل واحد : randint (max) حيث max تمثل اقصى عدد يمكن للدالة توليده , بعبارة اخرى فانها تولد عدد عشوائية بين 1 و max
لذلك لتوليد متجه نحتاج الى دوارة :
For j=1: chl
chrom(j)= randint (max);
end
حيث ان chl يمثل طول المتجه ( عدد المواقع فيه).
- يمكن توليد المتجه مباشرة اي يتم توليد المتجه دفعة واحدة بدون دوارة وذلك عندما نضع معاملات للدالة المذكورة هذه المعاملات تمثل ابعاد المتجه المراد توليده فمثلا لتوليد متجه يتكون من 8 مواقع ذات قيم صحيحة نستخدم الصيغة الاتية:
Chrom=randint (max,1,8)
اي يتم تحديد القيمة القصوى و من ثم يتم تحديد ابعاد المتجه
3- التشفير الحقيقي real encoding :

تكون قيمة الجينة عدد حقيقي , يمتاز هذا النوع بالدقة و إمكانية السيطرة على الطفرات الوراثيّة.
و لغرض توليد الكروموسوم الحقيقي عشوائيا نستخدم دالة ( randi) :
- لتوليد عدد حقيقي واحد يتم استدعاء هذه الدالة بدون معاملات : rand ()
لذلك لتوليد متجه نحتاج الى دوارة :
For j=1: chl
chrom(j)= rand ();
end
حيث ان chl يمثل طول المتجه ( عدد المواقع فيه).
- يمكن توليد المتجه مباشرة اي يتم توليد المتجه دفعة واحدة بدون دوارة وذلك عندما نضع معاملات للدالة المذكورة هذه المعاملات تمثل ابعاد المتجه المراد توليده فمثلا لتوليد متجه يتكون من 8 مواقع حقيقية القيم نستخدم الصيغة الاتية:
Chrom=rand (1,8)


المادة المعروضة اعلاه هي مدخل الى المحاضرة المرفوعة بواسطة استاذ(ة) المادة . وقد تبدو لك غير متكاملة . حيث يضع استاذ المادة في بعض الاحيان فقط الجزء الاول من المحاضرة من اجل الاطلاع على ما ستقوم بتحميله لاحقا . في نظام التعليم الالكتروني نوفر هذه الخدمة لكي نبقيك على اطلاع حول محتوى الملف الذي ستقوم بتحميله .
الرجوع الى لوحة التحكم