AI-HW5.pdf

‫ﺗﻤﺮﯾﻦ ﺳﺮي ﭘﻨﺠﻢ درس ﻫﻮش ﻣﺼﻨﻮﻋﯽ‬
‫ﻣﺪرس‪ :‬دﮐﺘﺮ ﺳﻠﯿﻤﺎﻧﯽ‬
‫ﺗﺮم دوم ﺳﺎل ﺗﺤﺼﯿﻠﯽ ‪1394-95‬‬
‫داﻧﺸﮑﺪه ﻣﻬﻨﺪﺳﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫داﻧﺸﮕﺎه ﺻﻨﻌﺘﯽ ﺷﺮﯾﻒ‬
‫ﻣﻮﻋﺪ ﺗﺤﻮﯾﻞ ﺗﻤﺮﯾﻦ‪ :‬ﺟﻤﻌﻪ‪ 10 ،‬اردﯾﺒﻬﺸﺖ‬
‫‬
‫‬
‫‬
‫‬
‫ﺳﻮاﻻت ﻧﻈﺮي و ﻋﻤﻠﯽ ‬
‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬
‫ﺳﻮال ‪ 45) .1‬ﻧﻤﺮه(‬
‫ﻣﯽﺧﻮاﻫﯿﻢ ﻣﻌﻤﺎي رﻣﺰﮔﺸﺎﯾﯽ ﺣﺮوف زﯾﺮ را ﺣﻞ ﮐﻨﯿﻢ؛ ﮐﻪ در آن ﺣﺮوف ﻣﺘﻤﺎﯾﺰ‪ ،‬ارﻗﺎم ﻣﺘﻤﺎﯾﺰ را ﻧﺸﺎن ﻣﯽدﻫﻨﺪ و اﻋﺪاد ﻣﺮﺑﻮﻃﻪ در‬
‫ﻣﺒﻨﺎي ‪ 10‬و ﺑﺪون ﺻﻔﺮ ﺳﻤﺖ ﭼﭗ‪ 1‬ﻫﺴﺘﻨﺪ‪ :‬‬
‫𝑁𝐼𝐴𝑅𝑇 = 𝑂𝑂𝐻𝐶 ‪𝐶𝐻𝑂𝑂 +‬‬
‫اﻟﻒ( اﺟﺰاي ﯾﮏ ﻣﺴﺎﻟﻪ ‪ CSP2‬را در ﺣﺎﻟﺖ ﮐﻠﯽ ﺗﻌﺮﯾﻒ ﮐﺮده و ﻣﺴﺎﻟﻪ ﻣﻌﺮﻓﯽ ﺷﺪه را در اﯾﻦ ﻏﺎﻟﺐ ﺑﯿﺎن ﮐﻨﯿﺪ؛ ﺑﻄﻮري ﮐﻪ داﻣﻨﻪي ﻫﺮ‬
‫ﻣﺘﻐﯿﺮ ‪ 9‬ﯾﺎ ‪ 10‬ﻋﻀﻮي ﺑﺎﺷﺪ‪ 5) .‬ﻧﻤﺮه(‬
‫ب( آﯾﺎ ‪ ArcConsistency‬ﺑﺮاي داﻣﻨﻪﻫﺎي ﻣﻌﺮﻓﯽ ﺷﺪه ﺑﺮﻗﺮار اﺳﺖ؟ ‪ PathConsistency‬ﭼﻄﻮر؟ ﺑﺮاي ادﻋﺎي ﺧﻮد دﻟﯿﻞ‬
‫ﺑﯿﺎورﯾﺪ‪ 5) .‬ﻧﻤﺮه(‬
‫پ( ﻣﯽﺧﻮاﻫﯿﻢ اﻟﮕﻮرﯾﺘﻢ ‪ AC-3‬را ﺑﺮ روي داﻣﻨﻪﻫﺎي ﻣﻮﺟﻮد اﺟﺮا ﻧﻤﺎﯾﯿﻢ‪ .‬در ﺣﺎﻟﺖ ﮐﻠﯽ اﮔﺮ ﺳﻪ ﻋﺪد ﻣﻮﺟﻮد در ﭘﺎزل 𝑛 𝑂 رﻗﻤﯽ‬
‫ﺑﺎﺷﻨﺪ و ﻣﺒﻨﺎي ﻋﺪدي اﻧﺠﺎم ﻋﻤﻠﯿﺎت 𝑏 ﺑﺎﺷﺪ؛ ﻣﺮﺗﺒﻪ زﻣﺎﻧﯽ اﺟﺮاي ‪ AC-3‬ﭼﻪ ﺧﻮاﻫﺪ ﺑﻮد؟ )‪ 5‬ﻧﻤﺮه(‬
‫* ت( اﻟﮕﻮرﯾﺘﻢ ‪ AC-3‬را ﺑﺮاي اﯾﻦ ﻣﺴﺎﻟﻪ ﭘﯿﺎدهﺳﺎزي ﮐﻨﯿﺪ و داﻣﻨﻪﻫﺎي ﺣﺎﺻﻞ از اﺟﺮاي آن را ﺑﯿﺎﺑﯿﺪ‪ 15) .‬ﻧﻤﺮه(‬
‫* ث( اﻟﮕﻮرﯾﺘﻤﯽ ﺑﻪ روش ‪ backtracking‬ﭘﯿﺎدهﺳﺎزي ﮐﻨﯿﺪ ﮐﻪ ﺗﻤﺎﻣﯽ ﭘﺎﺳﺦﻫﺎي اﯾﻦ ﻣﺴﺎﻟﻪ را ﺑﯿﺎﺑﺪ‪ .‬دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ورودي اﯾﻦ‬
‫ﺑﺮﻧﺎﻣﻪ ‪ CSP‬ﻃﺮاﺣﯽ ﺷﺪه ﺗﻮﺳﻂ ﺷﻤﺎ ﺑﺎ داﻣﻨﻪﻫﺎي ﺣﺎﺻﻞ از ﻗﺴﻤﺖ )ت( ﺑﺎﺷﺪ‪ 15) .‬ﻧﻤﺮه(‬
‫ﺳﻮال ‪ 15) .2‬ﻧﻤﺮه(‬
‫در ﺣﻞ ﯾﮏ ﻣﺴﺎﻟﻪ ‪ CSP‬ﺑﻪ روش ‪Backtracking‬؛‬
‫اﻟﻒ( اﯾﺠﺎد ‪ ArcConsistency‬در داﻣﻨﻪﻫﺎي ﻣﺘﻐﯿﺮﻫﺎ ﭼﻪ ﮐﻤﮑﯽ ﻣﯽﮐﻨﺪ؟ ﭘﺲ از اﯾﻦ ﮔﺎم؛ اﺳﺘﻔﺎده از ﻫﺮ ﯾﮏ از ﺗﮑﻨﯿﮏﻫﺎي ذﯾﻞ‬
‫ﭼﻪ ﮐﻤﮑﯽ ﺑﻪ ﺟﺴﺘﺠﻮ ﻣﯽﮐﻨﻨﺪ؟ )‪ 9‬ﻧﻤﺮه(‬
‫‪ForwardChecking‬‬
‫‪MinimumRemainingValues‬‬
‫•‬
‫•‬
‫ب( ﺑﻪ ﻃﻮر ﮐﻠﯽ‪ ،‬ﻧﮕﺎه ﺑﻪ ﺟﻠﻮ )‪ (Inference‬دو ﻧﻮع دارد؛ ﺑﻪ ﻋﻨﻮان ﭘﯿﺶ ﭘﺮدازش و در ﺣﯿﻦ ﺟﺴﺘﺠﻮ‪ .‬روشﻫﺎي اِﻋﻤﺎل ﻫﺮ ﯾﮏ از‬
‫اﯾﻦ دو روﯾﮑﺮد و ﻣﺰﯾﺖﻫﺎي ﻫﺮ ﯾﮏ را ﻣﺨﺘﺼﺮا ﺑﯿﺎن ﻧﻤﺎﯾﯿﺪ‪ 6) .‬ﻧﻤﺮه(‬
‫‬
‫‪LeadingZeros‬‬
‫‪ConstraintSatisfactionProblem‬‬
‫‪1‬‬
‫‪2‬‬
‫ﺳﻮال ‪ 20) .3‬ﻧﻤﺮه(‬
‫اﻟﻒ( ﻣﯽداﻧﯿﻢ ﮔﺮافﻫﺎي ﻣﺴﻄﺢ ﺑﺎ ﭼﻬﺎر رﻧﮓ ﻗﺎﺑﻞ رﻧﮓآﻣﯿﺰي ﻣﻄﻠﻮب ﻫﺴﺘﻨﺪ‪ ،‬ﻣﻨﻈﻮر از رﻧﮓ آﻣﯿﺰي ﻣﻄﻠﻮب اﯾﻦ اﺳﺖ ﮐﻪ ﻫﯿﭻ دو‬
‫ﻫﻤﺴﺎﯾﻪاي ﻫﻤﺮﻧﮓ ﻧﺒﺎﺷﻨﺪ‪ .‬ﺳﻪ رﻧﮓ دارﯾﻢ و ﻣﯽﺧﻮاﻫﯿﻢ ﻧﻘﺸﻪاي ﺟﻐﺮاﻓﯿﺎﯾﯽ را ﺑﺎ آنﻫﺎ رﻧﮓآﻣﯿﺰي ﮐﻨﯿﻢ‪ .‬ﻧﺸﺎن دﻫﯿﺪ ﺑﺎ وﺟﻮد ﺳﻪ‬
‫رﻧﮓ؛ ﻟﺰوﻣﺎ ﯾﮏ ﮔﺮاف ﻣﺴﻄﺢ ﻗﺎﺑﻞ رﻧﮓآﻣﯿﺰي ﻣﻄﻠﻮب ﻧﻤﯽﺑﺎﺷﺪ‪ .‬از ﻃﺮف دﯾﮕﺮ؛ ﻧﻘﺸﻪﻫﺎي ﺟﻐﺮاﻓﯿﺎﯾﯽ ﮐﻪ در آن ﮐﺸﻮرﻫﺎ ﻣﻤﮑﻦ اﺳﺖ‬
‫ﭼﻨﺪ ﺗﮑﻪ ﺑﺎﺷﻨﺪ؛ و ﻫﻤﺴﺎﯾﮕﯽ آﺑﯽ ﻧﯿﺰ در آنﻫﺎ ﻣﺪ ﻧﻈﺮ اﺳﺖ‪ ،‬ﻟﺰوﻣﺎ ﮔﺮاﻓﯽ ﻣﺴﻄﺢ ﻧﺘﯿﺠﻪ ﻧﻤﯽدﻫﻨﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺎ ﻫﺪف ﮐﻢ ﮐﺮدن ﺗﻌﺪاد‬
‫ﺟﻔﺖ ﻫﻤﺴﺎﯾﮕﺎن ﻫﻤﺮﻧﮓ؛ ﻣﯽﺧﻮاﻫﯿﻢ ﺑﻬﺘﺮﯾﻦ رﻧﮓآﻣﯿﺰي را ﭘﯿﺪا ﮐﻨﯿﻢ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از ﻣﻄﺎﻟﺒﯽ ﮐﻪ در ﺑﺨﺶ ‪ CSP‬آﻣﻮﺧﺘﯿﺪ؛ اﻟﮕﻮرﯾﺘﻤﯽ‬
‫در اﯾﻦ راﺳﺘﺎ ﻃﺮاﺣﯽ ﮐﻨﯿﺪ‪ 6) .‬ﻧﻤﺮه(‬
‫* ب( اﻟﮕﻮرﯾﺘﻢ ﻃﺮاﺣﯽ ﺷﺪه در ﻗﺴﻤﺖ ﻗﺒﻞ را ﭘﯿﺎدهﺳﺎزي ﮐﻨﯿﺪ و ﺑﻮﺳﯿﻠﻪ آن ﮔﺮاف ﻫﻤﺴﺎﯾﮕﺎن اﯾﺮان‪ ،‬ﮐﻪ ﻣﺎﺗﺮﯾﺲ ﻣﺠﺎورت آن در‬
‫ذﯾﻞ داده ﺷﺪه را رﻧﮓ ﮐﻨﯿﺪ‪ .‬ﺗﻌﺪاد ﺟﻔﺖ ﻫﻤﺴﺎﯾﻪﻫﺎي ﻫﻤﺮﻧﮓ را ﻧﯿﺰ ﺑﯿﺎﺑﯿﺪ‪ 14) .‬ﻧﻤﺮه(‬
‫‪UnitedArabEmirates‬‬
‫‪Turkmenistan‬‬
‫‪Turkey‬‬
‫‪SaudiArabia‬‬
‫‪Russia‬‬
‫‪Qatar‬‬
‫‪Pakistan‬‬
‫‪Oman‬‬
‫‪Nagorno-Karabakh‬‬
‫‪Kuwait‬‬
‫‪Kazakhstan‬‬
‫‪Iraq‬‬
‫‪Iran‬‬
‫‪Bahrain‬‬
‫‪Azerbaijan‬‬
‫‪Armenia‬‬
‫‪Afghanistan‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‪+‬‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‪+‬‬
‫‬
‫‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‬
‫‬
‫‬
‫‪+‬‬
‫‬
‫‬
‫‪Afghanistan‬‬
‫‬
‫‪Armenia‬‬
‫‬
‫‪Azerbaijan‬‬
‫‬
‫‪Bahrain‬‬
‫‬
‫‪Iran +‬‬
‫‪Iraq‬‬
‫‬
‫‪Kazakhstan‬‬
‫‬
‫‪Kuwait‬‬
‫‬
‫‪Nagorno-Karabakh‬‬
‫‬
‫‪Oman‬‬
‫‬
‫‪Pakistan +‬‬
‫‪Qatar‬‬
‫‬
‫‪Russia‬‬
‫‬
‫‪SaudiArabia‬‬
‫‬
‫‪Turkey‬‬
‫‬
‫‪Turkmenistan +‬‬
‫‪UnitedArabEmirates‬‬
‫‬
‫ﭼﻨﺪ ﻧﮑﺘﻪ‪:‬‬
‫‪ .1‬ﺗﻤﺮﯾﻨﺎت ﻋﻤﻠﯽ * )‪-1‬ت‪-1 ،‬ث و ‪-3‬ب( را ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻪ ‪ Java ،C/C++‬و ﯾﺎ ‪ Python‬ﭘﯿﺎده ﺳﺎزي ﮐﻨﯿﺪ‪ .‬‬
‫‪ .2‬ﺑﺮاي ﻫﺮ ﯾﮏ از ﺗﻤﺮﯾﻦﻫﺎي ﻋﻤﻠﯽ؛ ﺳﻨﺪي ﺷﺎﻣﻞ ﺗﻮﺿﯿﺢ راه ﺣﻞ ﻣﺘﻨﺎﺳﺐ ﺑﺎ ﮐﺪ‪ ،‬ورودي داده ﺷﺪه ﺑﻪ ﮐﺪ و ﺧﺮوﺟﯽ ﺣﺎﺻﻞ از‬
‫اﺟﺮاي ﮐﺪ ﺧﻮد را ﺑﻪ ﻫﻤﺮاه ﮐﺪ ﻣﺮﺑﻮﻃﻪ‪ ،‬اراﺋﻪ ﻧﻤﺎﯾﯿﺪ‪.‬‬
‫‬
‫ﻣﻮﻓﻖ ﺑﺎﺷﯿﺪ ‪J‬‬