ﺑﺎﺳﻤﻪ ﺗﻌﺎﻟﯽ ﻫﻮش ﻣﺼﻨﻮﻋﯽ )(۴٠-۴١٧ Artificial Intelligence ﻣﺪرس :دﮐﺘﺮ ﺳﻠﯿﻤﺎﻧﯽ داﻧﺸﮑﺪهی ﻣﻬﻨﺪﺳﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ ﻣﻮﻋﺪ ارﺳﺎل ٢٩:اردﯾﺒﻬﺸﺖ ١٣٩٢ ﺗﻤﺮﯾﻦ ﮐﺘﺒﯽ و ﻋﻤﻠﯽ -ﺷﻤﺎرهی ۴ • ﺑﻪ ازای ﻫﺮ روز ﺗﺎﺧﯿﺮ در ﺗﺤﻮﯾﻞ ﺗﻤﺮﯾﻦ )ﺣﺪاﮐﺜﺮ ٣روز( ١٠٪از ﻧﻤﺮهی آن ﮐﺎﺳﺘﻪ ﺧﻮاﻫﺪ ﺷﺪ. • ﺟﻮاب ﺗﻤﺮﯾﻦﻫﺎی ﻋﻤﻠﯽ ﺧﻮد را ﻣﯽﺑﺎﯾﺴﺖ ﺑﻪ ﺻﻮرت ﯾﮏ ﻓﺎﯾﻞ ﻓﺸﺮده ﺑﺎ ﻧﺎم HW4-[STUDENT-ID].zipاز ﻃﺮﯾﻖ اﯾﻤﯿﻞ ﺑﺎ ﻣﻮﺿﻮع ] HW4-[STUDENT-IDﺑﻪ [email protected]ارﺳﺎل ﮐﻨﯿﺪ. • ﺗﻤﺎم ﻓﺎﯾﻞﻫﺎی ارﺳﺎﻟﯽ در اﻧﺘﻬﺎ ﻣﻮرد ﺑﺮرﺳﯽ ﺗﻘﻠﺐ ﻗﺮار ﺧﻮاﻫﻨﺪ ﮔﺮﻓﺖ .اﻣﮑﺎن ﮐﺸﻒ ﺗﻘﻠﺐ ﺣﺘﯽ ﺑﺎ ﺗﻐﯿﯿﺮات ﺑﺴﯿﺎر ﻧﯿﺰ ﺗﻮﺳﻂ اﺑﺰارﻫﺎی ﻣﻮﺟﻮد اﻣﮑﺎنﭘﺬﯾﺮ اﺳﺖ. ﺳﻮاﻻت ﺗﺌﻮری ) ۵۵ﻧﻤﺮه( ١ ١.١ ﮐﻠﯿﺪﻫﺎی ﺑﺮق در ﺳﺎﺧﺘﻤﺎﻧﯽ nﻻﻣﭗ دارﯾﻢ )} (L = {l١ , l٢ , , lnﮐﻪ ﻫﻤﮕﯽ در اﺑﺘﺪا ﺧﺎﻣﻮشاﻧﺪ .اﯾﻦ ﺳﺎﺧﺘﻤﺎن mﮐﻠﯿﺪ ﺑﺮق دارد )} .(B = {b١ , b٢ , , bnﮐﻠﯿﺪ b jﺑﻪ ﻻﻣﭗﻫﺎی Tj ⊂ Lﻣﺘﺼﻞ اﺳﺖ .ﺑﺎ ﺗﻐﯿﯿﺮ وﺿﻌﯿﺖ ﻫﺮ ﮐﻠﯿﺪ ﺗﻤﺎم ﻻﻣﭗﻫﺎی ﻣﺘﺼﻞ ﺑﻪ آن ﺗﻐﯿﯿﺮ وﺿﻌﯿﺖ ﻣﯽدﻫﻨﺪ .دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ ﯾﮏ ﻻﻣﭗ ﺑﻪ ﭼﻨﺪ ﮐﻠﯿﺪ ﻣﺘﺼﻞ ﺑﺎﺷﺪ .ﻣﯽﺧﻮاﻫﯿﻢ ﺑﺎ ﻓﺸﺮدن دﻧﺒﺎﻟﻪ ای از ﮐﻠﯿﺪﻫﺎ ﺗﻤﺎم ﻻﻣﭗﻫﺎ را روﺷﻦ ﮐﻨﯿﻢ. .١ﻧﺸﺎن دﻫﯿﺪ ﮐﺎﻓﯽ اﺳﺖ ﻫﺮ ﮐﻠﯿﺪ را ﺣﺪاﮐﺜﺮ ﯾﮏ ﺑﺎر ﺗﻐﯿﯿﺮ وﺿﻌﯿﺖ دﻫﯿﻢ ﺗﺎ ﺗﻤﺎم ﻻﻣﭗﻫﺎ روﺷﻦ ﺷﻮد ٢) .ﻧﻤﺮه( .٢ﻧﺸﺎن دﻫﯿﺪ ﺗﺮﺗﯿﺐ ﻓﺸﺮدن ﮐﻠﯿﺪﻫﺎ اﻫﻤﯿﺘﯽ در ﻧﺘﯿﺠﻪ ﻧﺪارد ٢) .ﻧﻤﺮه( .٣ﻣﺴﺌﻠﻪ را ﺑﻪ ﺻﻮرت ﯾﮏ ﻣﺴﺌﻠﻪی ارﺿﺎی ﻣﺤﺪودﯾﺖ ﻣﺪل ﮐﻨﯿﺪ) .ﻣﺘﻐﯿﺮﻫﺎ ،داﻣﻨﻪی ﻣﺘﻐﯿﺮﻫﺎ و ﻣﺤﺪودﯾﺖﻫﺎ را ذﮐﺮ ﮐﻨﯿﺪ( ) ۵ﻧﻤﺮه( .۴ﻓﺮض ﮐﻨﯿﺪ ﺑﻪ دﻟﯿﻞ اﺗﺼﺎﻻت رخ داده در ﺳﯿﻢﮐﺸﯽ ﺳﺎﺧﺘﻤﺎن اﮔﺮ ٣ﮐﻠﯿﺪ ﻣﺘﻮاﻟﯽ روﺷﻦ ﺑﺎﺷﺪ ﻻﻣﭗﻫﺎ ﻣﯽﺳﻮزﻧﺪ .ﺑﺎ اﻓﺰودن ﮐﻤﺘﺮﯾﻦ ﻣﺤﺪودﯾﺖﻫﺎ ﻣﺪل ﻗﺴﻤﺖ ﻗﺒﻞ را ﺑﻪ اﯾﻦ ﻣﺴﺌﻠﻪ ﺗﺒﺪﯾﻞ ﮐﻨﯿﺪ ۴) .ﻧﻤﺮه( ٢.١ رﻧﮓآﻣﯿﺰی ﻧﻘﺸﻪ ﻣﯽﺧﻮاﻫﯿﻢ ﻧﻘﺸﻪ اﺳﺘﺮاﻟﯿﺎ را ﺑﻪ ﺳﻪ رﻧﮓ ﻗﺮﻣﺰ ،ﺳﺒﺰ و آﺑﯽ رﻧﮓآﻣﯿﺰی ﮐﻨﯿﻢ )ﺷﮑﻞ .(١اﻟﮕﺮﯾﺘﻢ AC-٣را ﺑﻪ ﮐﺎر ﮔﯿﺮﯾﺪ و ﻧﺸﺎن دﻫﯿﺪ ﮐﻪ ﻣﯽﺗﻮان از اﯾﻦ ﻃﺮﯾﻖ ﻧﺎﺳﺎزﮔﺎری ﻣﻘﺪاردﻫﯽ WA = redو V = blueرا ﺗﺸﺨﯿﺺ داد ٨) .ﻧﻤﺮه( ١ ﺷﮑﻞ :١ﻧﻘﺸﻪ اﺳﺘﺮاﻟﯿﺎ ٣.١ ﻋﻤﻠﮕﺮ در ﻣﻨﻄﻖ ﮔﺰارهای ﻣﯽداﻧﯿﻢ در ﻣﻨﻄﻖ ﮔﺰارهای ﻓﻘﻂ ﻋﻤﻠﮕﺮﻫﺎی → ¬, ∧, ∨, ↔,را دارﯾﻢ .ﻋﻤﻠﮕﺮ ◦rرا ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣﯽﮐﻨﯿﻢ: r f g f ◦r g ٠ ٠ ٠ ٠ ٠ ٠ ١ ٠ ٠ ١ ٠ ١ ٠ ١ ١ ١ ١ ٠ ٠ ٠ ١ ٠ ١ ١ ١ ١ ٠ ٠ ١ ١ ١ ١ ﺟﺪول :١ﺟﺪول درﺳﺘﯽ ﺑﺎ اﺳﺘﻔﺎده از ﻋﻤﻠﮕﺮﻫﺎی ﻣﻨﻄﻖ ﮔﺰارهای و f ،rو gﻋﺒﺎرﺗﯽ ﻫﻢارز f ◦r gﺑﻨﻮﯾﺴﯿﺪ .در ﯾﮏ ﺟﻤﻠﻪ ﺷﺮح دﻫﯿﺪ ﻋﻤﻠﮕﺮ ◦r ﭼﻪ ﻣﯽﮐﻨﺪ؟ ) ۵ﻧﻤﺮه( ۴.١ درﺟﻪی درﺳﺘﯽ ﻣﺸﺨﺺ ﮐﻨﯿﺪ ﻫﺮ ﯾﮏ از ﻋﺒﺎرات زﯾﺮ ﻫﻤﯿﺸﻪ درﺳﺖ ،ﻫﻤﯿﺸﻪ ﻧﺎدرﺳﺖ ﯾﺎ در ﺑﻌﻀﯽ ﺣﺎﻻت درﺳﺖ و در ﺑﻌﻀﯽ ﻧﺎدرﺳﺖ اﺳﺖ؟ اﮔﺮ در ﺑﻌﻀﯽ ﺣﺎﻻت درﺳﺖ و در ﺑﻌﻀﯽ ﻧﺎدرﺳﺖ اﺳﺖ ﺑﺮای ﺣﺎﻟﺖ درﺳﺖ و ﻧﺎدرﺳﺖ ﻣﺜﺎل ﺑﺰﻧﯿﺪ .اﮔﺮ ﻫﻤﯿﺸﻪ درﺳﺖ ﯾﺎ ﻫﻤﯿﺸﻪ ﻧﺎدرﺳﺖ اﺳﺖ ﺑﻪ وﺳﯿﻠﻪی resolutionﺛﺎﺑﺖ ﮐﻨﯿﺪ ١٠) .ﻧﻤﺮه( (( P → Q) ∧ ( R → S) ∧ ( P ∨ R)) → ( Q ∨ S) .١ (∀ x ∃yP( x, y)) → (∃ xP( x, x )) .٢ ٢ ۵.١ ﺷﺠﺮه ﻧﺎﻣﻪ ﻣﯽﺧﻮاﻫﯿﻢ ﺑﺎ اﺳﺘﻔﺎده از ﻣﻨﻄﻖ ﻣﺮﺗﺒﻪ اول ﭘﺎﯾﮕﺎه داﻧﺸﯽ ﺑﺮای ﻧﮕﻬﺪاری رواﺑﻂ ﺧﺎﻧﻮادﮔﯽ ﺷﺶ ﻧﻔﺮ ﺑﻪ ﻧﺎمﻫﺎی ﻋﻠﯽ (A)، ﺣﺴﻦ) ، (Hﺑﺎﺑﮏ) ، (Bﺳﺎرا) ، (Sﻣﺮﯾﻢ) (Mو ﻟﯿﻼ) (Lﺑﺴﺎزﯾﻢ. .١ﺑﺎ اﺳﺘﻔﺎده از رواﺑﻂ ﯾﮕﺎﻧﯽ Maleو Femaleﻋﺒﺎراﺗﯽ ﻧﺸﺎندﻫﻨﺪه اﯾﻦ ﺣﻘﺎﯾﻖ ﮐﻪ ﻋﻠﯽ ،ﺣﺴﻦ و ﺑﺎﺑﮏ ﻣﺮد و ﺳﺎرا و ﻣﺮﯾﻢ و ﻟﯿﻼ زن ﻫﺴﺘﻨﺪ ﺑﻨﻮﯾﺴﯿﺪ ١) .ﻧﻤﺮه( .٢ﺑﺎ اﺳﺘﻔﺎده از راﺑﻄﻪ دوﮔﺎﻧﯽ Childﻣﺸﺨﺺ ﮐﻨﯿﺪ ﮐﻪ :ﺣﺴﻦ و ﻟﯿﻼ ﻓﺮزﻧﺪان ﺑﺎﺑﮏ اﻧﺪ .ﻟﯿﻼ دو ﻓﺮزﻧﺪ دارد :ﻋﻠﯽ و ﺳﺎرا .ﻣﺮﯾﻢ ﻓﺮزﻧﺪ ﺳﺎراﺳﺖ ٢) .ﻧﻤﺮه( .٣دو ﻓﺮﻣﻮل ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ دو راﺑﻄﻪی دوﮔﺎﻧﯽ Parentو ) Siblingﺧﻮاﻫﺮ ﯾﺎ ﺑﺮادر ﺑﻮدن( را ﺑﻪ راﺑﻄﻪ Childﻣﺮﺗﺒﻂ ﮐﻨﺪ ٢) .ﻧﻤﺮه( .۴ﻓﺮﻣﻮﻟﯽ ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ راﺑﻄﻪی دوﮔﺎﻧﯽ ) Relativeﺧﻮﯾﺸﺎوﻧﺪ( را ﺑﺎ رواﺑﻂ Parentو Childﻣﺮﺗﺒﻂ ﺳﺎزد ٢) .ﻧﻤﺮه( .۵ﯾﮏ ﺑﺎر ﺑﺎ اﺳﺘﻔﺎده از اﻟﮕﺮﯾﺘﻢ Chaining Forwardو ﺳﭙﺲ ﺑﺎ اﺳﺘﻔﺎده از اﻟﮕﺮﯾﺘﻢ Chaining Backwardﺛﺎﺑﺖ ﮐﻨﯿﺪ ﮐﻪ ﺣﺴﻦ و ﻣﺮﯾﻢ ﺧﻮﯾﺸﺎوﻧﺪ اﻧﺪ ١٢) .ﻧﻤﺮه( ٢ ﺳﻮاﻻت ﻋﻤﻠﯽ ) ۴۵+١۵ﻧﻤﺮه( ﺳﻮاﻻت زﯾﺮ را ﺑﺎ اﺳﺘﻔﺎده از زﺑﺎن Prologﺣﻞ ﻧﻤﺎﯾﯿﺪ .دﻗﺖ ﺷﻮد ﮐﻪ اﺳﻢ و ﺗﺮﺗﯿﺐ ﭘﺎراﻣﺘﺮﻫﺎی ﺑﺮﻧﺎﻣﻪﻫﺎی ﺧﻮاﺳﺘﻪ ﺷﺪه ﺑﻪ ﻫﻤﺎن ﺗﺮﺗﯿﺐ ﻣﺜﺎلﻫﺎ ﺑﺎﺷﺪ. ١.٢ ﻓﺸﺮده ﺳﺎزی ) ١٢ﻧﻤﺮه( ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﯾﮏ ﻟﯿﺴﺖ را ﮔﺮﻓﺘﻪ و ﻓﺸﺮدهی آن را ﺑﻪ ﺻﻮرت ﻟﯿﺴﺘﯽ از ] [n, cﻫﺎ ﺑﺮﮔﺮداﻧﺪ ﮐﻪ nﺗﻌﺪاد آﯾﺘﻢﻫﺎی ﯾﮑﺴﺎن cاﺳﺖ ﮐﻪ در ﻟﯿﺴﺖ ورودی ﭘﺸﺖ ﺳﺮ ﻫﻢ آﻣﺪه اﻧﺪ .ﺗﺮﺗﯿﺐ ﺑﺎﯾﺪ در ﺧﺮوﺟﯽ ﺣﻔﻆ ﺷﻮد .ﻣﺜﺎل: ?- compress([x,x,x,y,y,z,w,w,w,w,x,x],X). ]]X = [[3,x],[2,y],[1,z],[4,w],[2,x ٢.٢ اﻋﺪاد ﻧﺴﺒﺖ ﺑﻪ ﻫﻢ اول ) ١٠ﻧﻤﺮه( ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ دو ﻋﺪد را ﮔﺮﻓﺘﻪ و ﺑﮕﻮﯾﺪ ﮐﻪ ﻧﺴﺒﺖ ﺑﻪ ﻫﻢ اول اﻧﺪ ﯾﺎ ﺧﯿﺮ .ﻣﺜﺎل: ?- coprime(93,56). Yes ٣ ٣.٢ ﺣﺪس ﮔﻠﺪﺑﺎخ ) ١١ﻧﻤﺮه( ﺣﺪس ﮔﻠﺪﺑﺎخ ﻣﯽﮔﻮﯾﯿﺪ ﻫﺮ ﻋﺪد زوج ﺑﺰرﮔﺘﺮ از ٢را ﻣﯽﺗﻮان ﺑﻪ ﺷﮑﻞ ﻣﺠﻤﻮع دو ﻋﺪد اول ﻧﻮﺷﺖ .ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﯾﮏ ﻋﺪد زوج را ﮔﺮﻓﺘﻪ و دو ﻋﺪد اول ﮐﻪ ﻣﺠﻤﻮﻋﺸﺎن ﺑﺮاﺑﺮ ﺑﺎ ورودی اﺳﺖ را در ﺧﺮوﺟﯽ ﺑﺪﻫﺪ .ﻣﺜﺎل: ?- goldbach(58,X,Y). X = 5 Y = 53 ۴.٢ درﺟﻪی رﺋﻮس ) ١٢ﻧﻤﺮه( ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﮔﺮاﻓﯽ را ﺑﻪ ﺻﻮرت ] (g([V1,V2,...],[e(V1,V3),...ﺑﮕﯿﺮد و درﺟﻪی رﺋﻮس آن را ﺑﻪ ﺻﻮرت ﻟﯿﺴﺘﯽ از ] [v, dﻫﺎ ﺑﺪﻫﺪ ﮐﻪ vراس ﮔﺮاف و dدرﺟﻪی آن اﺳﺖ .ﻣﺜﺎل: ?- degreelist(g([a,b,c,d],[e(a,b),e(b,c),e(b,d),e(a,d)]),X). ]]X = [[a,2],[b,3],[c,1],[d,2 ۵.٢ ﻧﻮﻧﻮﮔﺮام ) ١۵ﻧﻤﺮه اﻣﺘﯿﺎزی( ﻧﺎﻧﻮﮔﺮام ﻧﻮﻋﯽ ﺑﺎزی ﻓﮑﺮی اﺳﺖ ﺑﻪ اﯾﻦ ﺻﻮرت ﮐﻪ ﺗﻌﺪادی از ﺧﺎﻧﻪﻫﺎی ﺟﺪوﻟﯽ )در اﯾﻨﺠﺎ (۵ ∗ ۵رﻧﮓ ﺷﺪه در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽﺷﻮد و در ﮐﻨﺎر ﻫﺮ ﺳﻄﺮ و ﺳﺘﻮن ﺗﻌﺪاد ﺧﺎﻧﻪﻫﺎی ﭘﺸﺖ ﺳﺮ ﻫﻢ در آن ﺳﻄﺮ ﯾﺎ ﺳﺘﻮن ﮐﻪ رﻧﮓ ﺷﺪه اﻧﺪ ﻧﻮﺷﺘﻪ ﻣﯽﺷﻮد .ﮐﺴﯽ ﮐﻪ ﻣﯽﺧﻮاﻫﺪ ﻣﺴﺌﻠﻪ را ﺣﻞ ﮐﻨﺪ ﺑﺎﯾﺪ از روی اﻋﺪاد ﻧﻮﺷﺘﻪ ﺷﺪه ﮐﻨﺎر ﺳﻄﺮﻫﺎ و ﺳﺘﻮنﻫﺎ ﺧﺎﻧﻪﻫﺎی رﻧﮓ ﺷﺪه را ﺗﺸﺨﯿﺺ دﻫﺪ. ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺷﮑﻞ ٢ﺟﺪول را ﻗﺒﻞ از ﺣﻞ ﺷﺪن و ﺷﮑﻞ ٣ﺟﺪول را ﺑﻌﺪ از ﺣﻞ ﺷﺪن ﻧﺸﺎن ﻣﯽدﻫﺪ: ﺷﮑﻞ :٢ﺟﺪول ﻗﺒﻞ از ﺣﻞ ﺷﮑﻞ :٣ﺟﺪول ﺑﻌﺪ از ﺣﻞ ۴ ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﺑﻪ ﺗﺮﺗﯿﺐ اﻋﺪاد ﮐﻨﺎر ﺳﻄﺮﻫﺎ و زﯾﺮ ﺳﺘﻮن ﻫﺎ را در ﻗﺎﻟﺐ دو ﻟﯿﺴﺖ ﺑﮕﯿﺮد و ﺧﺮوﺟﯽ را در ﻗﺎﻟﺐ ﯾﮏ ﻟﯿﺴﺖ از ﺳﻄﺮﻫﺎ ﮐﻪ ﻫﺮ ﺳﻄﺮ ﺑﻪ ﺻﻮرت ﻟﯿﺴﺘﯽ از ’) ‘Xﺑﺮای ﺧﺎﻧﻪﻫﺎی ﭘﺮ( و ’) ‘.ﺑﺮای ﺧﺎﻧﻪﻫﺎی ﺧﺎﻟﯽ( اﺳﺖ ﺗﻮﻟﯿﺪ ﮐﻨﺪ. در ﺻﻮرت وﺟﻮد ﺑﯿﺶ از ﯾﮏ ﺟﻮاب ،ﯾﮏ ﺟﻮاب ﮐﺎﻓﯽ اﺳﺖ .در زﯾﺮ ﻣﺜﺎل ورودی و ﺧﺮوﺟﯽ ﺑﺮای ﺷﮑﻞ ٢و ٣آﻣﺪه اﺳﺖ: ?- nonogram([[1,1],[1,1,1],[3,1],[1,1,1],[1,1,1]],[[4],[1,1],[4],[],[5]],X). ]’X = [[‘.’,‘X’,‘.’,‘.’,‘X’],[‘X’,‘.’,‘X’,‘.’,‘X’],[‘X’,‘X’,‘X’,‘.’,‘X ]]’, [‘X’,‘.’,‘X’,‘.’,‘X’],[‘X’,‘.’,‘X’,‘.’,‘X ﻣﻮﻓﻖ ﺑﺎﺷﯿﺪ. ۵
© Copyright 2026 Paperzz