HW5.pdf

‫ﯾﺎﻟﻄﯿﻒ‬
‫ﻫﻮش ﻣﺼﻨﻮﻋ‬
‫ﻧﯿﻢﺳﺎل دوم ‪٩٢٩١‬‬
‫داﻧﺸ ﺪهی ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺳﻠﯿﻤﺎﻧ‬
‫ﺗﻤﺮﯾﻦ ﺷﻤﺎرهی ﭘﻨﺠﻢ‬
‫ﻣﻬﻠﺖ ارﺳﺎل‪ ٢٠ :‬ﺧﺮداد‬
‫ﺗﻮﺿﯿﺢ ﺗﻤﺮﯾﻦ‬
‫• ﺑﻪ ازای ﻫﺮ روز ﺗﺎﺧﯿﺮ در ﺗﺤﻮﯾﻞ ﺗﻤﺮﯾﻦ )ﺣﺪاﮐﺜﺮ ‪ ٣‬روز( ‪ ١٠٪‬از ﻧﻤﺮهی آن ﮐﺎﺳﺘﻪ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫• ﺟﻮاب ﺗﻤﺮﯾﻦﻫﺎی ﺗﺸﺮﯾﺤ را در ﯾ ﻓﺎﯾﻞ ‪ ،PDF‬از ﻃﺮﯾﻖ اﯾﻤﯿﻞ ﺑﺎ ﻣﻮﺿﻮع‬
‫]‪ HW5-[STUDENT-ID‬ﺑﻪ ‪ sharif.ai.91.2+HW5@gmail.com‬ارﺳﺎل ﮐﻨﯿﺪ‪.‬‬
‫• در ﺻﻮرت ﻣﺸﺎﻫﺪهی ﺗﻘﻠﺐ ﺑﺮای ﻫﺮ دو ﻃﺮف ﻧﻤﺮهی ﺻﻔﺮ ﻣﻨﻈﻮر ﻣ ﺷﻮد‪.‬‬
‫• در ﺻﻮرﺗ ﮐﻪ در راﺑﻄﻪ ﺑﺎ ﺗﻤﺮﯾﻦ ﺳﻮاﻟ دارﯾﺪ آن را در ﮔﺮوه درس ﺑﻪ آدرس زﯾﺮ ﻣﻄﺮح ﮐﻨﯿﺪ‪:‬‬
‫‪https://groups.google.com/forum/#!forum/sharif_ai_91-92_2‬‬
‫‪١‬‬
‫ﺑﻪ ﻣﺴﺎﻟﻪی ﺑﺮﻧﺎﻣﻪرﯾﺰی ‪PDDL‬‬
‫ﻣﺪلﮐﺮدن ﻣﺎﺷﯿﻦ ﺗﻮرﯾﻨ‬
‫از درس ﻧﻈﺮﯾﻪی زﺑﺎنﻫﺎ ﺑﺎ ﺗﻌﺮف ﻣﺎﺷﯿﻦ ﺗﻮرﯾﻨ ‪ ،‬آﺷﻨﺎ ﻫﺴﺘﯿﻢ‪ .‬در اﯾﻨﺠﺎ ﺟﻬﺖ ﯾﺎدآوری ﺗﻌﺮﯾﻒ آن را آوردهاﯾﻢ‪:‬‬
‫اﯾﻦ ﻣﺎﺷﯿﻦ ﺷﺎﻣﻞ ﯾ ‪ head‬و ﯾ ﻧﻮار ﯾ ﺑﻌﺪی ﺷﺎﻣﻞ ﺑ ﻧﻬﺎﯾﺖ ﺧﺎﻧﻪ )ﺑﺎ ﺷﻤﺎرهﻫﺎی از ﻣﻨﻔ ﺑﯿﻨﻬﺎﯾﺖ ﺗﺎ ﻣﺜﺒﺖ ﺑﯿﻨﻬﺎﯾﺖ(‬
‫اﺳﺖ ﮐﻪ ﻫﺮ ﺧﺎﻧﻪی آن ﻣ ﺗﻮاﻧﺪ ﺧﺎﻟ ﺑﺎﺷﺪ ﯾﺎ ﯾ از ﺣﺮوف اﻟﻔﺒﺎی ‪ k‬ﺣﺮﻓ را داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻫﻤﭽﻨﯿﻦ ﻫﺮ ﻣﺎﺷﯿﻦ ﺗﻮرﯾﻨ‬
‫ﺗﻌﺪاد ﻣﺘﻨﺎﻫ )‪ (n‬وﺿﻌﯿﺖ ‪ ١‬دارد ﮐﻪ در ﻫﺮ ﻟﺤﻈﻪ دﻗﯿﻘﺎ در ﯾ از اﯾﻦ وﺿﻌﯿﺖﻫﺎ ﻗﺮار دارد‪ .‬اﯾﻦ ﻣﺎﺷﯿﻦ در ﻫﺮ ﻣﺮﺣﻠﻪ‪،‬‬
‫ﺑﺮاﺳﺎس ﺣﺮﻓ ﮐﻪ زﯾﺮ ‪ head‬ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ و وﺿﻌﯿﺘ ﮐﻪ در آن ﻗﺮار دارد‪ ،‬ﻣ ﺗﻮاﻧﺪ ﮐﺎرﻫﺎی زﯾﺮ را اﻧﺠﺎم ﻣ دﻫﺪ‪:‬‬
‫• ﻣ ﺗﻮاﻧﺪ ﻣﻘﺪار ﺧﺎﻧﻪای ﮐﻪ ‪ head‬روی آن ﻗﺮار دارد را ﺗﻐﯿﯿﺮ دﻫﺪ‪.‬‬
‫• ﻣ ﺗﻮاﻧﺪ ‪ head‬را ﺑﻪ ﯾ‬
‫از ﺧﺎﻧﻪﻫﺎی راﺳﺘ ﯾﺎ ﭼﭙ اش ﻣﻨﺘﻘﻞ ﮐﻨﺪ‪.‬‬
‫• ﻣ ﺗﻮاﻧﺪ وﺿﻌﯿﺖ ﻣﺎﺷﯿﻦ ﺗﻮرﯾﻨ‬
‫را ﺑﻪ ﯾ‬
‫ﻫﻤﭽﻨﯿﻦ در وﺿﻌﯿﺖ اوﻟﯿﻪی ﻣﺎﺷﯿﻦ ﺗﻮرﯾﻨ‬
‫از ‪ n‬وﺿﻌﯿﺖ ﻣﻮﺟﻮد ﺗﻐﯿﯿﺮ دﻫﺪ‪.‬‬
‫ﺷﺮاﯾﻂ زﯾﺮ ﺑﺮﻗﺮار ﻫﺴﺘﻨﺪ‪:‬‬
‫• ﻣﺎﺷﯿﻦ در وﺿﻌﯿﺖ ﺷﺮوع ‪ S١‬ﻗﺮار دارد‪.‬‬
‫• ‪ head‬ﻣﺎﺷﯿﻦ روی ﺧﺎﻧﻪی ﺷﻤﺎرهی ﺻﻔﺮ ﻗﺮار دارد‪.‬‬
‫• ورودی ﻣﺎﺷﯿﻦ ﮐﻪ ﯾ‬
‫رﺷﺘﻪ ﺑﻪ ﻃﻮل ‪ m‬اﺳﺖ در ﺧﺎﻧﻪﻫﺎی ‪ ٠‬ﺗﺎ ‪ m-١‬ﻗﺮار داد و ﺑﻘﯿﻪی ﺧﺎﻧﻪﻫﺎی ﻧﻮار ﺧﺎﻟ ﻫﺴﺘﻨﺪ‪.‬‬
‫وﺿﻌﯿﺖ ‪ Sn‬وﺿﻌﯿﺖ ﭘﺬﯾﺮش ‪ ٢‬اﺳﺖ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﻫﺮوﻗﺖ ﻣﺎﺷﯿﻦ ﺗﻮرﯾﻨ در اﯾﻦ وﺿﻌﯿﺖ ﻗﺮار ﮔﯿﺮد‪ ،‬ﺑﻪ ﮐﺎر ﺧﻮد ﺧﺎﺗﻤﻪ ﻣ دﻫﺪ‬
‫و اﺻﻄﻼﺣﺎ رﺷﺘﻪی ورودی را ﭘﺬﯾﺮﻓﺘﻪ اﺳﺖ‪ .‬در ﻧﺘﯿﺠﻪ ﻣﺎﺷﯿﻦ ﺗﻮرﯾﻨ ﺑﺎ ﺷﺮوع از وﺿﻌﯿﺖ اوﻟﯿﻪ‪ ،‬ﯾﺎ رﺷﺘﻪی ورودی را‬
‫ﻣ ﭘﺬﯾﺮد‪ ،‬ﯾﺎ ﻫﯿﭻ وﻗﺖ ﮐﺎرش ﺧﺎﺗﻤﻪ ﭘﯿﺪا ﻧﻤ ﮐﻨﺪ‪.‬‬
‫ﻣﺴﺌﻠﻪی ﻣﻘﺒﻮﻟﯿﺖ ﻣﺎﺷﯿﻦ ﺗﻮرﯾﻨ ﺳﺎده ‪ ٣‬را ﺑﻪ ﺻﻮرت ﯾ ﻣﺴﺌﻠﻪی ﺑﺮﻧﺎﻣﻪرﯾﺰی ﺑﯿﺎن ﮐﻨﯿﺪ‪ ١۵) .‬ﻧﻤﺮه(‬
‫ﻧﺘﯿﺠﻪ ﺑ ﯿﺮﯾﺪ‪ ،‬ﮐﻪ ﺑﻪ دﺳﺖ آوردن اﯾﻨ ﻪ ﯾ ﻣﺴﺌﻠﻪی ﺑﺮﻧﺎﻣﻪرﯾﺰی ﻗﺎﺑﻞ ﺣﻞ اﺳﺖ‪ PSPACE-hard ،‬اﺳﺖ )در ﻣﻮرد ‪PSPACE-‬‬
‫‪ hard‬ﺗﺤﻘﯿﻖ ﮐﻨﯿﺪ و درﺣﺪ ﯾ دو ﭘﺎراﮔﺮاف ﺗﻮﺿﯿﺢ دﻫﯿﺪ(‪ ١٠) .‬ﻧﻤﺮه ﻧﻤﺮه(‬
‫‪State١‬‬
‫‪Accept٢‬‬
‫‪Turing Machine Acceptanc٣‬‬
‫‪١‬‬
‫‪٢‬‬
‫ﮔﺮاف ﺑﺮﻧﺎﻣﻪرﯾﺰی ﺑﺎ ﻟﯿﺘﺮالﻫﺎی دارای ﻣﺘﻐﯿﺮ‬
‫ﮔﺮافﻫﺎی ﺑﺮﻧﺎﻣﻪرﯾﺰی ﺗﻨﻬﺎ ﻗﺎدر ﺑﻪ ﮐﺎر ﺑﺎ اﻋﻤﺎل ﮔﺰارهای ﻣ ﺑﺎﺷﻨﺪ )در اﯾﻨﺠﺎ ﻣﻨﻈﻮر از ﮔﺰاره ﻋﺒﺎرﺗ اﺳﺖ ﮐﻪ ﯾﺎ ﻫﻤﻮاره ﺻﺤﯿﺢ‬
‫اﺳﺖ ﯾﺎ ﻫﻤﻮاره ﻏﻠﻂ(‪ .‬ﭼﻪ ﺗﺮﺗﯿﺒ ﺑﺎﯾﺪ اﻧﺪﯾﺸﯿﺪ در ﺻﻮرﺗ ﮐﻪ ﺑﺨﻮاﻫﯿﻢ از ﮔﺮافﻫﺎی ﺑﺮﻧﺎﻣﻪرﯾﺰی ﺑﺮای ﺣﻞ ﯾ ﻣﺴﺎﻟﻪ اﺳﺘﻔﺎده‬
‫ﮐﻨﯿﻢ ﮐﻪ در ﻫﺪف آن ﻣﺘﻐﯿﺮ وﺟﻮد دارد؟ ﻣﺜﻼ ﻋﺒﺎرت )‪ At(P١ , x)&At(P٢ , x‬ﮐﻪ در آن داﻣﻨﻪی ﺗﻐﯿﯿﺮات ‪ x‬ﯾ ﻣﺤﺪودهی‬
‫ﻣﺸﺨﺺ ﻣ ﺎﻧ را در ﺑﺮﻣ ﮔﯿﺮد‪.‬‬
‫ﺳﻌ ﮐﻨﯿﺪ روشﺗﺎن ﺗﺎ ﺣﺪ اﻣ ﺎن ﺑﻬﯿﻨﻪ ﺑﺎﺷﺪ‪ .‬ﭘﯿﭽﯿﺪﮔ زﻣﺎﻧ روش ﺧﻮد را ﻧﺴﺒﺖ ﺑﻪ ﺣﺎﻟﺖ ﺑﺪون ﻣﺘﻐﯿﺮ ﻣﻘﺎﯾﺴﻪ ﮐﻨﯿﺪ‪.‬‬
‫ﻣ ﺗﻮاﻧﯿﺪ ﻣﻘﺎﯾﺴﻪ را ﺑﺮﺣﺴﺐ اﻧﺪازهی ﻣﺤﺪودهی داﻣﻨﻪی ‪ x‬اﻧﺠﺎم ﺑﯿﺎن ﮐﻨﯿﺪ‪ ٢۵) .‬ﻧﻤﺮه(‬
‫‪٣‬‬
‫ﺑﺮﻧﺎﻣﻪرﯾﺰی ﺑﻪ روش ‪POP‬‬
‫در ﺷ ﻞ زﯾﺮ ﻣ ﺧﻮاﻫﯿﻢ ‪ ٣‬ﻣ ﻌﺐ ‪ A‬و ‪ B‬و ‪ C‬را ﮐﻪ ﺑﻪ ﺗﺮﺗﯿﺐ از ﭘﺎﯾﯿﻦ ﺑﻪ ﺑﺎﻻ ﭼﯿﺪه ﺷﺪهاﻧﺪ )وﺿﻌﯿﺖ اوﻟﯿﻪ( ﺑﻪ ﺗﺮﺗﯿﺐ‬
‫ﺑﺮﻋ ﺲ روی ﻣﯿﺰ ﻗﺮار دﻫﯿﻢ )وﺿﻌﯿﺖ ﻫﺪف(‪ .‬ﺑﺮای اﯾﻦ ﮐﺎر ﻣ ﺗﻮاﻧﯿﻢ از ﯾ از دو ﻋﻤﻞ ‪ Move, MoveT‬اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪.‬‬
‫ﭘﯿﺶﺷﺮﻃﻬﺎی ﻫﺮﮐﺪام از اﯾﻦ اﻋﻤﺎل و ﻧﺘﺎﯾﺞﺷﺎن در ﺷ ﻞ آﻣﺪه اﺳﺖ‪ .‬ﭘﺎﺳﺦ اﯾﻦ ﻣﺴﺎﻟﻪ را ﺑﻪ روش ‪ POP‬ﺑﺪﺳﺖ آورﯾﺪ و‬
‫ﺟﻮاب ﺧﻮد را رﺳﻢ ﮐﻨﯿﺪ )ﺑﻪ روشﻫﺎی دﯾ ﺮ ﻧﻤﺮهای ﺗﻌﻠﻖ ﻧﺨﻮاﻫﺪ ﮔﺮﻓﺖ(‪ ٢۵) .‬ﻧﻤﺮه(‬
‫ﺑﻪ ﭼﻨﺪ ﻃﺮﯾﻖ ﻣ ﺗﻮان ﭘﺎﺳﺨ ﮐﻪ ﺑﺪﺳﺖ آوردهاﯾﺪ را ﺧﻄ ﮐﺮد؟ ﯾﻌﻨ ﺑﺎ ﺣﺬف ﻣﺤﺪودﯾﺖﻫﺎی ﺗﺮﺗﯿﺒ ﻣﻮﺟﻮد‪ ،‬ﭼﻨﺪ ﺗﺮﺗﯿﺐ از‬
‫اﻧﺠﺎم اﻋﻤﺎل وﺟﻮد دارد؟ )‪ ١٠‬ﻧﻤﺮه(‬
‫‪۴‬‬
‫ﺟﺴﺘﺠﻮی دوﻃﺮﻓﻪ در ﻣﺴﺎﺋﻞ ﺑﺮﻧﺎﻣﻪرﯾﺰی‬
‫• اﻟﻒ( در راﺑﻄﻪ ﺑﺎ روش ﺟﺴﺘﺠﻮی دوﻃﺮﻓﻪ ﺗﺤﻘﯿﻖ ﮐﻨﯿﺪ‪) .‬ﺻﻔﺮ ﻧﻤﺮه(‬
‫• ب( آﯾﺎ ﺟﺴﺘﺠﻮی دوﻃﺮﻓﻪ ﻓﻀﺎی ﺣﺎﻟﺖ ﺑﺮای ﻣﺴﺎﺋﻞ ﺑﺮﻧﺎﻣﻪرﯾﺰی ﻣﻨﺎﺳﺐ اﺳﺖ؟ )‪ ١۵‬ﻧﻤﺮه(‬
‫• ج( ﺟﺘﺴﺠﻮی دو ﻃﺮﻓﻪ در ﻓﻀﺎی ‪ POP‬ﭼﻄﻮر؟ )‪ ١۵‬ﻧﻤﺮه(‬
‫‪٢‬‬
‫‪۵‬‬
‫ﺳﻮاﻻت ﺗﺤﻠﯿﻠ‬
‫ﺑﻪ ﺳﻮاﻻت زﯾﺮ‪ ،‬در ﺣﺪ ﯾ‬
‫دو ﭘﺎراﮔﺮاف ﺗﻮﺿﯿﺢ دﻫﯿﺪ و ﻧﻪ ﺑﯿﺸﺘﺮ! )‪ ٣٠‬ﻧﻤﺮه(‬
‫• آﯾﺎ ﺟﺴﺘﺠﻮی ﻋﻘﺒ ‪ ۴‬در ﻣﺴﺎﺋﻞ ﺑﺮﻧﺎﻣﻪرﯾﺰی ﮐﺎﻣﻞ اﺳﺖ؟ ﺟﺴﺘﺠﻮی روﺑﻪﺟﻠﻮ ﭼﻄﻮر؟‬
‫• آﯾﺎ در ﻧﻈﺮ ﻧ ﺮﻓﺘﻦ ‪ Delete List‬در ﻣﺴﺎﺋﻞ ﺑﺮﻧﺎﻣﻪرﯾﺰی ﻣﺎ را ﺑﻪ ﯾ‬
‫ﭼﻨﺪﺟﻤﻠﻪای ﻗﺎﺑﻞ ﺣﻞ اﺳﺖ؟‬
‫• ﭼﺮا در ﮔﺮاف ﺑﺮﻧﺎﻣﻪرﯾﺰی‪ ،‬ﺣﺘﻤﺎ ﺑﻪ ﯾ‬
‫‪ Relaxed Problem‬ﻣ رﺳﺎﻧﺪ ﮐﻪ در زﻣﺎن‬
‫‪ Level Off‬ﻣ رﺳﯿﻢ؟‬
‫• در ﻣﺴﺎﻟﻪﻫﺎی ﺑﺮﻧﺎﻣﻪرﯾﺰی‪ ،‬وﻗﺘ ﭼﻨﺪﯾﻦ ﻫﺪف دارﯾﻢ ﺑﻪ ﻋﻨﻮان ﯾ‬
‫اﻟﻒ( ﻣﺠﻤﻮع ﻫﺰﯾﻨﻪﻫﺎی ﻫﺮ ﯾ از ﻫﺪفﻫﺎ‬
‫ب( ﻫﺰﯾﻨﻪی ﺑﯿﺸﯿﻨﻪ ﺑﯿﻦ ﻫﺪفﻫﺎی ﻣﻮﺟﻮد‬
‫ﻣﻮﻓﻖ ﺑﺎﺷﯿﺪ‪.‬‬
‫‪Backward Search۴‬‬
‫‪٣‬‬
‫ﺗﺎﺑﻊ ﻣ ﺎﺷﻔﻪای ﮐﺪام ﯾ‬
‫را ﭘﯿﺸﻨﻬﺎد ﻣ ﮐﻨﯿﺪ؟‬