You are on page 1of 5

‫ﺑﺴﻤﻪ ﺗﻌﺎﻟﯽ‬

‫ﻓﺼﻞ ﺳﻮم – ﺑﺨﺶ ﺳﻮم‬

‫‪ .1‬ﺗﻌﺪاد وﺟﻮه‪ 1‬روﯾﮫ ﻣﺤﺪب‬


‫ﻗﻀﯿﮫ ‪ .1‬ﻓﺮض ﮐﻨﯿﺪ ‪ d‬ﯾﮏ ﺛﺎﺑﺖ ﻣﺸﺨﺺ و ‪ n‬ﯾﮏ ﻋﺪد دﻟﺨﻮاه‬
‫ﺑﺎﺷﺪ‪.‬‬

‫‪ .2‬اﻟﮕﻮرﯾﺘﻢھﺎي ﺣﺴﺎس ﺑﮫ ﺧﺮوﺟﻲ‬

‫‪ .3‬اﻟﮕﻮرﯾﺘﻢ ﮐﺎدوﭘﯿﭽﻲ‬
‫اﯾﻦ اﻟﮕﻮرﯾﺘﻢ در اﻟﮕﻮرﯾﺘﻢ ‪ 1‬ﺧﻼﺻﮫ ﺷﺪه اﺳﺖ‪.‬‬

