موضوع: الگوریتم های تخصیص داده پویا در سیستم های پایگاه داده توزیعی
مقدمه
پیشرفت در تکنولوژیهای شبکه و پایگاه داده در دهه های اخیر منجر به ایجاد سیستم های پایگاه داده توزیع شده گشته است .یک سیستم پایگاه داده توزیع شده مجموعه ای از سایتها می باشد که از طریق شبکه به هم متصل شده اند که هر کدام از سایت ها پایگاه داده مخصوص به خود دارد اما می توانند با یکدیگر کار کنند بنابراین هر کاربری در هر سایتی می تواند به همه داده های موجود در شبکه دسترسی داشته باشد درست مانند اینکه همه داده ها در سایت کاربر ذخیره شده است .
دغدغه اصلی سیستم های پایگاه داده توزیع شده قطعه قطعه کردن[1] و تخصیص[2] پایگاه داده اصلی می باشد واحد قطعه داده می تواند یک فایل باشد که در این حالت موضوع تخصیص همان تخصیص فایل خواهد بود مشکل تخصیص داده یک مسئله NP-complete می باشد بنابراین نیاز به هیوریستیکهای سریع برای تولید راه حل های موثر می باشد علاوه بر اینها تخصیص بهینه اشیا پایگاه داده به طور شدید بستگی به استراتژی اجرای پرس وجو [3] که به وسیله پایگاه داده توزیع شده پیاده سازی شده دارد .
هزینه اصلی در اجرای پرس و جو در سیستمهای پایگاه داده توزیع شده هزینه انتقال داده هنگام انتقال یک رابطه در موقع درخواست پرس و جو از یک سایت و انتقال آن از یک سایت متفاوت می باشد[2] . هدف اصلی الگوریتم های تخصیص داده تعیین نسبت دادن فرگمنتها به سایتهای مختلف برای کمینه کردن هزینه انتقال داده در اجرای[4] یک مجموعه از پرس و جو ها می باشد که معادل کمینه کردن زمان متوسط اجرای پرس و جو می باشد که اهمیت اصلی در محیط های توزیع شده و پایگاه داده چند رسانه ای دارد .
سیستم های طبیعی مختلف به ما یاد میدهند که ارگانیسم خارجی بسیار ساده توان تولید سیستم هایی با قابلیت انجام کارهایی بسیار پیچیده را دارند. حشرات اجتماعی ( زنبور عسل، زنبور معمولی، مورچه ها و موریانه ها ) برای میلیونها سال بر روی کره زمین زندگی کردهاند، آشیانه های مختلف ساخته اند و آذوقه خود را سازمان دهی کردهاند. پویاگرایی جمعیت حشارت نتیجهای از عملکردها و تعاملات بین حشرات با یکدیگر و با محیط اطراف است. این تعامل بر اساس یکسری عوامل فیزیکی و شیمیایی امکان پذیر است. مثالی برای چنین رفتارهایی، حرکت خاص مورچه ها در هنگام جمع آوری محصول است. مثال دیگر ترشح هورمون فنومون در مورچه ها که موجب راه گذاری برای سایرین میشود. این سیستمهای ارتباطی بین حشرات موجب به وجود آمدن مقوله ای به نام “هوش اشتراکی” شدهاست. زنبورها فعالیتهای خوراکجوییشان را بصورت اجتماعی سازمان دهی میکنند، زنبورهای خوراکجو فاصله و کیفیت منابع غذایی را با یک نوع رقص به سایر زنبوران اطلاع میدهند . در این پایان نامه ما یک الگوریتم مسیریابی نو را معرفی میکنیم، BeeHive الهام گرفته از روشها و رویه های زنبورهای عسل میباشد. در این الگوریتم، عامل زنبور از میان یک منطقه بسیار وسیع و بی انتها حرکت میکند، که ناحیه کاوش foraging zones نامیده میشود. اطلاعات زنبورها در مورد وضعیت شبکه برای به هنگام سازی جداول مسیریابی تحویل داده میشود. کندو اطلاعات محلی یا ناحیه ای را به ترتیب حساب میکند. از میان شبیه سازیهای انجام شده نشان میده یم که یک BeeHive الگوریتم پیشرفته را انجام میدهد.
فهرست :
بخش اول
مقدمه
الگوریتم AntNet
مراحل مختلف اجرای الگوریتم AntNet
توصیف یک مثال
بخش دوم
پروتکل OSPF
روش سیل آسا
AS شبکه
ناحیه یا Area
ستون فقرات OSPF
مسیریاب ABR
برای پیدا کردن بهترین مسیر در شبکه LS الگوریتم
کوتاهترین مسیر
تجزیه و تحلیل الگوریتم Shortest Path
انواع بسته های OSPF
بخش سوم
کلونی زنبور در طبیعت
مدل عامل زنبور عسل
بسته بندها
شناسایی کنندگان
خوراک جویان
حرکت دسته جمعی
معماری BeeHive
تالار بسته بندی
ورودی
سالن رقص
الگوریتم BeeHive
جداول مسیریابی در الگوریتم BeeHive
بخش چهارم
محیط شبیه سازی برای BeeHive
نتایج آزمایش
بارهای اشباع کننده (Saturating Loads)
اندازه بخشهای کاوش
اندازه جدول مسیریابی
نقاط خطرناک (Hot Spot)
از کارافتادن مسیریاب (Router Crash)
هزینه سربار BeeHive
بسیاری ازمسائل دنیای واقعی پویا هستند. برای حل یک مسئله بهینه سازی پویا نیاز به الگوریتمی داریم که علی رغم پیدا کردن بهینه در محیط بتواند بهینه های در حال تغییر را دنبال کند.تاکنون الگوریتم های تکاملی مختلفی برای بهینه سازی در محیط های پویا پیشنهاد شده است.دریک محیط پویا پس از روی دادن تغییر در محیط الگوریتم نیاز به تنوع کافی جهت جستجوی دوباره محیط دارد.درعین حال استفاده از اطلاعات جستجوهای پیشین رود جستجو راسریع تر میکند .مشکل اصلی الگوریتم های تکاملی معمول درحل مسائل بهینه سازی پویا همگرایی زود رس وکاهش تنوع جمعیتی در طول زمان است.بنابراین درمواجه با مسائل بهینه سازی پویا نیاز به رویکردهایی است که تنوع را در طول زمان حفظ کنند. دراین پروژه الگوریتم کلونی مورچه را بررسی کرده و در بسیاری مسائل کاربرد انرا بررسی میکند.
فهرست :
تقدیر وتشکر
چیکده
مقدمه
فصل اول:
تاریخچه
الگوریتم کلونی مورچه ها
هوشمندی تودهای
تفاوت هوشمندی توده ای وهوشمندی اجتماعی
بهینه سازی مسایل بوسیله کلونی مورچه
استفاده از بهینهسازی کولونی مورچهها در مسئله فروشنده دورهگرد
فصل دوم
مورچه ها چگونه کوتاه ترین مسیر را پیدا می کنند؟
انواع مختلف الگوریتم بهینه سازی مورچگان
مزیت های الگوریتم کلونی مورچه
کاربردهای الگوریتم کلونی مورچه
الگوریتم ACO
جنگ مورچه های اتشین
فصل سوم
الهام از طبیعت برای پیاده سازی نظامهای اجتماعی
ساختار نظام تحقیقات حرفه ای در پزشکی نوین
مزایای تحقق نظام تحقیقات حرفه ای در جامعه
فصل چهارم
مورچه ها متخصصان برجسته علم ژنتیک
بهینهسازی مسائل ریاضی به روش مورچهها(ACO)
فصل پنجم
بهینهسازی شبکههای کامپیوتری با الهام از کلونی مورچهها
کاربرد های الگوریتم کلونی مورچه ها در سگمنتیشن تصویر
تقطیع تصویر مبتنی بر MRF با استفاده از سیستم کلونی مورچه
سیستم Ant Colony برای تقسیم بندی و طبقه بندی Microcalcification در ماموگرام
استفاده از الگوریتم ACO در تقطیع تصویر برای استانه سازی مطلوب
5- کاربرد های الگوریتم حرکت دسته جمعی پرندگان در سگمنتیشن تصویر
1-5تقطیع تصاویر داده های سه بعدی با استفاده از الگوریتم بهینه سازی جمعی پرندگان
2-5ترکیب بهینه سازی حرکت جمعی پرندگان با الگوریتم های دسته بندی Unsupervised برای تقطیع تصویر
3-5بهینه سازی کلونی مورچه و الگوریتم بهینه سازی حرکت دسته جمعی پرندگان برای طبقه بندی Microcalcifications در ماموگرافی
فصل ششم
افق اینده
نتیجه گیری
الگوریتم ژنتیک (Genetic Algorithm – GA) تکنیک جستجویی در علم رایانه برای یافتن راه حل تقریبی برای بهینه سازی و مسائل جستجو است. الگوریتم ژنتیک نوع خاصی از الگوریت مهای تکامل است که از تکنیک های زیست شناسی فرگشتی مانند وراثت و جهش استفاده می کند. در واقع الگوریت مهای ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیش بینی یا تطبیق الگو استفاده میکنند. الگوریت مهای ژنتیک اغلب گزینه خوبی برای تکنیک های پیش بینی بر مبنای یک تکنیک برنامه نویسی است که از (GA تصادف هستند. مختصراً گفته می شود که الگوریتم ژنتیک ) یا تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده می کند. مسأله ای که باید حل شود ورودی است و راه حلها طبق یک الگو کد گذاری میشوند که تابع fitness نام دارد هر راه حل کاندید را ارزیابی می کند که اکثر آنها به صورت تصادفی انتخاب می شوند.
فهرست :
مقدمه
به دنبال تکامل…
ایده اصلی استفاده از الگوریتم ژنتیک
درباره علم ژنتیک
تاریخچۀ علم ژنتیک
تکامل طبیعی (قانون انتخاب طبیعی داروین)
رابطه تکامل طبیعی با روش های هوش مصنوعی
الگوریتم
الگوریتم های جستجوی ناآگاهانه
جستجوی لیست
جستجوی درختی
جستجوی گراف
الگوریتم های جستجوی آگاهانه
الف جستجوی خصمانه
مسائل NP Hard
هیوریستیک
انواع الگوریتم های هیوریستیک
فصل دوم
مقدمه
الگوریتم ژنتیک
مکانیزم الگوریتم ژنتیک
عملگرهای الگوریتم ژنتیک
کدگذاری
ارزیابی
ترکیب
جهش
رمزگشایی
چارت الگوریتم به همراه شبه کد آ ن
شبه کد و توضیح آن
چارت الگوریتم ژنتیک
تابع هدف
روش های کد کردن
کدینگ باینری
کدینگ جایگشتی
کد گذاری مقدار
کدینگ درخت
نمایش رشته ها
انواع روش های تشکیل رشته
باز گرداندن رشته ها به مجموعه متغیرها
تعداد بیت های متناظر با هر متغی ر
جمعیت
ایجاد جمعیت اولیه
اندازه جمعیت
محاسبه برازندگی (تابع ارزش)
انواع روش های انتخاب
انتخاب چرخ رولت
انتخاب حالت پایدار
انتخاب نخبه گرایی
انتخاب رقابتی
انتخاب قطع سر
انتخاب قطعی بریندل
انتخاب جایگزینی نسلی اصلاح شده
انتخاب مسابقه
انتخاب مسابقه تصادفی
انواع روش های ترکیب
جابه جایی دودوئی
جابه جایی حقیقی
ترکیب تک نقطه ا ی
ترکیب دو نقطه ای
ترکیب یکنواخت
ترکیب حسابی
ترتیب
چرخه
بخش نگاشته
احتمال ترکیب
تحلیل مکانیزم جابجایی
جهش
جهش باینری
جهش حقیقی
وارونه سازی بیت
تغییر ترتیب قرارگیر ی
وارون سازی
تغییر مقدار
محک اختتام اجرای الگوریتم ژنتیک
انواع الگوریتم های ژنتیکی
الگوریتم ژنتیکی سری
الگوریتم ژنتیکی موازی
مقایسه الگوریتم ژنتیک با سیستم های طبیعی
نقاط قوت الگوریتم های ژنتیک
استراتژی برخورد با محدودیت ها
استراتژی اصلاح عملگرهای ژنتیک
استراتژی اصلاحی
استراتژی جریمه ای
بهبود الگوریتم ژنتیک
چند نمونه از کاربردهای الگوریتم های ژنتیک
فصل سوم
مقدمه
حلّ معمای هشت وزیر
جمعیت آغازین
تابع برازندگی
آمیزش
جهش ژنتیکی
الگوریتم ژنتیک و حلّ مسألۀ فروشندة دوره گرد
به وسیله الگوریتم ژنتیک TS P حل مسأله
TS P مقایسه روشهای مختلف الگوریتم و ژنتیک برای
نتیجه گیر ی
حلّ مسأله معمای سودوکو
حل مسأله
تعیین کروموزم
ساختن جمعیت آغازین یا نسل اول
ساختن تابع از ارزش
ترکیب نمونه ها و ساختن جواب جدید
ارزشیابی مجموعه جواب
ساختن نسل بعد
مرتب سازی به کمک G A
صورت مسأله
جمعیت آغازین
تابع برازندگی
انتخاب
ترکیب
جهش
فهرست منابع و مراجع
پیوست
واژه نامه
نقاط بهینه محلی و بهینه کلی
چارت الگوریتم ژنتیک
ترکیب تک نقطه
ترکیب جایگشتی
جهش کدینگ جایگشتی
جهش کدینگ مقدار
کدینگ درختی
نمونه کروموزوم الگوریتم ژنتیکی
روش سری
روش محاطی
چرخه رولت
جابجایی چند نقطه
ترکیب تک نقطه ای
ترکیب دو نقطه ای
ترکیب یکنواخت
شبیه سازی جهش به کمک نمودار
جهش باینری
جهش:وارونه سازی بیت
جهش:تغییر ترتیب قرارگیری
جهش: وارون ساز ی
جهش: تغییر مقدار
نمودار بررسی رابطه های جمعیت، کیفیت جواب و معیار توقف بایکدیگر
چینش هشت مهره وزیر در صفحه شطرنج بدون تهدید یکدیگر
جدول سودوکو
برای برقراری ارتباط بین یک مبدائ و مقصد ،به مکانیزمی نیاز است تا اهداف اساسی هر پروتکل مسیریابی محقق گردد .این اهداف عبارتند از : 1 – بیشینه ساختن کارایی شبکه 2 – کمینه کردن هزینه شبکه با توجه به ظرفیت آن
سیکل مسیریابی به شرح زیر میباشد :
تولید مسیر : مسیرها را مطابق با اطلاعات جمع آوری و توزیع شده از وضعیت شبکه تولید میکند .
انتخاب مسیر : مسیرهای مناسب را بر اساس اطلاعات وضعیت شبکه انتخاب می کند.
ارسال داده به جلو : ترافیک کاربر را در امتداد مسیر انتخاب شده به جلو ارسال می کند.
نگهداری مسیر : که مسئول نگهداری مسیر انتخاب شده می باشد.
تعریف مسیر یابی : مکانیزمی است که به وسیله آن ترافیک کاربر به صورت مستقیم یا با واسطه از مبدا به مقصد هدایت شود و مسیریابها تجهیزاتی هستند که این عمل را انجام میدهند .
فهرست :
سیکل مسیریابی
تعریف مسیر یابی
پارامترهای مسیر یابی
الگوریتمهای مسیریابی
ویژگیهای یک الگوریتم مسیریابی
انواع الگوریتمهای مسیریابی
الگوریتم سیل آسا
الگوریتم بردار فاصله
الگوریتم مسیریابی حالت لینک
مسیریابی سلسله مراتبی
مسیریابی مختلط
شبکههای خودمختار
مسیریابی درونی و بیرونی
پروتکل مسیریابی درونی RIP
پروتکل مسیریابی درونی oSPF
(exterior) پروتکل بیرونی BGP
مسیریابی در شبکه های ویژه
الگوریتم ADOVبرای شبکه های MANET
کشف مسیر در الگوریتم AODV
نگهداری مسیر (Rout maintenance)