sudoku solving by genetic algorithm
TRANSCRIPT
بندی و تولید حل، دستهSudokuبا الگوریتم ژنتیک
بندی و تولید حل، دستهSudokuبا الگوریتم ژنتیک
فهرست مطالب
فی Sudokuمعّر�
کارهای انجام شده 2
اهداف 3
کار پیشنهادیراه4
با الگوریتم Sudokuبندی و تولیدحل، دستهژنتیک
1
آوردهادست5
6
گیّرینتیجه 6
2 / 25
مّراجع 7
Sudokuچیست؟
بازی ژاپنی
ل از 9×9جدولی� جدول9 متشک3×3 کوچک
وجود تعدادی عدد در آغاز درمتقارن( جدول )متقارن یا نا
با الگوریتم Sudokuبندی و تولید حل، دستهژنتیک
با الگوریتم Sudokuبندی و تولیدحل، دستهژنتیک
3/ 25
کارهای انجام شده
با الگوریتم Sudokuبندی و تولیدحل، دسته25 /5 ژنتیک
�تمطالعات گستّرده به صورت مسئلۀG ارضاء محدودی
Lموراگلیو و همکاران: بّرش ضّرب هندسی؛ تنها بّرای حلSudokuهای آسان
: الگوریتم ژنتیک با استفاده از GAuGEنیکوالوو و رایان: تکامل نحوی
؛ ناکارآمدSudokuبّرای ساخت GAگولد: استفاده از
: گفته شده با الگوریتم ژنتیکSudoku Makerافزار نّرم
اهداف
Sudoku. کارایی الگوریتم ژنتیک بّرای حل� 1
Sudoku. همخوانی بازده الگوریتم ژنتیک با میزان سختی 2
Sudokuبندی . ساخت و دسته3
در مسائل GAمهمتّرین هدف: ارزیابی توانایی �ت تّرکیبیاتی محدودی
با الگوریتم Sudokuبندی و تولیدحل، دسته25 /4 ژنتیک
کار پیشنهادیراه
برش یکنواخت
(uniform)
chromosome ای از آرایه
اعداد صحیح 81به طول
جهش جایگزین
ی (swap)
Pm=0.6 اندازهجمعیHت:
21
پارامتّرهای الگوریتم
با الگوریتم Sudokuبندی و تولیدحل، دسته25 / 6ژنتیک
کدگذاری عدد
صحیح همراه با
کشنخبهی
کار پیشنهادی )ادامه(راه
1سهم نخبگان: تعیین والدین:
for(i=POP-1; i>=ELIT; i--) {
ii=ord[i] ; p1 = ord[i*Math.random()] ; p2 = ord[i*Math.random()] ;
crossover(indiv[ii], indiv[p1], indiv[p2]) ; mutation(indiv[ii]);
{شّرط پایان: پیدا کّردن حل
با الگوریتم Sudokuبندی و تولیدحل، دسته25 / 7ژنتیک
کار پیشنهادی )ادامه(راه
در هّر ستون9 تا 1وجود اعداد
همۀG اعداد معلوم ابتدایی در جای اصلی خود باشد
3×3 در هّر جدول کوچک 9 تا 1وجود اعداد
lچهار شّرطحل
در هّر سطّر9 تا 1وجود اعداد
ساخت Sudoku
تازه
سازی خودکار بّرآوردهسازی : بهینه4 و 3شّروط
2 و1روی دو شّرط
با الگوریتم Sudokuبندی و تولیدحل، دسته25 / 8ژنتیک
استفاده از آرایۀG کمکی بّرای تعیین ثابت بودن یا نبودن اعداد
9 / 25
کار پیشنهادی )ادامه(راه
با الگوریتم Sudokuبندی و تولیدحل، دستهژنتیک
کار پیشنهادی )ادامه(راه
عملگّر جهش
10 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک
جهش جایگزینی
-3جهش جایگزینی
جهش درجی
ای از جهش جایگزینیدنباله
1 9 2 3 6 4 8 6 7
1 9 6 3 6 4 8 2 7
جهش قانونی
جهش غیّرقانونی
1 9 2 3 6 4 8 6 7
1 4 6 3 6 9 8 2 7
پوشی از جهشتغییّر غیّرقانونی: چشم
تغییّر غیّرقانونی: قطع دنباله ««« درصد واقعی جهش 0/6خیلی کمتّر از 11 /
25
کار پیشنهادی )ادامه(راه
با الگوریتم Sudokuبندی و تولیدحل، دستهژنتیک
کار پیشنهادی )ادامه(راه
8 9 2 7 4 3 5 1 6
5 6 4 8 9 1 2 7 3
7 3 1 6 2 5 8 9 4
6 5 8 9 7 4 3 2 1
1 4 3 2 5 8 9 6 7
9 2 7 3 1 6 4 5 8
3 1 9 4 6 2 7 8 5
4 7 5 1 8 9 6 3 2
2 8 6 5 3 7 1 4 9
بّردار 4 یا 3تأثیّر هّر جهش در سطّر و ستون
8 9 2 7 4 3 5 1 6
5 6 4 8 9 1 2 7 3
7 3 1 6 2 5 8 9 4
6 5 8 9 7 4 3 2 1
1 4 3 2 5 8 9 6 7
9 2 7 3 1 6 4 5 8
3 1 9 4 6 2 7 8 5
4 7 5 1 8 9 6 3 2
2 8 6 5 3 7 1 4 9
8 9 2 7 4 3 5 1 6
5 6 4 8 9 1 2 7 3
7 3 1 6 2 5 8 9 4
6 5 8 9 7 4 3 2 1
1 4 3 2 5 8 9 6 7
9 2 7 3 1 6 4 5 8
3 1 9 4 6 2 7 8 5
4 7 5 1 8 9 6 3 2
2 8 6 5 3 7 1 4 9
8 9 2 7 4 3 5 1 6
5 6 4 8 9 1 2 7 3
7 3 1 6 2 5 8 9 4
6 5 8 9 7 4 3 2 1
1 4 3 2 5 8 9 6 7
9 2 7 3 1 6 4 5 8
3 1 9 4 6 2 7 8 5
4 7 5 1 8 9 6 3 2
2 8 6 5 3 7 1 4 9
8 9 2 7 4 3 5 1 6
5 6 4 8 9 1 2 7 3
7 3 1 6 2 5 8 9 4
6 5 8 9 7 4 3 2 1
1 4 3 2 5 8 9 6 7
9 2 7 3 1 6 4 5 8
3 1 9 4 6 2 7 8 5
4 7 5 1 8 9 6 3 2
2 8 6 5 3 7 1 4 9
w دو حالت بهینه: پس از جهش دقیقابار تکّرار
کمی آزادی دادن به سامانه: تکّرار بار یا کمتّر3
بار کندتّر5بدون آزادی:
صّرف زمانی بّرای انجام محاسبه ام�ا در بار کندتّر10 مقدار آزادی: 20/6مجموع بهبود زمان و کم شدن از
12 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک
کار پیشنهادی )ادامه(راه
مسائل تّرکیبیاتی: گیّر افتادندر نقاط غیّر بهینه
آغاز دوباره بهتّر از ادامه
نسل 2000آغاز دوباره بعد از
( یاrestartآغاز دوباره)(cataclysmic جهش ویّرانگّر)
13 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک
کار پیشنهادی )ادامه(راه
تابع ارزیابی
�ت های گوناگونجّریمههای گوناگون بّرای نقض محدودی
طر و س
هر عداد
ع امو
جم
نستو
هر
طر س
هر عداد
ب اضر
نستو
و
طر س
هر
xi
و ن
ستوxj
45 !9 A
A = {1, 2, 3, 4, 5, 6, 7, 8, 9{
تنها استفاده Yاز نظریۀ
همجموعها
14 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک
کار پیشنهادی )ادامه(راه
A = {1, 2, 3, 4, 5, 6, 7, 8, 9{gi3(x) = |A - xi|gj3 (x) = |A – xj|
مقدار بهینه: صفّر G1نبود هّر عدد در سطّر یا ستون: جّریمۀ
سازیمسئلۀG کمینهفّرایند پیّرشدن: -ایجاد تنو�ع بیشتّر
تّر -مفید و حل� سّریع
15 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک
آوردهادست
4با Gدرجۀسختی:
,EasyChallen , gingDifficult Super ,Difficult
4با Gدرجۀسختی:
Easy, Challenging ,
Difficult, Super Difficult
5با Gدرجۀ:سختی
1 star,2 star,3 star,4 star,5 star.
5با Gدرجۀ:سختی
1 star,2 star,3 star,4 star,5 star.
1روزنامه 1روزنامه 2روزنامه 2روزنامه
های آزمایشنمونه
16 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک
آوردها )ادامه(دست
Yدرجۀسختی
1star
2stars
3stars
4stars
5stars Easy Challenging Difficu
ltSuper
Difficult
روش پیشین
100 69 46 26 23 100 30 4 6
روش تازه 100 100 100 100 100 100 100 100 100
روش تازه با 100000 آزمایش
100 100 96 63 47 100 60 10 6
ارزیابی4265900با Super Difficultتّرین زمان اجّرا: طوالنی
17 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک
آوردها )ادامه( - حلدست
Gهمخوانی نسبی درجۀسختی با سخت بودن
GAحل بّرای
18 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک
بندیدسته –آوردها )ادامه( دست
:GAبندی رتبهEasyOpen
1 star2 stars3 stars4 stars
Challenging5 stars
DifficultSuper Difficult
19 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک
آوردها )ادامه( - ساختدست
N0 بار 1 2 3 4 9-5 10
تعداد 5293 157 33 7 1 0 100
تعداد دفعاتی که همان پاسخ را پیدا کّرده
مّردود پذیّرفته
آزمایش نیمی از افزارها با نّرمپاسخ
SudokuExplainer
تصدیق یکتایی حل
20 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک
آوردها )ادامه(دستی Sudokuسختی
تولیدی
تولیدیSudoku بار حل� 100 تولیدیSudoku بار حل� 100
آسانمتوسHطسخت
تعداد نسل> 3500
میانگین نسل: 839
<تعداد 100003500نسل<
9100میانگین نسل:
تعداد نسل< 3500
میانگین نسل: 52211 21 /
با الگوریتم Sudokuبندی و تولیدحل، دسته25ژنتیک
22 / 25
آوردها )ادامه(دست
با الگوریتم Sudokuبندی و تولیدحل، دستهژنتیک
گیرینتیجه
توانایی الگوریتم ژنتیک تّرکیبیاتی بّرای GمطالعۀSudokuبندی و ساخت حل، دسته
کارآمد؛ ام�ا الگوریتم w تّری وجود های کاراحل� نسبتادارد.
های تکاملی دیگّرنتایج قابل مقایسه با الگوریتم استفاده از الگوریتم ژنتیک ساده بدون استفاده از
Sudokuقوانین ویژۀG حل� سختی Gمثبت بّرای همخوانی درجۀ w پاسخ نسبتا تولیدSudokuبا اطمینان باالیی از یکتایی حل
23 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک
مراجع
1. T. Mantere, J. Koljonen, “Solving, Rating and Generating Sudoku Puzzles with GA,” in 2007 IEEE Congress on Evolutionary computation – CEC2007, Singapore, 2007
2. T. Mantere, J. Koljonen, “Solving and rating Sudoku puzzles with genetic algorithms,” in Finnish Artificial Intelligence Conference )STeP 2006(, October 26-27, FAIS, Espoo, Finland, 2006
3. T. Mantere, J. Koljonen, “Solving and Analyzing Sudokus with Cultural Algorithms” in 2008 IEEE
24 / با الگوریتم Sudokuبندی و تولیدحل، دسته25
ژنتیک