ّ َ ِبسم الل ِه الرحمن َ الرحیم برنامه ریزی زمانی با الگوریتم ژنتیک محمد آقائی مجتبی شهریاری 1385 اسفند - موسسه آموزش عالی سجاد مشهد 2

Download Report

Transcript ّ َ ِبسم الل ِه الرحمن َ الرحیم برنامه ریزی زمانی با الگوریتم ژنتیک محمد آقائی مجتبی شهریاری 1385 اسفند - موسسه آموزش عالی سجاد مشهد 2

‫ّ‬
‫َ‬
‫ِبسم الل ِه الرحمن‬
‫َ‬
‫الرحیم‬
‫برنامه ریزی زمانی با الگوریتم ژنتیک‬
‫محمد آقائی‬
‫مجتبی شهریاری‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪2‬‬
‫فهرست مطالب‬
‫• مقدمه ای بر ‪Time Tabling‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫دیدگاه های کلی حل‬
‫مراحل حل یک نمونه مسئله ‪ Timetabling‬توسط ‪GA‬‬
‫فرآیند اداری تهیه برنامه کالسی مدارس‬
‫شرایط یک جدول زمانی‬
‫پیاده سازی‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫اطالعات پایه‬
‫مدلسازی مسئله‬
‫تولید جمعیت اولیه‬
‫عملگرهای ‪GA‬‬
‫شرط پایان‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪3‬‬
‫مقدمه ای بر ‪Time Tabling‬‬
‫• تعریف‪ :‬زمانبندی یک مجموعه از جلسات برای چندین گروه از‬
‫دانشجویان در زمانهای خاص با استفاده از یکسری از منابع و مورد‬
‫توجه قرار دادن یک مجموعه محدودیت ها‪.‬‬
‫• اهمیت ‪Timetabling‬‬
‫• تقسیم بندی کلی‪ :‬برنامه هفتگی کالسها و برنامه امتحانات‬
‫• جزء مسائل مشکل بهینه سازی محدودیت ها‬
‫• راه حل کلی‪ :‬هنوز تکنیک خودکار کلی مورد قبولی وجود ندارد‪.‬‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪4‬‬
‫دیدگاه های کلی حل‬
‫• دیدگاه های تحقیق در عملیات‪ ،‬هوش مصنوعی و ‪...‬‬
‫• دستی‬
‫• رنگ آمیزی گراف (‪ : )Graph Coloring‬هر جلسه یک راس‬
‫گراف‪.‬‬
‫– جلسه‪ :‬سه تایی (درس ‪ +‬دبیر‪ +‬کالس)‬
‫• رئوس متصل‪ :‬دارای استاد یا کالس مشترک‬
‫• مسائل روند (‪)Flow Problems‬‬
‫• برنامه نویسی ریاضی ( ‪Mathematical‬‬
‫‪)Programming‬‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫• الگوریتم های ژنتیک (‪)5GAs‬‬
‫مراحل حل یک نمونه مسئله ‪ TimeTabling‬توسط ‪GA‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬
‫‪.8‬‬
‫‪.9‬‬
‫شرح دقیق مسئله‬
‫استخراج دقیق شرایط یک جدول زمانی (لیست محدودیت ها و اولویتها)‬
‫مرتب کردن شرایط بر حسب اهمیت (اختصاص وزن به هر یک)‬
‫‪ :Decode‬انتخاب و طراحی نحوه کد گذاری (مدلسازی‬
‫کروموزومها و ژنها)‬
‫طراحی مکانیزم صحیح ارزیابی شایستگی کروموزوم ها‬
‫(‪)Fitness Function‬‬
‫تولید جمعیت اولیه (تصمیم گیری‪ :‬شرایط اعمال شوند؟)‬
‫نحوه اعمال عملگرهای ‪GA‬‬
‫شرط یا شروط پایان‬
‫‪ :Encode‬نمایش نتایج به کاربر‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪6‬‬
‫زمانبندی کالسهای دوره راهنمایی و دبیرستان‬
‫درس‬
‫دبیر‬
‫منابع‬
‫کالس‬
‫ساعت‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪7‬‬
‫فرآیند اداری تهیه برنامه کالسی مدارس‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬
‫مشخص کردن تعداد کالسها در هر پایه‬
‫مشخص کردن تعداد ساعات مورد نیاز هر درس‬
‫دریافت اطالعات دبیران و موظفی آنها‬
‫دریافت و بررسی محدودیت ها و اولویت های مربوط به‬
‫هر دبیر‬
‫تهیه برنامه هفتگی بر اساس اطالعات موجود و منابع‬
‫استخراج برنامه هر دبیر از جدول زمانی اصلی‬
‫استخراج برنامه هر کالس از جدول زمانی اصلی‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪8‬‬
‫شرایط یک جدول زمانی‬
‫•محدودیت ها (‪)Constraints‬‬
‫– اعمال حداقل نیازها‬
‫– نتیجه‪ :‬جدول زمانی قابل اجرا (‪)Feasible Timetable‬‬
‫•اولویت ها‬
‫(‪)Priorities‬‬
‫– به سمت جدول زمانی بهینه‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪9‬‬
‫محدودیت ها در برنامه جاری‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫یک دبیر نمی تواند کمتر یا بیشتر از موظفی تدریس داشته‬
‫باشد‪.‬‬
‫تعداد ساعات یک درس نمی تواند بیشتر یا کمتر از مقدار‬
‫مشخص شده باشد‪.‬‬
‫(ساعت ‪ +‬کالس) یکتا باشد‪ .‬برنامه کالس تداخل نداشته‬
‫باشد‪.‬‬
‫(ساعت ‪ +‬دبیر) یکتا باشد‪ :‬برنامه دبیر تداخل نداشته باشد‪.‬‬
‫(کالس‪+‬درس) تعیین کننده دبیر باشند‪.‬‬
‫مدل‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪10‬‬
‫اولویت ها در برنامه جاری‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬
‫‪.8‬‬
‫‪.9‬‬
‫بیش از یک ساعت در روز ‪ :‬دو تک زنگ متوالی‬
‫هر درس حداکثر ‪ 2‬تک زنگ در روز‬
‫دروس سنگین در ساعات اولیه روز‬
‫دروس سنگین در روزهای اولیه هفته‬
‫دروس سبک در ساعات پایانی روز‬
‫دروس سبک در روزهای پایانی هفته‬
‫بیشترین فاصله بین ساعات یک درس در طول هفته‬
‫تعادل بین دروس حفظی‪ ،‬عملی و یاد گرفتنی‬
‫یک یا دو روز خالی برای هر دبیر‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪11‬‬
‫اولویت ها در برنامه جاری ‪...‬‬
‫‪ .10‬اولویت با ساعات انتخابی دبیر‬
‫‪ .11‬برای یک کالس دروس ادبیات‪ ،‬امالء و انشاء توسط یک‬
‫دبیر تدریس شود‪.‬‬
‫‪ .12‬پراکندگی ساعات دبیران برابر (عدالت)‬
‫‪ .13‬حداقل تعداد حفره ها در برنامه دبیر و کالس‬
‫‪....‬‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪12‬‬
‫پیاده سازی > اطالعات پایه‬
‫ساختار پایگاه داده پروژه‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪13‬‬
‫پیاده سازی > مدلسازی مسئله‬
‫• کروموزوم‪ :‬یک برنامه هفتگی کلی (یک راه حل زمانبندی)‬
‫• ژن‪ :‬برنامه یک کالس (تصمیم گیری‪ :‬مدلهای بهتر؟)‬
‫• مدلهای کاندید‬
‫‪ ‬گراف‬
‫‪ ‬آرایه ‪ 3‬بعدی‬
‫‪ ‬آرایه دو بعدی‬
‫‪ ‬کالس – درس‬
‫‪ ‬دبیر – درس‬
‫‪ ‬دبیر – کالس‬
‫‪ ‬دبیر – ساعت‬
‫‪ ‬درس – ساعت‬
‫‪ ‬کالس ‪ -‬ساعت‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪14‬‬
‫پیاده سازی > مدلسازی مسئله ‪...‬‬
‫• ویژگی های مورد نظر برای مدل مناسب‬
‫‪ ‬حداکثر تعداد محدودیت ها و اولویت ها بصورت ذاتی اعمال شده‬
‫باشند‪.‬‬
‫‪ ‬چک کردن محدودیت ها و اولویت های باقی مانده ساده تر باشد‪.‬‬
‫‪ ‬حداقل مصرف حافظه ‪.‬‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪15‬‬
‫پیاده سازی > مدلسازی مسئله‪...‬‬
‫کروموزوم (مدل انتخاب شده)‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪16‬‬
‫محدودیت ها‬
‫پیاده سازی > مدلسازی مسئله‪...‬‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪17‬‬
‫والدین‬
‫‪...‬‬
‫پیاده سازی > تولید جمعیت اولیه‬
‫• آرایه حاوی جمعیت اولیه و فرزندان‬
‫‪...‬‬
‫فرزندان‬
‫;] ‪orginalTable=new string[2*pop][ ,‬‬
‫جمعیت اولیه‪pop :‬‬
‫آرایه ای از کروموزوم ها‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪18‬‬
‫پیاده سازی > تولید جمعیت اولیه…‬
‫انتخاب تصادفی کالس‬
‫• انتخاب کالس‪ ،‬ساعت‪ ،‬درس و دبیر‬
‫بصورت تصادفی یکنواخت‬
‫• ‪ Fitness‬از نظر محدودیت چهارم‬
‫و پنجم برای تمام کروموزومها‬
‫محاسبه می شود‪.‬‬
‫• مرتب سازی نزولی به روش‬
‫‪ heap‬برای بهینه سازی انتخاب به‬
‫شیوه چرخ رولت‪.‬‬
‫انتخاب تصادفی ساعت‬
‫انتخاب تصادفی درس‬
‫انتخاب تصادفی دبیر‬
‫درج در کروموزوم‬
‫(‪)orginalTable‬‬
‫بلی‬
‫جمعیت کامل شد؟‬
‫محاسبه‬
‫‪Fitness‬‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪19‬‬
‫مرتب سازی‬
‫جمعیت‬
‫خیر‬
‫پیاده سازی > تولید نسل های بعدی‬
‫• انتخاب کروموزوم (ها)ي والد و‬
‫انتخاب عملگر با استفاده از چرخ‬
‫رولت صورت می گیرد‪.‬‬
‫• روشهای ‪ Crossover‬و ‪mutation‬‬
‫انتخاب عملگر‬
‫‪mutation‬‬
‫عملگر؟‬
‫‪GA‬‬
‫‪crossover‬‬
‫انتخاب یک کروموزوم دیگر‬
‫‪ -1‬تک ردیف‬
‫‪ -2‬بازه ای‬
‫‪ -3‬ماسک‬
‫اعمال عملگر‬
‫افزودن به لیست فرزندان‬
‫• چرخ رولت‬
‫محاسبه ‪ fitness‬فرزندان‬
‫‪fitness‬‬
‫‪p‬‬
‫‪sum OfFitness‬‬
‫‪1385‬اسفند‬
‫انتخاب یک کروموزوم‬
‫مرتب سازی جمعیت میانی‬
‫موسسه آموزش عالی سجاد مشهد‬‫انتخاب نسل جدید از جمعیت میانی‬
‫‪20‬‬
‫پیاده سازی > ‪mutation‬‬
‫والد‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫کپی والد به لیست فرزندان‬
‫(بعنوان ‪)mating pool‬‬
‫انتخاب تصادفی یک یا چند‬
‫ژن (بر اساس نوع جهش)‬
‫از والد‬
‫خالی کردن ژن و‬
‫آزادسازی منابع‬
‫تخصیص خصوصیات در‬
‫ژن (ها)ي مذکور‪.‬‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪21‬‬
‫فرزند‬
‫پیاده سازی > ‪crossover‬‬
‫والدین‬
‫‪ .1‬کپی والدین به لیست‬
‫فرزندان (بعنوان ‪mating‬‬
‫‪)pool‬‬
‫‪ .2‬انتخاب تصادفی یک یا چند‬
‫ژن (بر اساس نوع تبادل)‬
‫از والدین‬
‫‪ .3‬تعویض ژن (های) مذکور‬
‫با همتای خود در‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪.‬‬
‫دیگر‬
‫کروموزوم‬
‫‪22‬‬
‫فرزندان‬
‫پیاده سازی > محاسبه ‪fitness‬‬
‫• محاسبه‬
‫•‬
‫• موظفی دبیران (محدودیت اول)‬
‫‪ fitness‬فرزندان • عدم تداخل برنامه دبیر (محدودیت چهارم)‬
‫• (درس ‪ +‬دبیر) تعیین کننده کالس (محدودیت پنجم)‬
‫• تعداد تکرار (تعداد گذر‬
‫شرط پایان نسل)‬
‫• رسیدن به شایستگی مورد‬
‫نظر‬
‫جدیددرجه‬
‫نسلشعاع‬
‫همگرایی (با‬
‫•‬
‫تولید‬
‫اینجا یک‬
‫توجه‪ :‬تا‬
‫انحراف)‬
‫شد‪ .‬اگر شرط پایان محقق‬
‫•‬
‫نشود‪ ،‬برنامه با تولید نسل بعدی ادامه خواهد یافت‪.‬‬
‫• ‪ Decode‬جواب‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪23‬‬
‫تولید نسل جدید‬
‫منابع و مراجع‬
‫ قسمت فرهنگ‬،1379 ،‫ انتشارات فاطمی‬،‫ اصول و مسائل‬/‫ ژنتیک‬،‫ حمیده‬،‫ علمی غروی‬،‫ محمد‬،‫ صبوری‬،‫ ویلیام‬،‫استانفیلد‬
‫اصطالحات‬
،‫ گروه ریاضی و کامپیوتر‬- ‫ دانشکدة فنی مهندسی‬- ‫ دانشگاه ایالم‬، )‫ معرفی الگوریتم های ژنتیکی (سخنرانی‬،‫ احمد‬،‫مالبهرامی‬
1384‫پاییز‬
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
.1
.2
Zhang, Mengjie, Overview of Genetic Algorithms, Victoria University Of Wellington-School of
Mathematics-Statistics and Computer Science, 2002
Burke, Edmund, Elliman, David, Weare, Rupert, A Genetic Algorithm Based University
Timetabling System, Department of Computer Science-University of Nottingham, 2002
Kuswadi, Son, Basuki, Achmad, NUH, Mohammad, Saito, Osami, A Genetic Algorithm For
Polytechnic Time Tabling (EEPIS Timetabling Case Study), Rudi Lumanto, 2001
P. Boizumault, C. Guéret, N. Jussien, Efficient Labelling and Constraint Relaxation for Solving
Time Tabling Problems, International Logic Programming Symposium - Workshop on Constraint
Languages and their use in Problem Modelling, 1994, p1-4
KARABOĞA, Derviş, BAĞIŞ, Aytekin, Timetabling by Genetic Algorithm, Electronic Engineering
Department- Engineering Faculty- Erciyes University, 2003
Özcan, Ender, Towards an XML based standard for Timetabling Problems: TTML, Yeditepe
Üniversitesi, 2004
Konar, Amit, Artificial Intelligence and Soft Computing: Behavioral and Cognitive Modeling of the
Human Brain, Department of Electronics and Tele-communication Engineering Jadavpur
University- Calcutta- India, 1999, Ch15-Genetic Algorithms: p467-493
Wilson, Robert, Keil, Frank, The MIT encyclopedia of the cognitive sciences, MIT Press, 1999,
p293-295 (Evolutionary Computation)
Russell, Stuart, Norvig, Peter, Artificial Intelligence A Modern Approach, Prentice Hall, 1995,
p619 (Section 20.8 - Genetic Algorithms and Evolutionary Programming)
Wall, Matthew, GAlib: A C++ Library of Genetic Algorithm Components, Mechanical Engineering
Department - Massachusetts Institute of Technology, August 1996, p3
‫موسسه آموزش عالی سجاد مشهد‬- ‫اسفند‬1385
24
‫سوال‬
‫‪1385‬اسفند ‪-‬موسسه آموزش عالی سجاد مشهد‬
‫‪25‬‬