Design of Algorithms.pdf

‫ﻃﺮاﺣﻲ اﻟﮕﻮرﻳﺘﻢﻫﺎ )‪(40-354‬‬
‫‪Design of Algorithms‬‬
‫داﻧﺸﻜﺪهي ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫ﻣﺪرس‪ :‬ﻣﺤﻤﺪﻋﻠﻲ آﺑﺎم‬
‫ﻛﻠﻴﺎت‬
‫ﻫﺪف از اﻳﻦ درس‪ ،‬آﺷﻨﺎﻳﻲ داﻧﺶﺟﻮﻳﺎن ﺑﺎ روشﻫﺎي ﻣﺘﺪاول در ﻃﺮاﺣﻲ اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻛﺎرا ﺑﺮاي ﻣﺴﺎﺋﻞ ﻣﺨﺘﻠﻒ اﺳﺖ‪ .‬در اراﺋﻪي‬
‫ﻣﻄﺎﻟﺐ‪ ،‬ﺑﺮ ﺗﺤﻠﻴﻞ ﻛﺎراﻳﻲ اﻟﮕﻮرﻳﺘﻢﻫﺎ و اﺛﺒﺎت درﺳﺘﻲ آنﻫﺎ ﺗﺄﻛﻴﺪ ﺧﻮاﻫﺪ ﺷﺪ‪ .‬ﻫﻤﭽﻨﻴﻦ‪ ،‬ﻣﻮﺿﻮﻋﺎت ﻣﻬﻤﻲ از اﻟﮕﻮرﻳﺘﻢﻫﺎ ﻫﻤﭽﻮن‬
‫ﻧﻈﺮﻳﻪي انﭘﻲ‪-‬ﺗﻤﺎم‪ ،‬اﻟﮕﻮرﻳﺘﻢﻫﺎي ﮔﺮاف و ﺷﺒﻜﻪﻫﺎي ﺷﺎره در اﻳﻦ درس اراﺋﻪ ﺧﻮاﻫﻨﺪ ﺷﺪ‪.‬‬
‫رﻳﺰ ﻣﻮاد‬
‫‪ .1‬ﻣﻘﺪﻣﺎت )‪ 2‬ﺟﻠﺴﻪ(‬
‫• ﺣﻞ ﻣﺴﺌﻠﻪ‪ ،‬دﻧﺒﺎﻟﻪي ﻓﻴﺒﻮﻧﺎﭼﻲ‬
‫• ﺑﺰرگﺗﺮﻳﻦ زﻳﺮدﻧﺒﺎﻟﻪي ﻣﺘﻮاﻟﻲ‪ ،‬ﻣﺴﺌﻠﻪي ‪-3‬ﻣﺠﻤﻮع‬
‫‪ .2‬اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻣﺒﺘﻨﻲ ﺑﺮ اﺳﺘﻘﺮا )‪ 2‬ﺟﻠﺴﻪ(‬
‫• ارزﻳﺎﺑﻲ ﭼﻨﺪﺟﻤﻠﻪاي‪ ،‬ﻧﮕﺎﺷﺖ ﻳﻚﺑﻪﻳﻚ‪ ،‬ﺳﺘﺎرهي ﻣﺸﻬﻮر‬
‫• ﻣﺴﺌﻠﻪي اﺳﺘﺨﺪام‪ ،‬ﻛﻮﭼﻚﺗﺮﻳﻦ داﻳﺮهي ﻣﺤﻴﻄﻲ‬
‫‪ .3‬روش ﺗﻘﺴﻴﻢ و ﺣﻞ )‪ 3‬ﺟﻠﺴﻪ(‬
‫• آﺳﻤﺎنﺧﺮاشﻫﺎ‪ ،‬ﻣﺤﺎﺳﺒﻪي ﺗﻮان‪ ،‬ﻧﺰدﻳﻚﺗﺮﻳﻦ زوج ﻧﻘﺎط‬
‫• ﺿﺮب اﻋﺪاد ﺑﺰرگ‪ ،‬اﻟﮕﻮرﻳﺘﻢ اﺳﺘﺮاﺳﻦ‬
‫• ﺷﺒﻜﻪﻫﺎي ﻣﺮﺗﺐﺳﺎز‬
‫‪ .4‬اﻟﮕﻮرﻳﺘﻢﻫﺎي ﺣﺮﻳﺼﺎﻧﻪ )‪ 3‬ﺟﻠﺴﻪ(‬
‫• زﻣﺎنﺑﻨﺪي‪ ،‬ﺧﺮدﻛﺮدن ﭘﻮل‬
‫• ﻛﻮﻟﻪﭘﺸﺘﻲ ﻛﺴﺮي‪ ،‬ازدواج ﭘﺎﻳﺪار‬
‫• ﻓﺸﺮدهﺳﺎزي‪ :‬ﻛﺪﮔﺬاري ﻫﺎﻓﻤﻦ‬
‫‪ .5‬ﺑﺮﻧﺎﻣﻪرﻳﺰي ﭘﻮﻳﺎ )‪ 3‬ﺟﻠﺴﻪ(‬
‫• ﺿﺮاﻳﺐ دوﺟﻤﻠﻪاي‪ ،‬ﺧﺮدﻛﺮدن ﭘﻮل‪ ،‬ﺿﺮب ﻣﺎﺗﺮﻳﺲﻫﺎ‬
‫• ﻛﻮﻟﻪﭘﺸﺘﻲ‪ ،‬ﻣﺜﻠﺚﺑﻨﺪي ﺑﻬﻴﻨﻪ‬
‫• ﺑﺰرگﺗﺮﻳﻦ زﻳﺮدﻧﺒﺎﻟﻪي ﻣﺸﺘﺮك‬
‫‪ .6‬روش ﭘﺲﮔﺮد )‪ 2‬ﺟﻠﺴﻪ(‬
‫• ﻣﺴﺌﻠﻪي ﻫﺸﺖ وزﻳﺮ‪ ،‬درﺧﺖ ﺑﺎزي‬
‫• اﻧﺸﻌﺎب و ﺣﺪ‪ ،‬ﻓﺮوﺷﻨﺪهي دورهﮔﺮد‬
‫‪ .7‬اﻟﮕﻮرﻳﺘﻢﻫﺎي ﮔﺮاف )‪ 5‬ﺟﻠﺴﻪ(‬
‫• ﭘﻴﻤﺎﻳﺶ ﻋﻤﻖاول و ﺳﻄﺢاول‬
‫• ﻣﺴﺎﺋﻞ ﻫﻤﺒﻨﺪي‪ ،‬ﺗﺮﺗﻴﺐ ﺗﻮﭘﻮﻟﻮژﻳﻜﻲ‬
‫• درﺧﺖ ﭘﻮﺷﺎي ﻛﻤﻴﻨﻪ )اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻛﺮوﺳﻜﺎل و ﭘﺮﻳﻢ(‬
‫• ﻛﻮﺗﺎهﺗﺮﻳﻦ ﻣﺴﻴﺮ از ﻳﻚ راس )اﻟﮕﻮرﻳﺘﻢﻫﺎي داﻳﻜﺴﺘﺮا‪ ،‬ﺑﻠﻤﻦ‪-‬ﻓﻮرد(‬
‫• ﻛﻮﺗﺎهﺗﺮﻳﻦ ﻣﺴﻴﺮ ﺑﻴﻦ ﺗﻤﺎم راسﻫﺎ )اﻟﮕﻮرﻳﺘﻢ ﺟﺎﻧﺴﻮن و ﻓﻠﻮﻳﺪ‪-‬وارﺷﺎل(‬
‫‪ .8‬ﺷﺒﻜﻪﻫﺎي ﺷﺎره )‪ 2‬ﺟﻠﺴﻪ(‬
‫• ﺷﺎر ﺑﻴﺸﻴﻨﻪ و ﺑﺮش ﻛﻤﻴﻨﻪ‪ ،‬اﻟﮕﻮرﻳﺘﻢ ﻓﻮرد‪-‬ﻓﺎﻟﻜﺮﺳﻦ‬
‫• ﻛﺎرﺑﺮدﻫﺎ‪ :‬ﺗﻄﺎﺑﻖ‪ ،‬ﮔﻤﺎرش‪ ،‬ﻣﺴﻴﺮﻫﺎي ﻣﺠﺰا‬
‫‪ .9‬ﻧﻈﺮﻳﻪي ﭘﻴﭽﻴﺪﮔﻲ )‪ 5‬ﺟﻠﺴﻪ(‬
‫• ردهﻫﺎي ﭘﻲ و انﭘﻲ‪ ،‬ﻛﺎﻫﺶ ﭼﻨﺪﺟﻤﻠﻪاي‬
‫• روش اﺛﺒﺎت انﭘﻲ‪-‬ﺗﻤﺎم ﺑﻮدن ﻳﻚ ﻣﺴﺌﻠﻪ‪ ،‬ﻗﻀﻴﻪي ﻛﻮك‬
‫• ﻣﺴﺎﺋﻞ اﺻﻠﻲ‪-3 :‬ﺻﺪقﭘﺬﻳﺮي‪ ،‬دور ﻫﻤﻴﻠﺘﻨﻲ‬
‫• ﭘﻮﺷﺶ رأﺳﻲ‪ ،‬ﻣﺠﻤﻮﻋﻪي ﻣﺴﺘﻘﻞ‪ ،‬ﺧﻮﺷﻪ‬
‫• رﻧﮓآﻣﻴﺰي ﮔﺮاف‪ ،‬ﻣﺠﻤﻮع زﻳﺮﻣﺠﻤﻮﻋﻪﻫﺎ‪ ،‬زﻣﺎنﺑﻨﺪي‬
‫• اﻟﮕﻮرﻳﺘﻢﻫﺎي ﺗﻘﺮﻳﺒﻲ ﺑﺮاي ﻣﺴﺎﺋﻞ انﭘﻲ‪-‬ﺳﺨﺖ‬
‫آزﻣﻮن ‪ -‬ﺗﻤﺮﻳﻦ ‪ -‬ﭘﺮوژه‬
‫•‬
‫دو ﺗﻤﺮﻳﻦ ﻛﺘﺒﻲ و ﺳﻪ آزﻣﻮﻧﻚ )‪ 4‬ﻧﻤﺮه(‬
‫•‬
‫ﺳﻪ ﺗﻤﺮﻳﻦ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ )‪ 4‬ﻧﻤﺮه(‬
‫•‬
‫ﻳﻚ ﻣﺴﺎﺑﻘﻪ ﺑﻪ ﺳﺒﻚ ايﺳﻲام )‪ +1,5‬ﻧﻤﺮه(‬
‫•‬
‫آزﻣﻮن ﻣﻴﺎنﺗﺮم )‪ 5‬ﻧﻤﺮه(‬
‫•‬
‫آزﻣﻮن ﭘﺎﻳﺎﻧﻲ )‪ 7‬ﻧﻤﺮه(‬
‫ ‬
‫‪T. Cormen, C. Leiserson, R. Riverst, and C. Stein, Introduction to Algorithms, 3rd edition, MIT‬‬
‫‪Press, 2009.‬‬
‫•‬
‫ﻣﺮاﺟﻊ ﻛﻤﻜﻲ‬
‫‪J. Kleinberg and E. Tardos, Algorithm Design, Addison Wesley, 2005.‬‬
‫•‬
‫‪U. Manber, Introduction to Algorithms: A Creative Approach, Addison Wesley, 1989.‬‬
‫•‬
‫‪G. Brassard, P. Bratley, Algorithmics: Theory and Practice, Prentice-Hall, 1988.‬‬
‫•‬
‫‪٢‬‬