sudoku solving by genetic algorithm

25
ه ت س ل، د ح د ی ل و ت دی و ن بSudoku ا ب ک ی ت ن م ژ ت ی وژ گ ل ا

Upload: orchin

Post on 20-Jun-2015

1.776 views

Category:

Entertainment & Humor


5 download

TRANSCRIPT

Page 1: Sudoku Solving by Genetic Algorithm

بندی و تولید حل، دستهSudokuبا الگوریتم ژنتیک

بندی و تولید حل، دستهSudokuبا الگوریتم ژنتیک

Page 2: Sudoku Solving by Genetic Algorithm

فهرست مطالب

فی Sudokuمعّر�

کارهای انجام شده 2

اهداف 3

کار پیشنهادیراه4

با الگوریتم Sudokuبندی و تولیدحل، دستهژنتیک

1

آوردهادست5

6

گیّرینتیجه 6

2 / 25

مّراجع 7

Page 3: Sudoku Solving by Genetic Algorithm

Sudokuچیست؟

بازی ژاپنی

ل از 9×9جدولی� جدول9 متشک3×3 کوچک

وجود تعدادی عدد در آغاز درمتقارن( جدول )متقارن یا نا

با الگوریتم Sudokuبندی و تولید حل، دستهژنتیک

با الگوریتم Sudokuبندی و تولیدحل، دستهژنتیک

3/ 25

Page 4: Sudoku Solving by Genetic Algorithm

کارهای انجام شده

با الگوریتم Sudokuبندی و تولیدحل، دسته25 /5 ژنتیک

�تمطالعات گستّرده به صورت مسئلۀG ارضاء محدودی

Lموراگلیو و همکاران: بّرش ضّرب هندسی؛ تنها بّرای حلSudokuهای آسان

: الگوریتم ژنتیک با استفاده از GAuGEنیکوالوو و رایان: تکامل نحوی

؛ ناکارآمدSudokuبّرای ساخت GAگولد: استفاده از

: گفته شده با الگوریتم ژنتیکSudoku Makerافزار نّرم

Page 5: Sudoku Solving by Genetic Algorithm

اهداف

Sudoku. کارایی الگوریتم ژنتیک بّرای حل� 1

Sudoku. همخوانی بازده الگوریتم ژنتیک با میزان سختی 2

Sudokuبندی . ساخت و دسته3

در مسائل GAمهمتّرین هدف: ارزیابی توانایی �ت تّرکیبیاتی محدودی

با الگوریتم Sudokuبندی و تولیدحل، دسته25 /4 ژنتیک

Page 6: Sudoku Solving by Genetic Algorithm

کار پیشنهادیراه

برش یکنواخت

(uniform)

chromosome ای از آرایه

اعداد صحیح 81به طول

جهش جایگزین

ی (swap)

Pm=0.6 اندازهجمعیHت:

21

پارامتّرهای الگوریتم

با الگوریتم Sudokuبندی و تولیدحل، دسته25 / 6ژنتیک

کدگذاری عدد

صحیح همراه با

کشنخبهی

Page 7: Sudoku Solving by Genetic Algorithm

