انت هنا الان : شبكة جامعة بابل > موقع الكلية > نظام التعليم الالكتروني > مشاهدة المحاضرة
الكلية كلية العلوم للبنات
القسم قسم الحاسبات
المرحلة 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)
المادة المعروضة اعلاه هي مدخل الى المحاضرة المرفوعة بواسطة استاذ(ة) المادة . وقد تبدو لك غير متكاملة . حيث يضع استاذ المادة في بعض الاحيان فقط الجزء الاول من المحاضرة من اجل الاطلاع على ما ستقوم بتحميله لاحقا . في نظام التعليم الالكتروني نوفر هذه الخدمة لكي نبقيك على اطلاع حول محتوى الملف الذي ستقوم بتحميله .
الرجوع الى لوحة التحكم
|