‫)‪def jarvis(P‬‬

‫‪i=0‬‬

‫‪p[0] = leftmost point of P‬‬

‫‪do‬‬

‫]‪p[i+1] = point such that all other points in P are to the right of the line p[i]p[i+1‬‬

‫‪i=i+1‬‬

‫]‪while p[i] != p[0‬‬

‫‪return p‬‬
‫اﻟﮕﻮرﯾﺘﻢ راھﭙﯿﻤﺎﯾﻲ ﺟﺎروﯾﺲ )ﮐﺎدوﭘﯿﭽﻲ(‬ ‫اﻟﮕﻮرﯾﺘﻢ ‪1‬‬

‫‪ .4‬اﻟﮕﻮرﯾﺘﻢ ‪QuickHull‬‬
‫آﻟﮕﻮرﯾﺘﻢ )‪:( Preparata & Shamos - 1985‬‬

‫اﻧﺎﻟﯿﺰ زﻣﺎن آﻟﮕﻮرﯾﺘﻢ‪:‬‬

‫‪QuickHull discards the points in ∆abc and ecurses‬‬


‫‪on A and B. Here A=∅ and |B| =2.‬‬

‫‪ .5‬اﺳﮑﻦ ﮔﺮاھﺎم‬

‫‪1‬‬
‫‪faces‬‬
‫‪1‬‬
‫ﻓﺼﻞ ﺳﻮم – ﺑﺨﺶ ﺳﻮم‬

‫ﺑﮭﯿﻨﮫ ‪2‬‬ ‫‪ .6‬ﯾﮏ اﻟﮕﻮرﯾﺘﻢ روﯾﮫ ﻣﺤﺪب‬


‫در اﯾﻨﺠﺎ ﯾﮏ اﻟﮕﻮرﯾﺘﻢ روﯾﮫ ﻣﺤﺪب ﻣﺘﻔﺎوت ﺑﺎ ﭘﯿﭽﯿﺪﮔﻲ‬
‫زﻣﺎﻧﻲ )‪ O(n log h‬در ﺻﻔﺤﮫ اراﺋﮫ ﻣﻲﺷﻮد‪ ،‬ﮐﮫ ﻣﻲﺗﻮاﻧﺪ ﺑﮫ ﺳﮫ‬
‫ﺑﻌﺪ ﻧﯿﺰ ﺑﺴﻂ داده ﺷﻮد‪ .‬ﺑﺴﻂ اﯾﻦ اﻟﮕﻮرﯾﺘﻢ ﺑﮫ ﺳﮫ ﺑﻌﺪ‬
‫ﺳﺎدهﺗﺮ از روش ﺑﮭﯿﻨﮫي ‪ Chazelle‬و ‪ Matousek‬اﺳﺖ‪ .‬اﯾﺪه ﺑﮭﺒﻮد‬
‫ِﻋﻤﺎل ﯾﮏ اﯾﺪه‬ ‫راھﭙﯿﻤﺎﯾﻲ ﺟﺎروﯾﺲ و روش ﮐﺎدوﭘﯿﭽﻲ ﺑﺎ ا‬
‫ﮔﺮوهﺑﻨﺪي‪ 3‬اﺳﺖ‪ .‬اﯾﻦ اﯾﺪهي ﮔﺮوهﺑﻨﺪي ﻣﻲﺗﻮاﻧﺪ ﺑﮫ ﻣﺴﺎﺋﻞ‬
‫دﯾﮕﺮي ﻋﻼوه ﺑﺮ ﺳﺎﺧﺖ روﯾﮫھﺎي ﻣﺤﺪب ھﻤﭽﻮن ‪Lower Envelopes of Line‬‬
‫ِﻋﻤﺎل ﺷﻮد‪.‬‬
‫‪ Segments in the Plane‬ا‬

‫‪ .6.1‬اﻟﮕﻮرﯾﺘﻢ ﮔﺮوهﺑﻨﺪي‪-‬و‪-‬ﭘﯿﭽﯿﺪن‪ 4‬در ﺻﻔﺤﮫ‬


‫ﻧﻘﻄﮫ ﺑﺎﺷﺪ‪ .‬اﻟﮕﻮرﯾﺘﻢ‬ ‫ﻣﺠﻤﻮﻋﮫاي ﺑﺎ‬ ‫ﻓﺮض ﮐﻨﯿﺪ‬
‫ﻛﺎدوﭘﯿﭽﻲ ﺟﺎروﯾﺲ رﺋﻮس ‪ h‬روﯾﮫ ﻣﺤﺪب را ﯾﮑﻲ ﯾﮑﻲ‪ ،‬ﺑﮫ ﺗﺮﺗﯿﺐ‬
‫ﺧﻼف ﺟﮭﺖ ﻋﻘﺮﺑﮫھﺎي ﺳﺎﻋﺖ‪ ،‬ﺑﺎ دﻧﺒﺎﻟﮫاي ﺑﺎ ﺗﻌﺪاد ‪ h‬ﮔﺎم‬
‫ﭘﯿﭽﯿﺪن‪ ،‬اﯾﻦ روش ﺗﻤﺎم روﯾﮫ ﻣﺤﺪب را در زﻣﺎن )‪ O(nh‬ﻣﻲﺳﺎزد‪.‬‬
‫آﻟﮕﻮرﯾﺘﻢ‪:‬‬

‫ﯾﮏ ﭘﺎراﻣﺘﺮ ‪ m‬را ﺑﯿﻦ ‪ 1‬و ‪ n‬اﻧﺘﺨﺎب ﮐﻨﯿﺪ و ‪ P‬را ﺑﮫ‬


‫ﮔﺮوه ھﺮﮐﺪام ﺑﺎ اﻧﺪازهي ﺣﺪاﮐﺜﺮ ‪ m‬اﻓﺮاز ﮐﻨﯿﺪ‪.‬‬

‫روﯾﮫ ﻣﺤﺪب ھﺮﮔﺮوه را ﺑﺎ ﯾﻚ روش ﻣﺜﻼ ‪ ،‬اﺳﮑﻦ ﮔﺮاھﺎم در‬


‫زﻣﺎن )‪ O(m log m‬ﻣﺤﺎﺳﺒﮫ ﮐﻨﯿﺪ‪.‬‬

‫(‬ ‫)‬

‫ھﺮﮐﺪام‬ ‫ھﻢﭘﻮﺷﺎ ‪5‬‬ ‫ﭼﻨﺪﺿﻠﻌﻲ ﻣﺤﺪب اﺣﺘﻤﺎﻻ‬ ‫اﯾﻦ ﮐﺎر ﺑﮫ ﻣﺎ‬


‫ﺑﺎ ﺣﺪاﮐﺜﺮ ‪ m‬رأس ﻣﻲدھﺪ‪.‬‬
‫ﭼﻨﺪﺿﻠﻌﻲ‬ ‫ﺣﺎل‪ ،‬ﯾﮏ ﮔﺎم ﭘﯿﭽﯿﺪن ﻣﻲﺗﻮاﻧﺪ ﺑﺎ ﺑﺮرﺳﻲ ﺗﻤﺎم‬
‫و ﻣﺤﺎﺳﺒﮫي ﻣﻤﺎسھﺎ‪ 6‬ﯾﺎ ﺧﻄﻮط ﺣﻤﺎﯾﺘﻲ‪ 7‬ﭼﻨﺪﺿﻠﻌﻲھﺎ اﻧﺠﺎم ﺷﻮد‪،‬‬

‫از آﻧﺠﺎﯾﯿﮑﮫ ﯾﺎﻓﺘﻦ ﻣﻤﺎس ﺑﺮاي ﯾﮏ ﭼﻨﺪﺿﻠﻌﻲ ﻣﺤﺪب ﺑﺎ زﻣﺎن‬


‫ﻟﮕﺎرﯾﺘﻤﯿﮏ ﺻﻮرت ﻣﻲﮔﯿﺮد‬

‫‪2‬‬
‫‪From "Output-sensitive Construction of Convex Hulls" By Timothy Moon-Yew Chan‬‬
‫‪3‬‬
‫‪grouping‬‬
‫‪4‬‬
‫‪group-and-wrap‬‬
‫‪5‬‬
‫‪overlapping‬‬
‫‪6‬‬
‫‪tangents‬‬
‫‪7‬‬
‫‪supporting lines‬‬
‫‪2‬‬
‫ﻓﺼﻞ ﺳﻮم – ﺑﺨﺶ ﺳﻮم‬

‫اﺳﺖ‪ .‬از‬ ‫زﻣﺎن ﻣﻮرد ﻧﯿﺎز ﺑﺮاي ﯾﮏ ﮔﺎم ﭘﯿﭽﯿﺪن‬


‫آﻧﺠﺎﯾﯿﮑﮫ ﺗﻌﺪاد ‪ h‬ﮔﺎم ﭘﯿﭽﯿﺪن ﺑﺮاي ﻣﺤﺎﺳﺒﮫي روﯾﮫ ﻣﻮرد‬
‫ﻧﯿﺎز اﺳﺖ‪ ،‬زﻣﺎن ﮐﻞ اﻟﮕﻮرﯾﺘﻢ ﻣﻲﺷﻮد‪:‬‬

‫ﯾﻜﻲ از ﻛﺎرﺑﺮد ھﺎي اﯾﻦ روش در ﭘﺮدازش ﻣﻮازي ﻣﻲ ﺑﺎﺷﺪ‬

‫ﭼﻨﺪﺿﻠﻌﻲ ﺑﺎ اﻧﺪازهي ‪m‬‬ ‫ﺗﺼﻮﯾﺮ ‪ .1‬ﭘﯿﭽﯿﺪن ﻣﺠﻤﻮﻋﮫا ي از‬

‫‪3‬‬
‫ﻓﺼﻞ ﺳﻮم – ﺑﺨﺶ ﺳﻮم‬

‫اﻟﮕﻮرﯾﺘﻢ‬ ‫ﭘﯿﭽﯿﺪﮔﻲ‬ ‫‪،m‬‬ ‫=‬ ‫‪H‬‬ ‫اﻧﺘﺨﺎب‬ ‫ﺑﺎ‬


‫ﺧﻮاھﺪ ﺑﻮد‪ .‬از آﻧﺠﺎﯾﯿﮑﮫ ﻣﻘﺪار ‪h‬‬
‫از ﻗﺒﻞ ﺷﻨﺎﺧﺘﮫ ﺷﺪه ﻧﯿﺴﺖ‪ ،‬ﻣﺎ از دﻧﺒﺎﻟﮫاي از ‪ H‬ھﺎ ﺑﺮاي‬
‫»ﺣﺪس زدن« ﻣﻘﺪارش اﺳﺘﻔﺎده ﻣﻲﮐﻨﯿﻢ‪ ،‬ھﻤﺎن ﻃﻮر ﮐﮫ در زﯾﺮ‬
‫ﻧﺸﺎن داده ﺷﺪه اﺳﺖ )اﺳﺘﺮاﺗﮋي ﻣﺸﺎﺑﮭﻲ در اﻟﮕﻮرﯾﺘﻢ ‪Chazelle‬‬
‫و ‪ Matousek‬اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ(‪:‬‬

‫ر وﯾﮫ ﺑﮫ ﻣﺤﺾ اﯾﻨﮑﮫ ﻣﻘﺪار ‪ H‬در ﺣﻠﻘﮫي ‪ for‬ﺑﮫ ‪ h‬ﻣﻲرﺳﺪ ﯾﺎ‬


‫از آن ﻋﺒﻮر ﻣﻲﮐﻨﺪ‪ ،‬ﻣﺘﻮﻗﻒ ﻣﻲﺷﻮد‪ .‬ﺗﻌﺪاد ﺗﮑﺮارھﺎ در ﺣﻠﻘﮫ‬
‫اﺳﺖ‪ ،‬و ‪t‬‬ ‫)ﺑﺎ اﺳﺘﻔﺎده از ﻟﮕﺎرﯾﺘﻢھﺎي ﻣﺒﻨﺎي ‪(2‬‬
‫ﻣﻲﮔﯿﺮد‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬زﻣﺎن‬ ‫اﻣﯿﻦ ﺗﮑﺮار زﻣﺎن‬
‫‪ .‬ﻧﯿﺎزﻣﻨﺪي‬ ‫ﮐﻞ اﺟﺮاي اﻟﮕﻮرﯾﺘﻢ ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‬
‫ذﺧﯿﺮهﺳﺎزي ﺑﻮﺿﻮح ﺧﻄﻲ اﺳﺖ‪.‬‬

‫‪4‬‬
‫ﻓﺼﻞ ﺳﻮم – ﺑﺨﺶ ﺳﻮم‬

‫ﻧﻘﻄﮫاي‬-n ‫رأﺳﻲ ﻣﺠﻤﻮﻋﮫي‬-h ِ‫ روﯾﮫ ﻣﺤﺪب‬GroupHull2d() .2 ‫ﻗﻀﯿﮫ‬


‫ ﻣﺤﺎﺳﺒﮫ‬O(n) ‫ﺑﺎ اﺳﺘﻔﺎده از ﻓﻀﺎي‬ ‫را در زﻣﺎن‬
.‫ﻣﻲﮐﻨﺪ‬

‫ﻣﺮاﺟﻊ‬
 "Output-sensitive Construction of Convex Hulls" By Timothy Moon-Yew Chan
 http://en.wikipedia.org

You might also like