SudokuProblem.pdf

‫نيمسال دوم ‪94-91‬‬
‫هوش مصنوعی ‪74-714‬‬
‫مذرس‪ :‬سليمانی‬
‫تمرين پيادهسازی اختياری (معمای ‪)Sudoko‬‬
‫موعذ تحويل‪ 8 :‬تير ‪91‬‬
‫کذ زوشيي سا زا ساػر ‪ 42‬سٍص ‪ 8‬زيش تِ ّوشاُ گضاسش آى تِ فشهر ‪ pdf‬تِ آدسس ‪ [email protected]‬اسسال ًواييذ‪ .‬موعذ‬
‫تحويل اين تمرين به هيچ وجه حتی يک روز تمذيذ نخواهذ شذ‪.‬‬
‫قاتل رکش اسر کِ تخص قاتل زَجْی اص ًوشُ ايي زوشيي تا زَجِ تِ گضاسش ضوا ٍ زحليل ًسايج زؼييي هیضَد‪.‬‬
‫ًکاذ کلی‬
‫‪‬‬
‫دس هَسد زوشيي هیزَاًيذ تا ّن تحث کٌيذ ٍلی دس ًْاير کذ ٍ گضاسش تايذ کاس خَد ضوا تاضذ (ًِ کدی کذ يا گضاسش‬
‫ديگشاى)‪ .‬دس غَسذ سخذاد ايي هَسد تا آى تِ ضذذ تشخَسد خَاّذ ضذ‪.‬‬
‫‪‬‬
‫اسسفادُ اص يک هطلة يا کذ هَجَد تذٍى اسجاع تِ آى زقلة هحسَب هیضَد ٍ گضاسش ٍ هسي ضوا تِ هٌظَس زطخيع‬
‫ايي هَاسد تشسسی خَاّذ ضذ‪.‬‬
‫معمای ‪ Sudoku‬در حالت کلی‪:‬‬
‫يک جذٍل‬
‫کِ اص زؼذادی هشتغ‬
‫زکشاس ضذُ اسر‪ّ .‬وچٌيي اػذاد زا‬
‫زطکيل ضذُ اسر کِ داخل ّش يک اص ايي هشتغّا ّشيک اص اػذاد‬
‫دس ّش سطش يا سسَى هشتغ اغلی دقيقاً يکتاس ظاّش هیضًَذ‪.‬‬
‫ّذف دس ايي زوشيي اسائِ تشًاهِای اسر کِ تسَاًذ زا حذ هوکي جذاٍل ‪ Sudoku‬سا سشيغ حل کٌذ‪.‬‬
‫زا‬
‫يکتاس‬
‫روشهای حل‪:‬‬
‫دس حالر خايِ (يؼٌی صهاًی کِ اص ّيچ هکاضفِای اسسفادُ ًکٌيذ)‪ ،‬زشزية هسغيشّا تشاتش تا زشزية خيوايص سطشی ٍ اص چح تِ ساسر‬
‫دس ًظش گشفسِ هیضَد‪ّ .‬وچٌيي زشزية هقاديش ّن زشزية غؼَدی اػذاد اسر‪.‬‬
‫سٍشّايی کِ تشای حل ايي هسالِ تايذ تا ّن هقايسِ کٌيذ‪:‬‬
‫‪ )1‬الگَسيسن ‪ Backtrack‬تِ ّوشاُ ‪)BT-FC( Forward checking‬‬
‫‪ )4‬الگَسيسن ‪ Backtrack‬تِ ّوشاُ ‪)BT-FC-MRV( MRV ٍ Forward checking‬‬
‫‪ )3‬الگَسيسن ‪ Backtrack‬تِ ّوشاُ ‪)BT-MAC-MRV( MRV ٍ MAC‬‬
‫‪ )2‬خيص خشداصش تا ‪ ٍ AC-3‬سدس الگَسيسن ‪ Backtrack‬تِ ّوشاُ ‪)AC3+BT-FC-MRV( MRV ٍ FC‬‬
‫‪ )5‬جسسجَی هحلی‬
‫‪Min-Conflicts‬‬
‫‪ )6‬دس ًْاير ضوا هیزَاًيذ اص هکاضفِّای خاظ هسالِ ‪( Sudoku‬يا ّش ًَع هکاضفِ ديگش) ًيض تشای حل ايي هسالِ اسسفادُ‬
‫کٌيذ ٍ سٍضی کاسازش تشای ايي هٌظَس اسائِ کٌيذ‪ .‬تشای خيذا کشدى هکاضفِّای هٌاسة خاظ ايي هسالِ هیزَاًيذ هقاالذ‬
‫هشتَط تِ حل جذاٍل ‪ Sudoku‬سا هطالؼِ کٌيذ‪ .‬هشاجؼِ تِ خيًَذّای صيش ًيض هیزَاًذ سَدهٌذ تاضذ‪:‬‬
‫‪http://en.wikipedia.org/wiki/Sudoku‬‬
‫‪http://en.wikipedia.org/wiki/Algorithmics_of_Sudoku‬‬
‫‪http://www.sudoku.com/howtosolve.htm‬‬
‫‪http://www.chessandpoker.com/sudoku-strategy-guide.html‬‬
‫‪http://www.sudokuweb.com/‬‬
‫‪http://4c.ucc.ie/~hsimonis/sudoku.pdf‬‬
‫‪http://www.sudoku-grok.com/help.jsp‬‬
‫اجشای تشًاهِ تايذ تسَاًذ اص طشيق خط فشهاى غَسذ گيشد ٍ تِ ٌّگام اجشای تشًاهِ ضواسُ الگَسيسن ٍ فايل ٍسٍدی هطخع ضَد‪:‬‬
‫‪C:\Ex>SudokuSolver puzzle1.txt 2‬‬
‫‪C:\Ex>SudokuSolver puzzle1.txt 6‬‬
‫کِ حالر اٍل هسٌاظش تا اجشای الگَسيسن ‪ ٍ BT-FC-MRV‬حالر دٍم هسٌاظش تا اجشای الگَسيسن ضوا سٍی جذٍلی اسر کِ دس فايل‬
‫ٍسٍدی "‪ "puzzle1.txt‬رخيشُ ضذُ اسر‪.‬‬
‫اگش ّش کذام اص الگَسيسنّا سا خيادُساصی ًکشدُايذ تايذ تِ اصای ضواسُی هشتَطِ دس خشٍجی خيغام "‪ "No implemetation‬چاج ضَد‪.‬‬
‫زا حذ هوکي اص دادُ ساخساسّايی اسسفادُ کٌيذ کِ سشػر هٌاسثی سا تشای خيادُساصی سٍشّا فشاّن کٌذ‪ .‬الگَسيسنّای ضوا تايذ‬
‫حذاقل تشای جذٍل تا ‪ n=4 ٍ n=3‬کاس کٌٌذ‪.‬‬
‫فايلهای ورودی و خروجی‬
‫دس فايل ٍسٍدی دس سطش اٍل ػذد ‪ n‬هطخع ضذُ اسر ٍ خس اص آى اػذاد اٍليِ جذٍل هطخع ضذُ اسر‪:‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪3‬‬
‫‪1‬‬
‫‪6‬‬
‫‪0‬‬
‫‪5‬‬
‫‪9‬‬
‫‪0‬‬
‫‪0‬‬
‫‪6‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪8‬‬
‫‪0‬‬
‫‪7‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪2‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪5‬‬
‫‪0‬‬
‫‪0‬‬
‫‪3‬‬
‫‪0‬‬
‫‪0‬‬
‫‪9‬‬
‫‪0‬‬
‫‪7‬‬
‫‪9‬‬
‫‪0‬‬
‫‪6‬‬
‫‪0‬‬
‫‪2‬‬
‫‪0‬‬
‫‪1‬‬
‫‪8‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪8‬‬
‫‪0‬‬
‫‪0‬‬
‫‪4‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪8‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪3‬‬
‫‪0‬‬
‫‪9‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪6‬‬
‫‪0‬‬
‫‪0‬‬
‫‪3‬‬
‫‪5‬‬
‫‪6‬‬
‫‪0‬‬
‫‪8‬‬
‫‪4‬‬
‫‪7‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫خاًِّايی کِ تا ػذد غفش هطخع ضذُ ّواى خاًِّايی اسر کِ الگَسيسن ضوا تايذ تشای آىّا اػذاد هٌاسة سا خيذا کٌذ‪.‬‬
‫دس فايل خشٍجی (‪ )Solution.txt‬يک جذٍل يافر ضذُ ًوايص دادُ هیضَد‪ .‬دس غَسذ ًذاضسي جَاب زٌْا چيضی کِ دس فايل‬
‫خشٍجی ًَضسِ هیضَد‪ ،‬ػذد غفش اسر‪.‬‬
‫‪2‬‬
‫‪8‬‬
‫‪7‬‬
‫‪3‬‬
‫‪1‬‬
‫‪6‬‬
‫‪4‬‬
‫‪5‬‬
‫‪9‬‬
‫‪1‬‬
‫‪4‬‬
‫‪6‬‬
‫‪2‬‬
‫‪9‬‬
‫‪5‬‬
‫‪8‬‬
‫‪3‬‬
‫‪7‬‬
‫‪9‬‬
‫‪3‬‬
‫‪5‬‬
‫‪4‬‬
‫‪7‬‬
‫‪8‬‬
‫‪2‬‬
‫‪6‬‬
‫‪1‬‬
‫‪8‬‬
‫‪5‬‬
‫‪2‬‬
‫‪1‬‬
‫‪3‬‬
‫‪4‬‬
‫‪7‬‬
‫‪9‬‬
‫‪6‬‬
‫‪7‬‬
‫‪9‬‬
‫‪4‬‬
‫‪6‬‬
‫‪5‬‬
‫‪2‬‬
‫‪3‬‬
‫‪1‬‬
‫‪8‬‬
‫‪6‬‬
‫‪1‬‬
‫‪3‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪5‬‬
‫‪4‬‬
‫‪2‬‬
‫‪4‬‬
‫‪2‬‬
‫‪8‬‬
‫‪9‬‬
‫‪6‬‬
‫‪3‬‬
‫‪1‬‬
‫‪7‬‬
‫‪5‬‬
‫‪3‬‬
‫‪7‬‬
‫‪9‬‬
‫‪5‬‬
‫‪2‬‬
‫‪1‬‬
‫‪6‬‬
‫‪8‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪1‬‬
‫‪8‬‬
‫‪4‬‬
‫‪7‬‬
‫‪9‬‬
‫‪2‬‬
‫‪3‬‬
‫گسارش‬
‫اتسذا سٍش خَدزاى (دس غَسذ ٍجَد) سا تِ غَسذ کاهل زَضيح دّيذ ٍ تِ غَسذ دقيق هکاضفِّايی سا کِ اسسفادُ کشدُايذ تياى‬
‫کٌيذ (تشای هکاضفِّای هطشح ضذُ دس دسس فقط رکش ًام هکاضفِ کافی اسر)‪ .‬دس غَسذ اسسفادُ اص يک هقالِ يا هٌثؼی ديگش دس‬
‫اسائِی هکاضفِ حسواً هشجغ سا رکش کٌيذ‪.‬‬
‫سدس تشای ّش کذام اص هَسدّای آصهَى جذٍلی تِ غَسذ صيش زطکيل دّيذ ٍ ًسايج سا هطخع کٌيذ‪ .‬الصم تِ رکش اسر کِ کذ ضوا‬
‫دس هَاسد آصهَى هسؼذدی زَسط ها زسر خَاّذ ضذ ٍ هَاسد آصهَى هطخع ضذُ زٌْا تشای زْيِ گضاسش اسر‪.‬‬
‫دس ايي جذٍل هٌظَس اص صهاى کلی‪ ،‬کل صهاى اجشای سٍش اسر کِ هقذاسدّی اٍليِ‪ ،‬خيصخشداصش ٍ ‪ ...‬سا ضاهل هیضَد‪ّ .‬وچٌيي‬
‫‪ MNA‬هسَسط زؼذاد دفؼازی کِ خاًِای اص جذٍل (ٍلَ تِ غَسذ هَقر) هقذاسدّی هیضَد سا ًطاى هیدّذ‪.‬‬
‫هَسد آصهَى ‪-k‬ام‬
‫سٍش‬
‫صهاى کلی‬
‫صهاى جسسجَ‬
‫زؼذاد گشُّای‬
‫(‪)msec‬‬
‫(‪)msec‬‬
‫زَليذ ضذُ‬
‫‪Effective‬‬
‫‪branching factor‬‬
‫‪MNA‬‬
‫‪BT-FC‬‬
‫‪BT-FC-MRV‬‬
‫‪BT-MAC-MRV‬‬
‫‪AC3+BT-FC-MRV‬‬
‫‪Min-Conflicts‬‬
‫‪Your Method‬‬
‫دس ًْاير زحليل ًسايج تِ دسر آهذُ ٍ تحث دستاسُ آىّا ٍ ايٌکِ ّشکذام اص زکٌيکّا دس چِ ضشايطی ٍ تِ چِ هيضاى سَدهٌذ‬
‫تَدُاًذ‪ ،‬غَسذ هیگيشد‪ .‬تِ ػالٍُ هیزَاًيذ ّش ًسيجِ ػولی کِ احساس هیکٌيذ جزاب اسر سا گضاسش کٌيذ‪.‬‬
‫هَفق تاضيذ‬