کار پیشنهادی )ادامه(راه

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ژنتیک

Page 8: Sudoku Solving by Genetic Algorithm

کار پیشنهادی )ادامه(راه

در هّر ستون9 تا 1وجود اعداد

همۀG اعداد معلوم ابتدایی در جای اصلی خود باشد

3×3 در هّر جدول کوچک 9 تا 1وجود اعداد

lچهار شّرطحل

در هّر سطّر9 تا 1وجود اعداد

ساخت Sudoku

تازه

سازی خودکار بّرآوردهسازی : بهینه4 و 3شّروط

2 و1روی دو شّرط

با الگوریتم Sudokuبندی و تولیدحل، دسته25 / 8ژنتیک

Page 9: Sudoku Solving by Genetic Algorithm

استفاده از آرایۀG کمکی بّرای تعیین ثابت بودن یا نبودن اعداد

9 / 25

کار پیشنهادی )ادامه(راه

با الگوریتم Sudokuبندی و تولیدحل، دستهژنتیک

Page 10: Sudoku Solving by Genetic Algorithm

کار پیشنهادی )ادامه(راه

عملگّر جهش

10 / با الگوریتم Sudokuبندی و تولیدحل، دسته25

ژنتیک

جهش جایگزینی

-3جهش جایگزینی

جهش درجی

ای از جهش جایگزینیدنباله

Page 11: Sudoku Solving by Genetic Algorithm

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بندی و تولیدحل، دستهژنتیک

Page 12: Sudoku Solving by Genetic Algorithm

کار پیشنهادی )ادامه(راه

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

ژنتیک

Page 13: Sudoku Solving by Genetic Algorithm

کار پیشنهادی )ادامه(راه

مسائل تّرکیبیاتی: گیّر افتادندر نقاط غیّر بهینه

آغاز دوباره بهتّر از ادامه

نسل 2000آغاز دوباره بعد از

( یاrestartآغاز دوباره)(cataclysmic جهش ویّرانگّر)

13 / با الگوریتم Sudokuبندی و تولیدحل، دسته25

ژنتیک

Page 14: Sudoku Solving by Genetic Algorithm

کار پیشنهادی )ادامه(راه

تابع ارزیابی

�ت های گوناگونجّریمههای گوناگون بّرای نقض محدودی

طر و س

هر عداد

ع امو

جم

نستو

هر

طر س

هر عداد

ب اضر

نستو

و

طر س

هر

xi

و ن

ستوxj

45 !9 A

A = {1, 2, 3, 4, 5, 6, 7, 8, 9{

تنها استفاده Yاز نظریۀ

همجموعها

14 / با الگوریتم Sudokuبندی و تولیدحل، دسته25

ژنتیک

Page 15: Sudoku Solving by Genetic Algorithm

کار پیشنهادی )ادامه(راه

A = {1, 2, 3, 4, 5, 6, 7, 8, 9{gi3(x) = |A - xi|gj3 (x) = |A – xj|

مقدار بهینه: صفّر G1نبود هّر عدد در سطّر یا ستون: جّریمۀ

سازیمسئلۀG کمینهفّرایند پیّرشدن: -ایجاد تنو�ع بیشتّر

تّر -مفید و حل� سّریع

15 / با الگوریتم Sudokuبندی و تولیدحل، دسته25

ژنتیک

Page 16: Sudoku Solving by Genetic Algorithm

آوردهادست

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

ژنتیک

Page 17: Sudoku Solving by Genetic Algorithm

آوردها )ادامه(دست

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

ژنتیک

Page 18: Sudoku Solving by Genetic Algorithm

آوردها )ادامه( - حلدست

Gهمخوانی نسبی درجۀسختی با سخت بودن

GAحل بّرای

18 / با الگوریتم Sudokuبندی و تولیدحل، دسته25

ژنتیک

Page 19: Sudoku Solving by Genetic Algorithm

بندیدسته –آوردها )ادامه( دست

:GAبندی رتبهEasyOpen

1 star2 stars3 stars4 stars

Challenging5 stars

DifficultSuper Difficult

19 / با الگوریتم Sudokuبندی و تولیدحل، دسته25

ژنتیک

Page 20: Sudoku Solving by Genetic Algorithm

آوردها )ادامه( - ساختدست

N0 بار 1 2 3 4 9-5 10

تعداد 5293 157 33 7 1 0 100

تعداد دفعاتی که همان پاسخ را پیدا کّرده

مّردود پذیّرفته

آزمایش نیمی از افزارها با نّرمپاسخ

SudokuExplainer

تصدیق یکتایی حل

20 / با الگوریتم Sudokuبندی و تولیدحل، دسته25

ژنتیک

Page 21: Sudoku Solving by Genetic Algorithm

آوردها )ادامه(دستی Sudokuسختی

تولیدی

تولیدیSudoku بار حل� 100 تولیدیSudoku بار حل� 100

آسانمتوسHطسخت

تعداد نسل> 3500

میانگین نسل: 839

<تعداد 100003500نسل<

9100میانگین نسل:

تعداد نسل< 3500

میانگین نسل: 52211 21 /

با الگوریتم Sudokuبندی و تولیدحل، دسته25ژنتیک

Page 22: Sudoku Solving by Genetic Algorithm

22 / 25

آوردها )ادامه(دست

با الگوریتم Sudokuبندی و تولیدحل، دستهژنتیک

Page 23: Sudoku Solving by Genetic Algorithm

گیرینتیجه

توانایی الگوریتم ژنتیک تّرکیبیاتی بّرای GمطالعۀSudokuبندی و ساخت حل، دسته

کارآمد؛ ام�ا الگوریتم w تّری وجود های کاراحل� نسبتادارد.

های تکاملی دیگّرنتایج قابل مقایسه با الگوریتم استفاده از الگوریتم ژنتیک ساده بدون استفاده از

Sudokuقوانین ویژۀG حل� سختی Gمثبت بّرای همخوانی درجۀ w پاسخ نسبتا تولیدSudokuبا اطمینان باالیی از یکتایی حل

23 / با الگوریتم Sudokuبندی و تولیدحل، دسته25

ژنتیک

Page 24: Sudoku Solving by Genetic Algorithm

مراجع

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

ژنتیک

Page 25: Sudoku Solving by Genetic Algorithm