म
ᄺ
ԡ
䆎
᭛
䆎᭛乬Ⳃ 䴲㒧ᵘ࣪㔥Ḑ⫳៤ঞ݊ᑊ㸠࣪ⱘ㢹ᑆ䯂乬ⷨお
㗙ྦྷৡ
䰜ᓎݯ
ᣛᇐᬭᏜ
䚥㗔
ᄺ⾥(ϧϮ)
䅵ㅫᴎᑨ⫼ᡔᴃ
᠔ᄺ䰶
䅵ㅫᴎᄺ䰶
ᦤѸ᮹ᳳ
Ѡ䳊䳊݁ᑈಯ᳜
Unstructured Mesh Generation and Its Parallelization A Thesis by
Jianun Chen Advised by
Professor Yao Zheng
Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy
College of Computer Science Computer Science Department Zhejiang University Hangzhou 310027, P. R. China
Copyright © 2006 by Jianjun Chen
⣀߯ᗻໄᯢ ᴀҎໄᯢ᠔ਜѸⱘᄺԡ䆎᭛ᰃᴀҎᇐᏜᣛᇐϟ䖯㸠ⱘⷨおᎹঞপᕫⱘ ⷨお៤ᵰDŽ៥᠔ⶹˈ䰸њ᭛Ё⡍߿ࡴҹᷛ⊼㟈䇶ⱘഄᮍˈ䆎᭛Ёϡࣙ݊ ҪҎᏆ㒣থ㸼᪄ݭ䖛ⱘⷨお៤ᵰˈгϡࣙЎ㦋ᕫ ფߞӖ༰ ݊Ҫᬭ㚆ᴎ ᵘⱘᄺԡ䆕к㗠Փ⫼䖛ⱘᴤ᭭DŽϢ៥ϔৠᎹⱘৠᖫᇍᴀⷨお᠔ⱘخӏԩ䋵⤂ ഛᏆ䆎᭛Ёњᯢ⹂ⱘ䇈ᯢᑊ㸼⼎䇶ᛣDŽ
ᄺԡ䆎᭛㗙ㅒৡ˖
ㅒᄫ᮹ᳳ˖
ᑈ
᳜
᮹
ᄺԡ䆎᭛⠜ᴗՓ⫼ᥜᴗк ᴀᄺԡ䆎᭛㗙ᅠܼњ㾷
ფߞӖ༰ ֱ᳝݇⬭ǃՓ⫼ᄺԡ䆎᭛ⱘ㾘ᅮˈ
᳝ᴗֱ⬭ᑊᆊ᳝݇䚼䮼ᴎᵘ䗕Ѹ䆎᭛ⱘॄӊ⺕Ⲭˈܕ䆌䆎᭛㹿ᶹ䯙 ׳䯙DŽᴀҎᥜᴗ ფߞӖ༰ ৃҹᇚᄺԡ䆎᭛ⱘܼ䚼䚼ߚݙᆍ㓪᭄ܹ᳝݇ᑧ 䖯㸠Ẕ㋶ˈৃҹ䞛⫼ᕅॄǃ㓽ॄᠿᦣㄝࠊ↉ֱᄬǃ∛㓪ᄺԡ䆎᭛DŽ ˄ֱᆚⱘᄺԡ䆎᭛㾷ᆚৢ䗖⫼ᴀᥜᴗк˅ ᄺԡ䆎᭛㗙ㅒৡ˖ ㅒᄫ᮹ᳳ˖
ᑈ
ᇐᏜㅒৡ˖ ᳜
᮹
ㅒᄫ᮹ᳳ˖
ᄺԡ䆎᭛㗙↩Ϯৢএ˖ Ꮉऩԡ˖
⬉䆱˖
䗮䆃ഄഔ˖
䚂㓪˖
ᑈ
᳜
᮹
ᨬ㽕 㔥Ḑ⫳៤ᡔᴃᰃ᭄ؐ∖㾷ⱘࠡ໘⧚䖛ˈгᰃৢ㗙ᑨ⫼ᯊⱘЏ㽕ᗻ㛑⫊乜DŽ 䱣ⴔ㾘ᎹϢ⾥ᄺ䅵ㅫ䳔∖ⱘ᮹Ⲟ䖿ߛˈᑊ㸠㔥Ḑ⫳៤ᡔᴃⱘⷨお䰙Ϟ Ꮖ៤ЎϔϾᮄⱘⷨお⛁⚍ˈԚैݙ剰᳝Ҏ݇⊼DŽᴀ᭛ህ䴲㒧ᵘ࣪㔥Ḑ⫳៤ঞ ݊ᑊ㸠࣪ⷨお乚ඳⱘ㢹ᑆ䯂乬䖯㸠њ⏅ܹⱘⷨおDŽ 佪ˈܜᴀ᭛ᵘᓎњϔϾعໂ᳝ᬜⱘǃ䗖⫼Ѣ㉏ϝ㾦ᔶ㉏ಯ䖍ᔶऎඳⱘܼಯ 䖍ᔶऩܗൟᵓᮍḜˈᑊᇚ݊ᓩܹऎඳߚ㾷⊩ⱘᄤඳ㔥Ḑ⫳៤⦃㡖ˈܟ᳡њ⦄᳝ ᄤඳ㔥Ḑ⫳៤ㅫ⊩ЁᄤඳᷛޚᅮН䖛Ϲࠪߚ㾘߭䖛Ѣ㐕⧤ⱘ㔎⚍ˈᔶ៤ϔϾᮄ ⱘܼಯ䖍ᔶऩܗ㔥Ḑ⫳៤ㅫ⊩DŽ䱣ৢᑊ㸠њऎඳߚ㾷䖛ˈᑊᓩܹᄤඳˈ㒧ড় 䴭ᗕߦߚㄪ⬹ˈᕫࠄ䆹ㅫ⊩ⱘᑊ㸠⠜ᴀDŽ᠔ᕫࠄⱘᑊ㸠㔥Ḑ⫳៤఼ৃҹৠℹᅠ ៤ᑊ㸠㔥Ḑ⫳៤ঞߦߚˈҢ㗠ࡴ䗳ᭈϾᑊ㸠ᢳ䖛DŽ 䱣ৢˈᴀ᭛㋏㒳ഄⷨおњᑣ߫࣪ Delaunay 㔥Ḑ⫳៤DŽѢ Bowyer-Waston ᦦ⚍ݙḌˈᅲ⦄њ催䋼䞣ⱘѠ㓈ঞϝ㓈 Delaunay 㔥Ḑ⫳៤ᑣˈᑊѢ Delaunay 㔥Ḑ⫳៤ㅫ⊩ⱘ᳔ᮄⷨお៤ᵰˈህᑣⱘᯊぎᬜ⥛ǃعໂᗻǃ᭄㒧ᵘ䆒䅵ঞ䞡 㽕ᅲ⦄㒚㡖ሩᓔ䅼䆎DŽ 䖍⬠ᘶᰃ Delaunay 㔥Ḑ⫳៤ⱘЏ㽕ೄ䲒ПϔˈѢ㑺ᴳ໘Ⳉࡴ⚍ᘶ ⱘᗱ䏃ˈᴀ᭛ᅠᭈഄ䅼䆎њ䖍⬠ᘶЁৃ㛑䘛ࠄⱘ⾡ᚙᔶˈ㒭ߎњⳌᑨⱘ㾷 އᮍḜˈ᳔㒜㦋ᕫϔϾᬊᬯⱘϔ㟈䖍⬠ᘶㅫ⊩DŽ䗮䖛ᓩܹϔ㋏߫ᴀὖᗉǃ᭄ 㒧ᵘঞᴀ᪡ˈㅔ࣪њϔ㟈䖍⬠ᘶㅫ⊩ⱘᅲ⦄䖛DŽ Ўֱ䆕Ѹ⬠䴶㔥Ḑⱘϔ㟈ᗻˈѢऎඳߚ㾷ⱘᑊ㸠 Delaunay 㔥Ḑ⫳៤ㅫ⊩ 㽕∖ᑣ߫࣪ Delaunay 㔥Ḑ⫳៤఼㑺ᴳ䖍⬠ᘶ㛑DŽ᳔䖥ˈGeorgeǃDu Wang ѢТৠḋⱘᗱ䏃ᦤߎњⳌᑨⱘ䯈㑺ᴳ䖍⬠ᘶㅫ⊩ˈेܜ䖯㸠ϔ㟈 䖍⬠ᘶˈ䱣ৢ䗮䖛ߚ㾷㑺ᴳϞ䕙ࡽ⚍ⱘᮍᓣᅲᮑ㑺ᴳ䖍⬠ᘶDŽᴀ᭛ᓩܹᮄⱘ ԩ᪡ˈㅔ࣪њϞ䗄ㅫ⊩ⱘԧᅲ⦄ˈ㒧ড়Ꮖᅲ⦄ⱘϔ㟈䖍⬠ᘶㅫ⊩ˈ᳔㒜 㦋ᕫњϔϾᮄⱘ㑺ᴳ䖍⬠ᘶㅫ⊩ᅲ⦄DŽ ᇍѢѠ㓈䯂乬ˈᴀ᭛ᓩܹϞ䗄ಯ䖍ᔶऩܗ㔥Ḑ⫳៤ⷨおЁ㦋ᕫⱘᑊ㸠ऎඳߚ 㾷ㅫ⊩ˈ߽⫼ࡼᗕᄤඳߦߚㄪ⬹ˈᵘᓎњϔϾ䗮⫼ⱘᑊ㸠ᑇ䴶㔥Ḑ⫳៤ḚᶊDŽ 䲚៤Ѡ㓈ᑣ߫࣪ Delaunay 㔥Ḑ⫳៤఼ৢˈ㦋ᕫѠ㓈ᑊ㸠㔥Ḑ⫳៤఼ PDMG-2Dˈ ᅗ៤ࡳഄЁㄝ㾘ⱘᑊ㸠ᑇৄϞ⫳៤᭄ғ催䋼䞣ⱘϝ㾦ᔶऩˈܗϨ᠔㦋ᕫⱘߚ Ꮧᓣ㔥Ḑⱘߦߚ䋼䞣䕗催DŽ ᇍѢϝ㓈䯂乬ˈѢᑇ䴶ߚࡆⱘᮍᓣˈᴀ᭛㦋ᕫњϔϾ䗦ᔦऎඳߚ㾷ḚᶊDŽ ⡍߿ഄˈ䩜ᇍऎඳߚ㾷䖛Ёߎ⦄ⱘ⾡䫭䇃ᚙᔶˈᴀ᭛䅼䆎њⳌᑨⱘ䫭䇃Ẕ⌟
Ⴋྑ
Ϣׂㅫ⊩DŽ䩜ᇍऎඳߚ㾷䖛Ё᮴⊩ׂⱘ䫭䇃ˈᴀ᭛䗮䖛⿏ࡼߚࡆᑇ䴶ˈᅲ ⦄њϔ༫ಲ䗔໘⧚ᴎࠊDŽऎඳߚ㾷ḚᶊЁ䲚៤ϝ㓈ᑣ߫࣪ Delaunay 㔥Ḑ⫳៤ ఼ৢˈ㦋ᕫϝ㓈ᑊ㸠㔥Ḑ⫳៤఼ PDMG-3Dˈᅗ៤ࡳഄЁㄝ㾘ⱘᑊ㸠ᑇৄϞ ⫳៤ϔғҹϞ催䋼䞣ⱘಯ䴶ԧऩˈܗᅠܼৃҹ⒵䎇ݙ㾘ᎹϢ⾥ᄺ䅵ㅫⱘ 䳔㽕DŽ ᅲ䏉Ёˈᑊ㸠㔥Ḑ⫳៤ᑣⱘ᭄㒧ᵘ䆒䅵ᇍޣᇥݙᄬՓ⫼ǃࡴ䗳ㅫ⊩ᠻ㸠 ঞֱᣕⳌ䚏ᄤඳⳌ䚏໘⧚఼݅ѿ᭄ⱘϔ㟈ᗻ᳝䞡㽕ᛣНDŽᴀ᭛ᵘᓎⱘ᭄㒧 ᵘᎻഄᅲ⦄њϞ䗄Ⳃᷛˈᑊ㸠㔥Ḑ⫳៤ⱘৠᯊᅠ៤݅ѿ㔥Ḑ᭄ϔ㟈࣪DŽ⡍ ߿ഄˈӴ㒳ⱘᑊ㸠㔥Ḑ⫳៤ㅫ⊩া᳝ϸሖ᭄㒧ᵘϡৠ˄ᄤඳሖঞܼሔሖ˅ˈ ᴀ᭛ࡴњ໘⧚఼ሖ᭄㒧ᵘˈՓᕫߚᏗᓣ㔥Ḑৃৠϔ໘⧚఼Ϟ㹿ড়ᑊ៤ϔϾ ᭈԧ㔥ḐˈҢ㗠᳝߽Ѣৢ㓁ⱘ㔥ḐӬ࣪ঞߦߚㄝ᪡ⱘ䖯㸠DŽ
݇䬂䆡˖㔥Ḑ⫳៤˗ᑊ㸠㔥Ḑ⫳៤˗䴲㒧ᵘ࣪㔥Ḑ˗Delaunay ㅫ⊩˗Bowyer-Watson ㅫ⊩˗ಯ䖍ᔶऩ˗ܗऎඳߚ㾷˗㔥Ḑߦߚ
ii
Abstract Mesh generation is the pre-process and one of main performance bottlenecks of numerical simulations. With ever larger problems arising in such areas as Computational Fluid Dynamics (CFD), Computational Electro-Magnetics (CEM), close attention has been paid to parallel mesh generation to overcome the bottlenecks of serial mesh generation in terms of time and memory consuming in the international research community since early 1990s. However, few researchers in China have concentrated on this field so far. For the requirement of more and more large-scale simulations emerging in the industry and research community, in this thesis we will study some practical problems of unstructured mesh generation and its parallelization in depth. Firstly, a robust and efficient pattern module scheme for fully quadrilateral elements is constructed for meshing triangular or quadrilateral domains. The scheme is then applied into the sub-domain mesh generation stage of domain decomposition methods. It overcomes two drawbacks associated with current sub-domain meshing algorithms, i.e. the sub-domain definition being too stringent and the generation rule being too complex. Consequently, a new quadrilateral mesh generation method for arbitrary planar domains is proposed. Furthermore, a parallel version of this method is proposed by parallelizing the domain decomposition process and introducing the SubDomain Graph (SDG). It could generate distributed meshes with high partitioning quality simultaneously with parallel mesh generation, therefore to accelerate the whole process of parallel simulations greatly. Secondly, serial Delaunay mesh generation algorithms are discussed, and high-quality 2D and 3D serial Delaunay mesh generators using the Bowyer-Watson point insertion kernel are coded, named DTIso2D and DTIso3D, respectively. Issues of time and memory complexities, robustness, data structures and important implementation details are explored in this thesis. Boundary recovery is one of main problems in applying Delaunay algorithms into mesh generation. All constraint missing cases are illustrated, and the corresponding recovery techniques are given as well based on the idea of adding Steiner points directly in the missing constraints. Besides, a series of concepts, data structures and operators are introduced to alleviate the coding work of the conformal boundary recovery algorithm.
Abstract
A constrained rather than conformal boundary recovery procedure is required for the coordination of shared data in the artificial interfaces of partitioned meshes. George and Du et al independently present two new indirect constrained boundary recovery algorithms with nearly same idea, which both strive to resolve the robustness problem of George’s early classic algorithm. Here indirect algorithms mean that a conformal boundary recovery procedure is prerequisite. We simplify some concepts of the above algorithms and present a new implementation for them. Integrated with the parallel geometry decomposition algorithm obtained from the research of above parallel quadrilateral mesh generation, a general parallel planar mesh generation framework is constructed, where a dynamic SDG partitioning module is involved. A 2D parallel Delaunay mesh generator, named PDMG-2D, is developed by combining the framework with DTIso2D, which could generate more than hundreds of millions of elements in the parallel computers with medium size resources. Moreover, considerably good partitioning quality could be achieved for the resulting distributed meshes. For 3D problems, the computational domain is decomposed into many sub-domains recursively by intersecting a plane with the domain. Robust problems arising from complex geometry computations involved in the domain decomposition procedure are investigated. A roll-back scheme of moving the separation plane is utilized to overcome unrecoverable errors in domain decomposition. DTIso3D is linked together with the recursive domain decomposition framework to form the 3D parallel Delaunay mesh generator, named PDMG-3D, which could generate partitioned meshes with more than one hundred millions of elements in the parallel computers with medium size resources. The design of data structures is important in practice for parallel mesh generators to save memory usages, to accelerate algorithms, and to simplify the mergence of sub-meshes or distributed meshes on various sub-domains or processors. We devise a three-level data structure to help fulfill such goals conveniently. It also enables the resulting mesh to be smoothed or optimized globally or in a processor level instead of in a sub-domain level.
Key words: mesh generation, parallel mesh generation, unstructured meshes, Delaunay algorithms, Bowyer-Watson algorithm, quadrilateral elements, domain decomposition, mesh partitioning
iv
Ⳃᔩ Ⳃᔩ ........................................................................................................................................... 1 1 ゴ 㒾䆎 ........................................................................................................................... 1 1.1 ࠡ㿔 .................................................................................................................................... 1 1.2 㔥Ḑ⫳៤ⱘᴀὖᗉ ........................................................................................................ 2 1.2.1 㒧ᵘ࣪㔥Ḑ䴲㒧ᵘ࣪㔥Ḑ.......................................................................................... 2 1.2.2 㔥Ḑ䋼䞣ࠊⱘᴀ㽕∖ ............................................................................................. 2 1.3 ᑊ㸠㔥Ḑ⫳៤ⱘᴀὖᗉ ................................................................................................ 3 1.3.1 ᑊ㸠㔥Ḑ⫳៤ㅫ⊩ⱘߚ㉏ ............................................................................................. 3 1.3.2 ᑊ㸠㔥Ḑ⫳៤ㅫ⊩ⱘ䆘ӋᷛޚⳂᷛ.......................................................................... 3 1.3.3 ᭄ᑊ㸠ӏࡵᑊ㸠 ..................................................................................................... 4 1.3.4 ᭄ߚ㾷 ......................................................................................................................... 5 1.3.5 ᭄ᇘ˖䴭ᗕ䋳䕑ᑇ㸵ࡼᗕ䋳䕑ᑇ㸵.................................................................. 5 1.4 ᴀ᭛ⷨおⳂⱘǃݙᆍঞ㒘㒛 ............................................................................................ 6 1.5 䞥䌘ࡽ ............................................................................................................................ 8 2 ゴ 㔥Ḑ⫳៤ঞ݊ᑊ㸠࣪ᡔᴃⷨお㓐䗄 ......................................................................... 9 2.1 ࠡ㿔 ..................................................................................................................................... 9 2.2 䗮⫼㔥Ḑ⫳៤ᮍ⊩ ............................................................................................................. 9 2.2.1 ᇘ⊩ ........................................................................................................................... 10 2.2.2 ࠡ⊓䖯⊩ ................................................................................................................... 10 2.2.3 ಯ/ܿঝᷥ⊩ ...................................................................................................................11 2.3 ಯ䖍ᔶऩܗ㔥Ḑ⫳៤ ....................................................................................................... 12 2.3.1 䯈⊩ ........................................................................................................................... 12 2.3.2 Ⳉ⊩ ........................................................................................................................... 14 2.4 DELAUNAY ᮍ⊩................................................................................................................ 15 2.4.1 DELAUNAY ϝ㾦࣪ᴀ⧚䆎 ......................................................................................... 15 2.4.2 DELAUNAY 㔥Ḑ⫳៤ⱘᐌ⫼ㅫ⊩ ................................................................................. 16 2.4.2.1 Bowyer-Watson ㅫ⊩ .................................................................................................. 17
ંৃ
2.4.2.2 䖍/䴶Ѹᤶㅫ⊩ ........................................................................................................... 18 2.4.2.3 ݊ᅗㅫ⊩ .................................................................................................................... 19 2.4.3 DELAUNAY ᮍ⊩ⱘ݇䬂䯂乬ⷨお ................................................................................. 20 2.4.3.1 ݙ䚼⚍⫳៤ ................................................................................................................ 21 2.4.3.2 䖍⬠ᘶ .................................................................................................................... 22 2.4.3.3 ⍂⚍䖤ㅫ䇃Ꮒعໂᗻ ............................................................................................ 23 2.4.3.4 㔥ḐӬ࣪ঞ㭘⏙ܗ䰸 ................................................................................................. 24 2.4.3.5 Ḍᖗ᭄㒧ᵘঞㅫ⊩ⱘӬ࣪䆒䅵 ............................................................................ 26 2.5 ᑊ㸠 DELAUNAY ᮍ⊩...................................................................................................... 27 2.5.1 Ѣӏࡵᑊ㸠ᓣⱘ PDMG ㅫ⊩ .............................................................................. 27 2.5.2 Ѣ᭄ᑊ㸠ᓣⱘ PDMG ㅫ⊩ .............................................................................. 29 2.5.2.1 Ѣߚࡆᑇ䴶ⱘ PDMG ㅫ⊩.................................................................................... 30 2.5.2.2 Ѣ PDT ⧚䆎ⱘ PDMG ㅫ⊩ .................................................................................. 30 2.5.2.3 Ѣ⿔⭣㔥Ḑߚ㾷ⱘ PDMG ㅫ⊩............................................................................ 31 2.5.2.4 ݊ᅗ PDMG ㅫ⊩........................................................................................................ 32 3 ゴ 䴲㒧ᵘ࣪ಯ䖍ᔶ㔥Ḑ⫳៤ঞ݊ᑊ㸠࣪ ................................................................... 33 3.1 ࠡ㿔 ................................................................................................................................... 33 3.2 ᑣ߫࣪㔥Ḑ⫳៤⌕ ...................................................................................................... 34 3.3 ᄤඳᔶ៤ .......................................................................................................................... 35 3.3.1 ߚ㾷㒓ݙᮄ㡖⚍⫳៤ ................................................................................................... 35 3.3.2 ᢧᠥߚ㾷 ....................................................................................................................... 36 3.3.3 ԩߚ㾷 ....................................................................................................................... 37 3.3.4 ᳔㒜ᄤඳᔶ⢊⡍ᕕⱘ䞣࣪ᅮН.................................................................................... 38 3.4 ᄤඳ㔥Ḑࠪߚ .................................................................................................................. 38 3.4.1 ᵓ⊩ⱘϔѯᴀὖᗉ ............................................................................................... 38 3.4.1.1 ൟᵓ ........................................................................................................................ 38 3.4.1.2 䰘ࡴ䖍⬠㑺ᴳⱘൟᵓ˄pattern module with boundary constraints˅.................. 38 3.4.1.3 ᴀൟᵓ˄basic pattern module˅....................................................................... 39 3.4.2 ϝߚऎൟᵓ݁ߚऎൟᵓ .................................................................................... 39 3.4.3 عໂⱘൟᵓ ............................................................................................................... 40 3.4.3.1 ݁ߚऎൟᵓⱘখ᭄∖㾷ঞᄬⱘ䯂乬 ................................................................ 40 3.4.3.2 N 4 1 ᯊⱘൟᵓ ................................................................................................... 41 3.4.4 ᵓ⊩ᑨ⫼Ёⱘ݊ᅗ䯂乬 ........................................................................................... 44 3.4.4.1 ㉏ϝ㾦ᔶऎඳⱘ໘⧚ ................................................................................................ 44
2
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
3.4.4.2 ᄤඳ⦃䖍㡖⚍᭄ⳂЎ 4ǃ6 8 ᯊⱘ໘⧚ᮍḜ ...................................................... 45 3.4.4.3 ᇘߑ᭄ .................................................................................................................... 45 3.5 Ѡঝᷥⱘᑨ⫼ ................................................................................................................... 46 3.6 㔥Ḑড়ᑊঞৢ໘⧚ ........................................................................................................... 48 3.6.1 㔥Ḑড়ᑊ ....................................................................................................................... 48 3.6.2 㔥Ḑৢ໘⧚ ................................................................................................................... 49 3.6.2.1 ܝ⒥࣪ ........................................................................................................................ 49 3.6.2.2 ᢧᠥӬ࣪ .................................................................................................................... 49 3.7 ㅫ⊩ᗻ㛑䆘ԄঞӬ࣪ ...................................................................................................... 50 3.8 ᑊ㸠ಯ䖍ᔶऩܗ㔥Ḑ⫳៤ .............................................................................................. 53 3.8.1 ᑊ㸠㔥Ḑ⫳៤Ḛᶊ ....................................................................................................... 53 3.8.2 ᑊ㸠ԩߚ㾷 ............................................................................................................... 54 3.8.2.1 Ѣӏࡵձ䌪ⱘᑊ㸠ԩߚ㾷ㅫ⊩ .................................................................... 54 3.8.2.2 㒚㉦ᑺሖⱘᑊ㸠ԩߚ㾷ㅫ⊩ ............................................................................ 55 3.8.2.3 Ѣӏࡵձ䌪ⱘᑊ㸠ԩߚ㾷ㅫ⊩ⱘ㔎䱋ᅲ偠䆕ᯢ .................................... 56 3.8.3 ᑊ㸠㔥Ḑ⫳៤ ............................................................................................................... 57 3.9 ᭄ؐᅲ偠 .......................................................................................................................... 58 3.9.1 ᑣ߫࣪ㅫ⊩ⱘᗻ㛑䆘Ԅ ............................................................................................... 58 3.9.2 ᑊ㸠ㅫ⊩ⱘᗻ㛑䆘Ԅ ................................................................................................... 60 3.9.2.1 ᑊ㸠ԩߚ㾷ㅫ⊩ⱘᗻ㛑 ........................................................................................ 61 3.9.2.2 ᑊ㸠ㅫ⊩ⱘৃᠽሩᗻ ................................................................................................ 61 3.9.2.3 ߚᏗᓣ㔥Ḑⱘߦߚ䋼䞣 ............................................................................................ 62 3.10 㒧䆎ঞሩᳯ .................................................................................................................... 64 4 ゴ DELAUNAY 㔥Ḑ⫳៤˖ϝ㾦࣪ঞ⚍㞾ࡼ⫳៤ ........................................................ 65 4.1 ࠡ㿔 .................................................................................................................................. 65 4.2 Ḍᖗ᭄㒧ᵘㅫ⊩⌕ .............................................................................................. 66 4.2.1 Ḍᖗ᭄㒧ᵘ ............................................................................................................... 66 4.2.2 ㅫ⊩⌕ ....................................................................................................................... 67 4.3 ᆚᑺࠊঞᆚᑺ⑤ .......................................................................................................... 68 4.3.1 ⚍⑤ ............................................................................................................................... 68 4.3.2 㒓⑤ ............................................................................................................................... 69 4.3.3 䴶⑤ ............................................................................................................................... 70 4.4 ⚍ᦦܹݙḌⱘᅲ⦄ .......................................................................................................... 71 4.4.1 ⚍ᦦܹ⌕ ................................................................................................................... 71 4.4.2 ߯ᓎᮄऩ ܗ................................................................................................................... 72
3
ંৃ
4.4.3 ಲ䗔ᴎࠊ ....................................................................................................................... 72 4.4.4 ݙᄬㅵ⧚ ....................................................................................................................... 73 4.5 䖍⬠⚍ᦦܹ ...................................................................................................................... 73 4.6 ݙ䚼⚍㞾ࡼ⫳៤ঞᦦܹ .................................................................................................. 75 4.6.1 ݙ䚼⚍㞾ࡼ⫳៤ ........................................................................................................... 75 4.6.2 ݙ䚼⚍ᦦܹ ................................................................................................................... 75 4.7 ᇣ㒧 .................................................................................................................................. 77 5 ゴ DELAUNAY 㔥Ḑ⫳៤˖䖍⬠ᘶ ............................................................................ 78 5.1 ࠡ㿔 .................................................................................................................................. 78 5.2 Ѡ㓈䖍⬠ᘶ .................................................................................................................. 79 5.3 ᴀὖᗉ .......................................................................................................................... 81 5.3.1 ⧗ǃㅵ䘧ǃঞ㇛ ....................................................................................................... 81 5.3.2 ಯ䴶ԧऩⷕ⚍ⱘܗǃ䖍ⷕঞ䴶ⷕ................................................................................ 81 5.3.3 ϝ㾦ᔶⱘ S ൟߚ㾷 Z ൟߚ㾷 ................................................................................... 82 5.4 䖍⬠䖍ᘶ ...................................................................................................................... 82 5.4.1 Ḍᖗ᭄㒧ᵘ˖ㅵ䘧 ܗ............................................................................................... 82 5.4.2 ϡࡴ⚍ᘶᚙᔶ ........................................................................................................... 84 5.4.2.1 ϡࡴ⚍ᘶᚙᔶ 1 ..................................................................................................... 84 5.4.2.2 ϡࡴ⚍ᘶᚙᔶ 2 ..................................................................................................... 85 5.4.3 ࡴ⚍ᘶᚙᔶ ............................................................................................................... 86 5.4.3.1 ࡴ⚍ᘶᚙᔶ 1˖ϔᴵ䖍㹿こ䍞 ............................................................................. 86 5.4.3.2 ࡴ⚍ᘶᚙᔶ 2˖ϸᴵ䖍㹿こ䍞 ............................................................................. 87 5.4.3.3 ࡴ⚍ᘶᚙᔶ 3˖ϔϾ䴶㹿こ䍞 ............................................................................. 89 5.4.3.4 ࡴ⚍ᘶᚙᔶ 4˖ϔᴵ䖍ϔϾ䴶㹿こ䍞 ............................................................. 90 5.4.3.5 ࡴ⚍ᘶᚙᔶ 5˖ϸϾ䴶㹿こ䍞 ............................................................................. 91 5.5 䖍⬠䴶ᘶ ...................................................................................................................... 92 5.5.1 Ḍᖗ᭄㒧ᵘ˖㇛ ܗ................................................................................................... 92 5.5.2 ϡࡴ⚍ᘶᚙᔶ ........................................................................................................... 93 5.5.3 ㇛ⱘܗѨ⾡ᵘൟঞ݊໘⧚ᮍḜ.................................................................................... 94 5.5.3.1 ㇛ܗᵘൟ 1˖㸼䴶䘫༅䴶݅䴶 ............................................................................. 94 5.5.3.2 ㇛ܗᵘൟ 2˖ϔᴵ䖍こ䍞䘫༅䴶 ............................................................................. 94 5.5.3.3 ㇛ܗᵘൟ 3˖Ѡᴵ䖍こ䍞䘫༅䴶 ............................................................................. 94 5.5.3.4 ㇛ܗᵘൟ 4˖ϝᴵ䖍こ䍞䘫༅䴶 ............................................................................. 95 5.5.3.5 ㇛ܗᵘൟ 5˖ಯᴵ䖍こ䍞䘫༅䴶 ............................................................................. 97 5.5.4 ऩ㉏ܗൟⱘ⹂ᅮ ......................................................................................................... 102
4
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
5.6 ϝ㓈㑺ᴳ䖍⬠ᘶ ........................................................................................................ 102 5.6.1 Ѡ㓈ᚙᔶ ..................................................................................................................... 103 5.6.2 ϝ㓈ᚙᔶ ..................................................................................................................... 104 5.6.3 ㅫ⊩㒚㡖 ..................................................................................................................... 108 5.7 ऎඳ䚼ऩߴⱘܗ䰸 .................................................................................................... 108 5.8 ᇣ㒧 .................................................................................................................................110 6 ゴ ऎඳߚ㾷ঞᑊ㸠 DELAUNAY 㔥Ḑ⫳៤ .................................................................. 111 6.1 ࠡ㿔 ................................................................................................................................. 111 6.2 Ѡ㓈ᑊ㸠 DELAUNAY 㔥Ḑ⫳៤.....................................................................................112 6.2.1 ѢᄤඳⱘѠ㓈ᑊ㸠㔥Ḑ⫳៤Ḛᶊ.......................................................................112 6.2.2 ࡼᗕᄤඳߦߚ ..........................................................................................................113 6.2.3 㔥Ḑ䞡ߦߚ ..................................................................................................................114 6.2.4 ⡍ᕕ䖍ᔶ ..................................................................................................................114 6.2.5 Ѡ㓈ᑊ㸠 DELAUNAY 㔥Ḑ⫳៤ ..................................................................................115 6.3 ϝ㓈ऎඳߚ㾷䖛 .........................................................................................................116 6.3.1 ऩℹऎඳߚ㾷⌕ ......................................................................................................116 6.3.1.1 ⌕ .......................................................................................................................116 6.3.1.2 ⹂ᅮߚࡆᑇ䴶 ...........................................................................................................116 6.3.1.3 ᇏᡒѸ⬠䴶ⱘ䖍⬠ᦣ䗄 ...........................................................................................118 6.3.1.4 ⫳៤Ѹ⬠䴶㔥Ḑ .......................................................................................................119 6.3.1.5 ᔶ៤ᄤඳ .................................................................................................................. 121 6.3.1.6 ⿏ࡼѸ⬠䴶 .............................................................................................................. 121 6.3.1.7 തᷛবᤶ .................................................................................................................. 122 6.3.2 䫭䇃ᚙᔶⱘѻ⫳ǃẔ⌟ঞׂ.................................................................................. 123 6.3.2.1 Ѹ⬠䴶㔥Ḑᕙߚ㾷ऎඳ㸼䴶ⳌѸ ...................................................................... 123 6.3.2.2 ϡℷ⹂ⱘѸ⬠䴶䖍⬠ᦣ䗄 ...................................................................................... 124 6.3.2.3 䴶 .......................................................................................................................... 126 6.3.3 䗦ᔦऎඳߚ㾷Ḛᶊ ..................................................................................................... 126 6.3.4 Ḍᖗ᭄㒧ᵘ䆒䅵 ..................................................................................................... 128 6.4 ϝ㓈ᑊ㸠 DELAUNAY 㔥Ḑ⫳៤.................................................................................... 129 6.4.1 ᘏԧ䆒䅵 ..................................................................................................................... 129 6.4.2 ᑊ㸠ࠊഫ ............................................................................................................. 130 6.4.2.1 Manager/Worker ൟ ............................................................................................... 130 6.4.2.2 ࡼᗕ䋳䕑ᑇ㸵 .......................................................................................................... 131 6.4.2.3 ϝሖ᭄㒧ᵘ䆒䅵 .................................................................................................. 131
5
ંৃ
6.5 Ѣᡩᕅϝ㾦࣪⧚䆎ⱘऎඳߚ㾷䖛 ........................................................................ 132 6.6 ᇣ㒧 ................................................................................................................................ 133 7 ゴ ᑣ߫࣪ঞᑊ㸠 DELAUNAY ϝ㾦࣪ᑣᗻ㛑ⱘᅲ偠ߚᵤ ..................................... 134 7.1 ࠡ㿔 ................................................................................................................................ 134 7.2 ᑣ߫࣪ DELAUNAY ϝ㾦࣪ᑣᗻ㛑ⱘᅲ偠ߚᵤ ........................................................ 134 7.2.1 ᯊ䯈ᗻ㛑 ..................................................................................................................... 134 7.2.2 ݙᄬᗻ㛑 ..................................................................................................................... 137 7.2.3 㔥Ḑ䋼䞣 ..................................................................................................................... 139 7.2.4 ㅫ⊩عໂᗻ ................................................................................................................. 140 7.2.5 䖍⬠ᘶㅫ⊩ ............................................................................................................. 141 7.3 ᑊ㸠 DELAUNAY ϝ㾦࣪ᑣᗻ㛑ⱘᅲ偠ߚᵤ ............................................................ 141 7.3.1 Ѡ㓈ᑊ㸠 DELAUNAY 㔥Ḑ⫳៤఼ᗻ㛑ⱘᅲ偠ߚᵤ ................................................. 141 7.3.1 ᯊ䯈ᗻ㛑ঞৃᠽሩᗻ ................................................................................................. 141 7.3.2 ߚᏗᓣ㔥Ḑⱘߦߚ䋼䞣 ............................................................................................. 143 7.3.3 ߚᏗᓣ㔥Ḑⱘऩܗ䋼䞣 ............................................................................................. 144 7.3.2 ϝ㓈ᑊ㸠 DELAUNAY 㔥Ḑ⫳៤఼ᗻ㛑ⱘᅲ偠ߚᵤ ................................................. 145 7.3.2.1 ᯊ䯈ᗻ㛑ঞৃᠽሩᗻ .............................................................................................. 145 7.3.2.2 䋳䕑ᑇ㸵ঞߚᏗᓣ㔥Ḑⱘߦߚ䋼䞣 ...................................................................... 148 7.3.2.3 ߚᏗᓣ㔥Ḑⱘऩܗ䋼䞣 .......................................................................................... 150 7.4 㔥Ḑㅫ՟ ........................................................................................................................ 151 7.5 ᇣ㒧 ................................................................................................................................ 152 8 ゴ 㒧䆎Ϣሩᳯ ........................................................................................................... 169 8.1 㒧䆎 ................................................................................................................................ 169 8.2 ሩᳯ ................................................................................................................................ 170 খ㗗᭛⤂ ............................................................................................................................... 171 ᬏ䇏मᳳ䯈থ㸼ঞᔩ⫼ⱘⳌ݇ᄺᴃ䆎᭛ ....................................................................... 183 㟈䇶 ....................................................................................................................................... 184
6
1ゴ
㒾䆎
1.1 ࠡ㿔 ㅔ㗠㿔Пˈ㔥Ḑ⫳៤ⷨおⱘ䯂乬ᰃབԩᇚ㒭ᅮⱘԩऎඳߦߚ៤᳝䰤Ͼᴀ ԩᔶԧDŽᇍᑇ䴶᳆䴶ऎඳˈᴀԩᔶԧᐌ䞛⫼ϝ㾦ᔶಯ䖍ᔶ˗ᇍϝ㓈ऎ ඳˈᴀԩᔶԧᕔᕔ䞛⫼ಯ䴶ԧǃ݁䴶ԧễ䫹ԧㄝDŽ㔥Ḑ⫳៤ᡔᴃᕜ乚 ඳ䛑᳝ᑓ⊯ⱘᑨ⫼ˈབ䅵ㅫᴎᔶᄺǃ䅵ㅫᴎ㾚㾝ǃৃ㾚࣪ǃഄ⧚ֵᙃ㋏㒳ˈ ℸⷨお㗙ӫˈԚ⬅Ѣⷨおⱘሖǃ㾦ᑺ䳔∖ϡሑⳌৠˈ᠔䞛⫼ⱘᮍ⊩䴶Ј ⱘᣥгѦ᳝ᏂᓖDŽᴀ᭛᠔ⷨおⱘᑣ߫࣪ঞᑊ㸠㔥Ḑ⫳៤˄PMG: Parallel Mesh Generation ˅ ᡔ ᴃ Џ 㽕 ⱘ ᑨ ⫼ ᇍ 䈵 ᰃ أᖂ ߚ ᮍ ˄ PDEs: Partial Differential Equations˅ⱘ᭄ؐ∖㾷ˈᔧ✊ˈᅗгৃᑨ⫼Ѣ݊ᅗ乚ඳDŽ 䗮䖛ᓎゟড়⧚ⱘൟˈᎹϢ⾥ᄺ䅵ㅫ乚ඳᕜ⠽⧚⦄䈵ⱘᢳ䛑ৃᔦ㒧Ў أᖂߚᮍⱘ∖㾷DŽ⬅Ѣ∖㾷ऎඳǃ䖍⬠ᴵӊঞᴤ᭭⡍ᗻㄝ⾡㋴ⱘᕅડˈᐌ ᐌ᮴⊩ᕜ䲒ᕫࠄ䖭ѯأᖂߚᮍⱘ㾷ᵤ㾷ˈা㛑䗔㗠∖݊ˈ㒧ড়䅵ㅫᴎᡔᴃ 䖯㸠᭄ؐ∖㾷DŽ ⦄᳝ⱘأᖂߚᮍ᭄ؐ㾷⊩Џ㽕ࣙᣀ᳝䰤ऩ˄⊩ܗFEM: Finite Element Method˅ ǃ᳝䰤ԧ⿃⊩˄FVM: Finite Volume Method˅ ǃ䖍⬠ऩ˄⊩ܗBEM: Boundary Element Method˅ঞ᳝䰤Ꮒߚ⊩˄FDM: Finite Difference Method˅ ˈ䖭ѯᮍ⊩∖ 㾷ࠡ䛑䳔㽕ᇚ䯂乬ඳ⾏ᬷ៤ㅔऩऩⱘܗ㒘ড়DŽЎᭈϾ∖㾷䖛Ёⱘ䞡㽕ϔ⦃ˈ 㔥Ḑ⫳៤ᡔᴃⱘⷨお⧚䆎ᅲ䏉Ϟ䛑䴶ЈᎼᣥˈг៤Ўࠊ㑺ᦤ催ߚᵤᬜ⥛ ⱘЏ㽕⫊乜ПϔDŽकᑈᴹˈᴹ㞾ϡৠᄺ⾥ⱘⷨお㗙ᇍℸ䯂乬䖯㸠њ⏅ܹ㗠ध᳝ ៤ᬜⱘⷨおˈপᕫњЄ⸩ⱘ៤ᵰˈᵕഄ㓧㾷њ䖭ϔᚙᔶˈԚ⾏䯂乬ⱘ᳔㒜㾷އ 䖬᳝ᕜ䭓ⱘ䏃㽕䍄DŽϔᮍ䴶ˈ⬅Ѣ⦄᳝ⱘ䗮⫼㔥Ḑ⫳៤ᡔᴃЁ䛑㒧ড়њᕜਃথ ᓣⱘ㾘߭ㅫ⊩ˈ⧚䆎ᅲ䏉Ϟഛ᳝ϔѯ 㗠ⱘއᓔ䯂乬˄open problems˅ ˗ ϔᮍ䴶ˈԈ䱣ⴔ䅵ㅫᴎᡔᴃǃ᭄ؐ∖㾷⧚䆎ঞⳌ݇ᑨ⫼ᄺ⾥ⱘথሩˈ㔥Ḑ⫳៤ ᡔᴃⱘⷨおজ䴶Јᮄⱘ㽕∖ᣥˈབᑊ㸠㔥Ḑ⫳៤ᡔᴃⱘⷨおDŽ 䖥कᑈᴹˈᎹϢ⾥ᄺ䅵ㅫⱘᕜ乚ඳˈབ䅵ㅫ⌕ԧࡼᄺ˄CFD: Computational Fluid Dynamics ˅ǃ 䅵 ㅫ ⬉ ⺕ ᄺ ˄ CEM: Computational Electro-Magnetics˅ˈЎᇍᶤѯ䯂乬䖯㸠㊒㒚ⱘᢳߚᵤˈᕔᕔ䳔㽕⫳៤㾘 ⱘ㔥Ḑ᭄ˈᅗৃ㛑ࣙ䖒 108 ᭄䞣㑻ⱘϝ㓈ऩ ܗ109 ᭄䞣㑻ⱘᑇ䴶ऩܗ ˄⫮㟇˅[1, 2]DŽ⦄᳝ⱘ䅵ㅫ㛑ϟˈऩᴎϞᑣ߫࣪ഄ⫳៤བℸᑲⱘ 㔥Ḑ᭄Ӯᯊ䯈ݙᄬϞഛᔶ៤Ϲ䞡ⱘᗻ㛑⫊乜ˈ⡍߿ᰃݙᄬ⫊乜ᕜ䲒䎼䍞DŽ
ԛ 1 Ⴣ ༢ৢ
⫼⹀ⲬѸᤶᡔᴃ˄disk swap˅ৃҹ㓧㾷ऩᴎݙᄬϡ䎇ⱘ䯂乬ˈԚ䖛ഄՓ⫼ᅗӮ Փᕫ䅵ㅫᯊ䯈᮴⊩ফDŽᑊ㸠㔥Ḑ⫳៤ᡔᴃⱘⷨおℷᰃ䖭ϔ㚠᱃ϟሩᓔⱘˈ䖥 ѯᑈᴹг៤Ў㔥Ḑ⫳៤ᡔᴃⷨおⱘ⛁⚍Пϔ[1-35]DŽ
1.2 㔥Ḑ⫳៤ⱘᴀὖᗉ 1.2.1 㒧ᵘ࣪㔥Ḑ䴲㒧ᵘ࣪㔥Ḑ 㔥ḐৃߚЎ㒧ᵘ࣪˄structured˅䴲㒧ᵘ࣪˄unstructured˅ϸ㉏DŽ㒧ᵘ࣪㔥 ḐЁˈ↣Ͼݙ䚼㡖⚍䛑㹿Ⳍৠ᭄Ⳃⱘऩܗ᠔ࣙ˗㗠䴲㒧ᵘ࣪㔥ḐЁˈࣙ↣Ͼ ݙ䚼㡖⚍ⱘऩܗ᭄Ⳃᰃϡ⹂ᅮⱘDŽབᣝ✻ϔᅮ㾘߭ᇍ㒧ᵘ࣪㔥Ḑⱘ㡖⚍䖯㸠㓪 োˈ㡖⚍П䯈ⱘⳌ䚏݇㋏ৃ䱤ᓣ㸼⼎Ѣ㡖⚍㓪োПЁˈ䖭ϔ⡍ᗻՓᕫՓ⫼㒧ᵘ࣪ 㔥Ḑⱘ᭄ؐ∖㾷ᑣᄬ⫼߽ټᯊ䯈ᬜ⥛Ϟ䛑᳝Ӭ[36]DŽߚഫ㒧ᵘ࣪㔥Ḑ ˄block structured mesh˅ᰃ㒧ᵘ࣪䴲㒧ᵘ࣪㔥ḐП䯈ⱘϔϾᡬ㹋ˈ䗮ᐌⱘ⊩خ ᰃ˖ߚ㾷䯂乬ඳЎᄤഫ˗䱣ৢ↣ϾᄤഫϞ⫳៤㒧ᵘ࣪㔥Ḑ˗᳔㒜ড়ᑊᄤഫ㔥Ḑ Ўᭈԧ㔥ḐDŽϔϾऎඳৃ㛑ৠᯊࣙ㒧ᵘ࣪䴲㒧ᵘ࣪ϸ⾡㔥Ḑˈ⿄䖭⾡㔥Ḑᔶ ᓣЎ⏋ড়㔥Ḑ˄hybrid mesh˅[37, 38]DŽ 㒧ᵘ࣪㔥Ḑⱘԩ䗖ᑨ㛑䗮ᐌ䕗ᏂˈϨᕜ䲒໘⧚㔥Ḑ⭣ᆚ䖛⏵˗Ԛ㒧ᵘ࣪ 㔥Ḑ䌈ԧऩ⫳ⱘܗ៤⡍ᅮ⠽⧚⦄䈵ⱘᤩᤝϞҡ✊᳝ⴔ㞾Ꮕ⣀⡍ⱘӬˈℸ བ CFD ㄝ⡍ᅮⷨお乚ඳҡ✊᳝ᑓ⊯ⱘᑨ⫼ˈϨⳂࠡҡ⏅ܹⷨおПЁDŽ ⳌᇍѢ㒧ᵘ࣪㔥Ḑˈ䴲㒧ᵘ࣪㔥Ḑᇍᴖऎඳ䖍⬠㑺ᴳᚙᔶ᳝ᕜᔎⱘ䗖ᑨ 㛑ˈϨ㛑䖲㓁ऎඳݙᅲᮑ㔥Ḑ⭣ᆚࠊˈ⬅ℸӫ乚ඳ䛑᳝ᕜདⱘᑨ⫼ˈ ᰃᔧࠡ㔥Ḑ⫳៤ᡔᴃⷨおⱘЏ㽕ᇍ䈵DŽ ᴀ᭛᠔ⷨおⱘ㔥Ḑ⫳៤ᡔᴃ䛑ሲѢ䴲㒧ᵘ࣪㔥Ḑ⫳៤ᡔᴃ㣗⭈DŽ
1.2.2 㔥Ḑ䋼䞣ࠊⱘᴀ㽕∖ 䰸њ㽕⒵䎇ᴀⱘԩǃᢧᠥঞ⠽⧚ϞⱘⳌᆍᗻᴵӊˈ㸵䞣ϔϾ㔥Ḑདണ ⱘЏ㽕ᷛޚ䖬ࣙᣀ݊䖍⬠䗖ᑨ㛑ⱘᔎᔅǃᆚᑺࠊㄪ⬹ᅲᮑⱘ៤ࡳϢ৺ҹঞऩ ܗᔶ⢊ⱘӬࡷDŽ 䯂乬ඳⱘԩᔶ⢊ᕔᕔᰃᴖⱘˈ⫮㟇ᏺ᳝᳆䴶䖍⬠DŽऎඳݙ䚼ˈЎߚࡆ ϡৠ⡍ᗻⱘ䯂乬ඳˈ䖬ৃ㛑䳔㽕ࡴϔѯݙ䚼㑺ᴳˈབ⛁Ӵᇐ䯂乬㾺䯂 乬ߚᵤЁϡৠᴤ᭭ⱘѸ⬠䴶ˈᮁ㺖ᄺ䯂乬ߚᵤЁⱘݙ䚼㺖㒍ㄝDŽЎ㊒⹂ᦣ䗄䖭 ѯ䖍⬠ˈ㔥Ḑ䳔ϔᅮⱘԩ㞾䗖ᑨ㛑ˈབ᳆⥛䕗ഄᮍˈऩܗሎᇌг㽕 Ⳍᑨޣᇥˈҹޣᇥ⾏ᬷ䇃ᏂDŽЎֱ䆕䖭ѯ㑺ᴳҹℷ⹂ⱘԩᢧᠥᔶᓣᄬѢ㔥 ḐЁˈ㑺ᴳ䰘䖥ᕔᕔӮᔶ៤ϔѯ䋼䞣䕗ᏂⱘऩܗDŽ
2
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
㔥Ḑᆚᑺࠊㄪ⬹ⱘ䗝ᢽᰃߚᵤᬜ⥛ߚᵤ㊒ᑺᡬ㹋ⱘ㒧ᵰDŽϔ㠀ഄˈࡴᆚ 㔥Ḑৃҹᦤ催ߚᵤ㒧ᵰⱘ㊒ᑺˈԚৠᯊӮ䰡Ԣߚᵤ䖛ⱘᯊぎᬜ⥛DŽԚᅲ偠г㸼 ᯢˈᔧ㔥Ḑࡴᆚࠄϔᅮᑺᯊˈࡴݡᆚ㔥Ḑᇍߚᵤ㒧ᵰⱘᕅડৃ㛑ᖂТ݊ᖂDŽ ℸˈ㔥Ḑᑊϡᰃ䍞ᆚ䍞དˈᅗ䯂乬ᴀ䑿ⱘ⡍ᗻঞᳳᳯᕫࠄⱘߚᵤ㊒ᑺ᳝݇DŽℷ ⹂ⱘᆚᑺࠊㄪ⬹ϟ᠔⫳៤ⱘ㔥Ḑˈ݊ᆚᑺব࣪ᑨ䆹᠔㽕ߚᵤⱘ⠽⧚䞣ⱘẃᑺ 㾘ᕟֱᣕϔ㟈ˈབԧᄺߚᵤЁˈԩऎඳⱘݙᄨ䰘䖥ᆍᯧߎ⦄ᑨ䲚Ё⦄䈵ˈ Ⳍᑨഄˈݙᄨ䰘䖥ⱘऩܗህᑨ䆹ࡴᆚ໘⧚DŽ CFD 乚ඳˈ䖍⬠ሖ㔥Ḑݙ䚼 㔥Ḑⱘऩܗሎᇌৃ㛑᳝ϞⱒⱘסᏂ䎱ˈ⫮㟇ˈ㢹䖛⏵ऎඳ䖛⣁じˈऩܗ 䖛⏵ㄪ⬹䞛⫼ϡᔧˈᵕᯧ⫳៤ϔѯᔶᗕ䕗Ꮒⱘ䖛⏵ऩܗDŽˈᶤѯ乚ඳˈ㔥 Ḑ⫳៤఼䖬㹿㽕∖㛑ᇍᏆ᳝㔥Ḑ䖯㸠㉫࣪˄derefinement˅㒚࣪˄refinement˅ ໘⧚ˈे䕗ᔎⱘሔ䚼ᆚᑺࠊ㛑DŽϔ㠀㗠㿔ˈ㔥Ḑ㉫࣪㽕↨㒚࣪䲒DŽ ऩܗᔶ⢊ᇍߚᵤ䖛ⱘᬊᬯᗻߚᵤ㒧ᵰⱘ㊒ᑺ᳝㟇݇䞡㽕ⱘᕅડˈेՓߚ ᵤ㒧ᵰᰃℷ⹂ⱘˈᔶ⢊Ꮒⱘऩܗᦦؐᕫࠄऩݙܗ䚼⠽⧚എⱘؐᯊгӮѻ⫳ᕜ ⱘ䇃ᏂDŽϔ㠀㗠㿔ˈᔶ⢊㾘߭ⱘऩܗ㹿䅸Ў䋼䞣᳔ӬˈབѠ㓈ⱘℷϝ㾦ᔶǃℷᮍ ᔶϝ㓈ⱘℷಯ䴶ԧℷ݁䴶ԧˈ䖭⾡ऩܗг㹿⿄ЎৠᗻऩܗDŽԚџᅲϞˈ ऩܗདണⱘ䆘߸ᷛޚ᠔Փ⫼ⱘ᭄ؐᮍ⊩ঞ∖㾷䯂乬ⱘᗻ䋼ᰃⳌ݇ⱘˈߚᵤᶤ ѯ䯂乬ᯊˈབ CFD 乚ඳ⬅ৃय़㓽ϡৃय़㓽 Navier-Stokes ᮍᦣ䗄ⱘ㉬ᗻ⌕ԧ 䯂乬ˈা᳝Փ⫼⣁䭓ⱘᓖᗻऩܗᠡ㛑ᕫࠄℷ⹂ⱘ㒧ᵰ[39]DŽ
1.3 ᑊ㸠㔥Ḑ⫳៤ⱘᴀὖᗉ 1.3.1 ᑊ㸠㔥Ḑ⫳៤ㅫ⊩ⱘߚ㉏ ⦄᳝ⱘᑊ㸠㔥Ḑ⫳៤ㅫ⊩Т䛑䳔㽕䗮䖛ऎඳߚ㾷ⱘᮍᓣᇚॳ䯂乬ߦߚ៤ ᄤ䯂乬ˈᄤ䯂乬П䯈ⱘԩ䖍⬠⿄ЎѸ⬠䴶˄interface˅ DŽḍѸ⬠䴶㔥Ḑ⫳៤ ᄤ䯂乬ݙ䚼㔥Ḑ⫳៤П䯈ⱘˈ㋏݇ৢܜᑊ㸠㔥Ḑ⫳៤ㅫ⊩ৃҹߚЎϝ㉏[32]˖ ˄1˅ৠℹ໘⧚㉏˖ৠℹᅠ៤Ѹ⬠䴶㔥Ḑ⫳៤ᄤ䯂乬ݙ䚼㔥Ḑ⫳៤ӏࡵ˗ ˄2˅ࠡ㕂໘⧚㉏˖⫳ܜ៤Ѹ⬠䴶㔥Ḑˈৢ⫳៤ᄤ䯂乬ݙ䚼㔥Ḑ˗ ˄3˅ৢ㕂໘⧚㉏˖⫳ܜ៤ᄤ䯂乬ݙ䚼㔥Ḑˈৢ⫳៤Ѹ⬠䴶㔥ḐDŽ ḍᑊ㸠㔥Ḑ⫳៤ㅫ⊩ᇍⳌᑨᑣ߫࣪㔥Ḑ⫳៤ㅫ⊩ⱘ⫼ᑺˈ Chrisochoides ᇚ݊ߚЎ㋻㗺ᓣǃ㾷㗺ᓣ䚼ߚ㗺ড়ᓣϝ㉏[25]DŽ
1.3.2 ᑊ㸠㔥Ḑ⫳៤ㅫ⊩ⱘ䆘ӋᷛޚⳂᷛ Ў㸵䞣ϔϾᑊ㸠㔥Ḑ⫳៤ㅫ⊩ⱘӬࡷˈChrisochoides 㒭ߎњϝϾᷛ[ޚ25]˖ ˄1˅〇ᅮᗻ˄stability˅˖ᑊ㸠ㅫ⊩㛑৺পᕫᑣ߫࣪ㅫ⊩ৠḋⱘ㔥Ḑ䋼䞣˗
3
ԛ 1 Ⴣ ༢ৢ
˄2˅⫼ᗻ˄code-reusing˅ ˖ᑊ㸠ㅫ⊩㛑৺⫼Ꮖ᳝ⱘᑣ߫࣪㔥Ḑ⫳៤ഫ˗ ˄3˅ৃᠽሩᗻ˄scalability˅ ˖ᑊ㸠ㅫ⊩䱣ⴔ䯂乬㾘ⱘᠽˈՓ⫼ৠ↨䭓 ⱘ䅵ㅫ䌘⑤ˈ㛑৺ֱᣕᑊ㸠ᬜ⥛ⱘ〇ᅮDŽ 䳔㽕⊼ᛣⱘᰃˈሑㅵ᭄ᚙᔶϟⷨお㗙া݇⊼䅵ㅫᯊ䯈ⱘৃᠽሩᗻˈ᳝ᯊ г䳔㽕⊼ᛣᄬټ䌘⑤ⱘৃᠽሩᗻˈ↨བ߽⫼㚠᱃㔥Ḑࠊऎඳߚ㾷ᯊˈ㢹㚠 ᱃㔥Ḑⱘᆚᑺ᳔㒜㔥ḐⱘᆚᑺᰃⳌᔧⱘˈ߭䳔㽕㗗㰥ߚᏗᓣᄬټ㚠᱃㔥ḐDŽ Cougny ㄝ[32]䅸Ўㅫ⊩ⱘᑊ㸠ᬜ⥛гᰃϔϾ䞡㽕ᷛˈޚᅗЏ㽕ᣛ໘⧚఼䌘⑤ ⱘ߽⫼ᑺˈ䳔㽕ᇚ݊ৃᠽሩᗻऎߚᓔᴹDŽৃᠽሩⱘᑊ㸠ㅫ⊩ᑊϡϔᅮ催ᬜˈ 㗠催ᬜⱘㅫ⊩гৃ㛑ϡৃᠽሩDŽ ⬅Ѣᑊ㸠㔥Ḑ⫳៤ᰃЎৢ㓁ⱘᑊ㸠∖㾷᭄ޚˈℸˈ䅼䆎ᑊ㸠㔥Ḑ ⫳៤ㅫ⊩ⱘᬜ⥛ᯊˈ䖬䳔㽕݇⊼ϸ㗙П䯈ⱘ㸨ˈҹᦤ催ᭈϾᑊ㸠ᢳ䖛ⱘᬜ ⥛DŽϔ㠀㗠㿔ˈЎՓᕫᑊ㸠∖㾷ⱘᬜ⥛᳔催ˈߚ䜡㒭↣ϾখϢ䅵ㅫⱘ໘⧚఼ⱘ㔥 Ḑ㡖⚍᭄˄᳝ᯊг⫼ऩܗ᭄Ўᣛᷛ˅ᑨ䖥ԐⳌㄝˈϨ໘⧚఼П䯈ⱘ݅ѿ㡖⚍᭄ ᑨሑৃ㛑᳔ᇣˈ䖭ḋֱ߭䆕ᑊ㸠∖㾷ᯊ㛑ᅲ⦄བϟϸϾᴀⳂᷛ˖ ˄1˅䋳䕑ᑇ㸵˄loading balance˅ ˄2˅䗮᳔ֵᇣ࣪˄minimization of communications˅ DŽ 䖭䳔㽕ऎߚϸϾĀ䋳䕑āὖᗉˈϔϾᰃᑊ㸠㔥Ḑ⫳៤ᯊⱘ䋳䕑ˈϔϾᰃᑊ 㸠∖㾷ᯊⱘ䋳䕑ˈϞ䴶᠔䇈ⱘĀ䋳䕑ᑇ㸵āᰃ䩜ᇍᑊ㸠∖㾷㗠㿔ⱘDŽᑊ㸠∖㾷䋳 䕑ᑇ㸵ᑊϡᛣੇⴔᑊ㸠㔥Ḑ⫳៤гᰃ䋳䕑ᑇ㸵ⱘˈЎ㔥Ḑ⫳៤ᅲ䰙⍜㗫ⱘᯊ䯈 䰸㔥Ḑⱘ㾘᳝݇ˈ䖬ᆚᑺࠊㄪ⬹ঞऎඳⱘԩᔶ⢊ㄝ݊ᅗ㋴Ⳍ݇DŽ ⦄᳝ⱘ䚼ߚᑊ㸠㔥Ḑ⫳៤ㅫ⊩᮴⊩Ⳉৠᯊ⒵䎇䋳䕑ᑇ㸵䗮᳔ֵᇣ࣪ ⱘⳂᷛDŽℸӴ㒳ⱘᑊ㸠ᢳ⦃๗Ёˈᑣ߫࣪ᑊ㸠㔥Ḑ⫳៤ৢˈ䳔㽕ϔϾ 㔥Ḑߦߚ䞡ߦߚ˄mesh partitioning or repartitioning˅⦃㡖ˈҹᐂࡽᅲ⦄Ϟ䗄Ⳃ ᷛDŽ㔥Ḑߦߚ䞡ߦߚ⦃㡖䳔㽕ϡৠ໘⧚఼П䯈⿏ࡼ䞣ⱘ㔥Ḑֵᙃˈ⡉ᡃᕜ ⱘ I/O ᪡ˈᔧ㔥Ḑ㾘ᕜᯊˈᅗӮ៤Ў䰡ԢᭈϾᑊ㸠∖㾷䖛ᬜ⥛ⱘ䞡㽕 ॳПϔ[11, 40]DŽℸˈ㢹㛑ᑊ㸠㔥Ḑ⫳៤ⱘৠᯊᕫࠄᑊ㸠∖㾷᠔䳔㽕ⱘ㔥Ḑ ߦߚ㒧ᵰˈ⍜䰸㔥Ḑ䞡ߦߚ⦃㡖䰡Ԣ݊ҷӋˈ߭ৃᐙᑺഄᦤ催ᭈϾᑊ㸠ᢳ 䖛ⱘᬜ⥛DŽ
1.3.3 ᭄ᑊ㸠ӏࡵᑊ㸠 ᑊ㸠㔥Ḑ⫳៤ㅫ⊩Џ㽕ࣙᣀϸ㉏㓪ᓣ˖᭄ᑊ㸠ӏࡵᑊ㸠DŽ ᭄ᑊ㸠ㅫ⊩ᰃߚ㗠⊏П˄divide and conquer˅ᗱᛇᑊ㸠ㅫ⊩䆒䅵Ϟⱘ ൟᑨ⫼Пϔˈᅗⱘ݇䬂⦃㡖ࣙᣀ᭄ߚ㾷᭄ᇘDŽࠡ㗙ᣛᇚ䯂乬ߚ㾷៤ᄤ䯂 乬˗ৢ㗙ᣛᇚᄤ䯂乬ߚ䜡ࠄϡৠⱘ໘⧚఼ϞDŽ ӏࡵᑊ㸠ㅫ⊩ϔ㠀ᰃ㒚㉦ᑺሖⱘ˄fine-grain level˅ˈ䳔㽕থᥬᑣ߫࣪ㅫ⊩ ЁϾ䖤㸠⦃㡖П䯈ᄬⱘᑊ㸠ᑺ˄concurrencies˅ ˈᇚㅫ⊩㒘㒛៤ৃҹᑊথᠻ㸠 4
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
ⱘᄤӏࡵⱘ㒘ড়DŽ⬅ѢӏࡵП䯈ᕔᕔᄬ᭄ゲѝˈᠻ㸠乎ᑣϞѦⳌձ䌪ˈ ӏࡵᑊ㸠ㅫ⊩䖤㸠ᯊӮѻ⫳䞣ⱘ䗮ֵৠℹ䌍⫼ˈ䖭ৃ㛑ӮϹ䞡䰡Ԣㅫ⊩ⱘᑊ 㸠ᬜ⥛DŽℸˈӏࡵᑊ㸠ㅫ⊩ⱘ䆒䅵䰸䳔㽕ᇍᑣ߫࣪ㅫ⊩ⱘϾ⦃㡖᳝䗣ᕏⱘњ 㾷ˈҹ䆒䅵ߎড়⧚ⱘᑊ㸠ൟˈ䖬䳔㽕䖤⫼ᴖⱘᑊ㸠㓪ᡔᎻᴹᦤ催ᑊ㸠ㅫ ⊩ⱘᬜ⥛DŽ↨བˈ䗮䖛ᓖℹᴎࠊ䞡䅵ㅫᴹሣ㬑催ᯖⱘৠℹ䌍⫼DŽˈӏࡵ ᑊ㸠ㅫ⊩ᐌᐌг䳔㽕ᑨ⫼ϔᅮⱘ᭄ߚ㾷ᡔᎻˈҹℸሣ㬑ᑊথᠻ㸠ⱘᄤӏࡵᇍ ԩ᭄ⱘゲѝ᠔ѻ⫳ⱘৠℹ䗮ֵ䌍⫼[13]DŽ ⬅Ѣৃᠽሩⱘӏࡵᑊ㸠ㅫ⊩䆒䅵ᅲ⦄Ϟ䛑ᄬೄ䲒ˈᔧࠡᑊ㸠㔥Ḑ⫳៤ ㅫ⊩ⷨおⱘЏ⌕ᰃ᭄ᑊ㸠ㅫ⊩ⱘⷨおDŽ᭄ᑊ㸠ㅫ⊩ԩϞӮᓩܹҎᎹ䖍 ⬠ˈབᵰҎᎹ䖍⬠߱ྟ䖍⬠䴴ᕫ䖛䖥ˈ݊䰘䖥Ӯѻ⫳䋼䞣䕗ᏂऩˈܗҢ㗠ᕅ ડᑊ㸠ㅫ⊩ⱘ〇ᅮᗻ˗㢹໘⧚ҎᎹ䖍⬠㗫ᯊ䖛ˈӮ䰡ԢᭈϾᑊ㸠ㅫ⊩ⱘᬜ⥛ ৃᠽሩᗻ˗ҎᎹ䖍⬠Ϟ㔥Ḑⱘϔ㟈ᗻᇍㅫ⊩ঞ᭄㒧ᵘⱘ䆒䅵гᰃϔϾᣥDŽ
1.3.4 ᭄ߚ㾷 ᭄ߚ㾷䛑䗮䖛ԩߚ㾷ᴹᅲ⦄ˈᅗࣙᣀϸ㉏˖ϔ㉏ߦߚ㽚Ⲫ䯂乬ඳⱘ⿔ ⭣㔥Ḑˈг⿄⾏ᬷऎඳߚ㾷˗ϔ㉏Ⳉߚ㾷⫼⚍ǃ㒓ǃ䴶ㄝܗ㋴ᦣ䗄ⱘ CAD ൟˈг⿄䖲㓁ऎඳߚ㾷[25]DŽ ⾏ᬷऎඳߚ㾷ᮍᓣজৃߚЎϸ⾡˖ϔ⾡㔥Ḑ㒚࣪ᡔᎻⳌ݇˗ϔ⾡㚠᱃㔥 ḐⳌ݇DŽ㔥Ḑ㒚࣪ᡔᎻ䗮䖛ᇍ⿔⭣㔥Ḑⱘϡᮁࡴᆚ⫳៤᳔㒜㔥Ḑˈℸৃ䗮䖛ߦ ߚ㒚࣪䖛Ёⱘ⿔⭣㔥Ḑᅠ៤᭄ߚ㾷䖛[2]DŽ㚠᱃㔥Ḑৃҹ䗮䖛 Cartesian ߚ 㾷ಯ/ܿঝᷥߚ㾷ᕫࠄˈᅗϔ㠀㽚ⲪᭈϾ䯂乬ඳ[5]DŽ 䖲㓁ऎඳߚ㾷ᮍᓣ߭Ⳉ CAD ൟϞ䖯㸠ߦߚˈ↨བᑨ⫼Ё䕈⊩[26]DŽᕜ Ѣߚ㗠⊏П˄divide-and-conquer˅ᗱᛇⱘІ㸠㔥Ḑ⫳៤ㅫ⊩㔥Ḑ⫳៤ࠡࣙ ϔϾԩߚ㾷䖛[41-44]ˈ䖲㓁ऎඳߚ㾷ᮍᓣᰃᑊ㸠ℸ㉏ㅫ⊩ᯊ᭄ߚ㾷ᮍḜ ⱘ✊䗝ᢽDŽ
1.3.5 ᭄ᇘ˖䴭ᗕ䋳䕑ᑇ㸵ࡼᗕ䋳䕑ᑇ㸵 Ңབԩ䆒䅵䋳䕑ᑇ㸵ㄪ⬹ⱘ㾦ᑺˈᑊ㸠㔥Ḑ⫳៤ㅫ⊩ⱘ᭄ᇘᴎࠊৃߚЎ ϸ㉏˖䴭ᗕⱘࡼᗕⱘDŽ 䴭ᗕⱘ᭄ᇘᴎࠊᰃᣛ᭄ߚ㾷ৢǃᑊ㸠㔥Ḑ⫳៤ࠡᇚ᠔᳝ᄤ䯂乬ᇘ ࠄ໘⧚఼ϞˈϨ㔥Ḑ⫳៤䖛Ёᄤ䯂乬ϡӮϡৠⱘ໘⧚఼П䯈⿏ࡼDŽ䴭ᗕᮍ ᓣϟˈ໘⧚఼ⱘ᭄ⳂᕔᕔㄝѢᄤ䯂乬ⱘ᭄Ⳃ˄ϡᰃᖙ㽕ᴵӊ˅ˈᄤ䯂乬໘⧚఼ П䯈ᄬㅔऩⱘϔϔᇘ݇㋏DŽ ࡼᗕⱘ᭄ᇘᴎࠊᑊ㸠㔥Ḑ⫳៤ᯊއᅮᄤ䯂乬໘⧚఼П䯈ⱘᇘ݇ ㋏DŽϔ㠀ഄˈࡼᗕᮍᓣϟˈᄤ䯂乬᭄Ⳃ䖰䖰Ѣ໘⧚఼᭄Ⳃˈᄤ䯂乬໘⧚఼П
5
ԛ 1 Ⴣ ༢ৢ
䯈ᰃᇍϔⱘᇘˈⳌᑨⱘ᭄ߚ㾷ᮍᓣг⿄䖛ᑺߚ㾷˄overdecomposition˅ DŽ ᭄ᇘⱘ佪㽕Ⳃᷛᰃᑇ㸵Ͼ໘⧚఼Ϟⱘ䋳䕑ˈ䙓ܡ໘⧚఼ぎ䯆DŽℸˈ 䴭ᗕࡼᗕⱘ᭄ᇘᴎࠊ䗮ᐌߚ߿䴭ᗕࡼᗕ䋳䕑ᑇ㸵ㄪ⬹ⳌᇍᑨDŽ㢹ᑊ㸠 㔥Ḑ⫳៤ࠡ㛑⹂ޚ乘Ԅ↣Ͼᄤ䯂乬ⱘ䋳䕑ˈ߭䴭ᗕ䋳䕑ᑇ㸵ㄪ⬹ᰃ䗖ᅰⱘ˗ᴖ ᆚᑺࠊᮍᓣϟˈ䋳䕑乘Ԅ䴲ᐌೄ䲒ˈℸᯊᐌ䞛⫼ࡼᗕ䋳䕑ᑇ㸵ㄪ⬹DŽࡼᗕ䋳䕑 ᑇ㸵ㄪ⬹䖤㸠ᯊᇚӏࡵϡᮁথ䗕㒭ぎ䯆ⱘ໘⧚఼ˈֱ䆕њ໘⧚఼䌘⑤ⱘ߽ߚܙ ⫼DŽ
1.4 ᴀ᭛ⷨおⳂⱘǃݙᆍঞ㒘㒛 Ў⒵䎇ᎹϢ⾥ᄺ䅵ㅫˈ⡍߿ᰃ㾘ᎹϢ⾥ᄺ䅵ㅫⱘᅲ䰙䳔㽕ˈᴀ᭛ᦤ ߎᑊᅲ⦄њϔ㋏߫Ѡ㓈ঞϝ㓈ᑣ߫࣪ঞᑊ㸠㔥Ḑ⫳៤ㅫ⊩DŽᇍᑊ㸠㔥Ḑ⫳៤ㅫ⊩ ⱘⷨおᅲ⦄ˈᴀ᭛ⱘϔϾᴀ㾖⚍ᰃ˖དⱘᑊ㸠㔥Ḑ⫳៤఼ᕔᕔ䳔㽕ѢϔϾ དⱘᑣ߫࣪㔥Ḑ⫳៤఼DŽϡৠⱘㅫ⊩ˈ㗙Ⳍৠㅫ⊩ⱘϡৠᅲ⦄ˈ݊ᗻ㛑ᕔᕔ᳝ ⫮ס㟇कⱘסᏂᓖDŽབᵰ㔎УϔϾདⱘᑣ߫࣪㔥Ḑ⫳៤఼ˈᑊ㸠᠔ᏺᴹⱘད ໘Ӯ㹿ᢉ⍜ᕜDŽℸˈ䰸䩜ᇍ㔥Ḑ⫳៤ঞ݊ᑊ㸠࣪ⱘᶤѯ䯂乬ᦤߎ㾷އᮍḜˈ ᴀ᭛䖬⡍߿⊼䞡䅼䆎ߚᵤᑣⱘ᭄㒧ᵘǃݙᄬՓ⫼ᬜ⥛ǃㅫ⊩ᗻ㛑Ӭ࣪ҹঞ ᑣعໂᗻㄝЏ乬DŽ 䰸 3 ゴҟ㒡ϔ㉏ᑣ߫࣪ঞᑊ㸠ᑇ䴶ಯ䖍ᔶ㔥Ḑ⫳៤ㅫ⊩ˈᴀ᭛ⱘЏ㽕 ݙᆍ䛑ᰃೈ㒩ᑣ߫࣪ঞᑊ㸠 Delaunay 㔥Ḑ⫳៤˄PDMG: Parallel Delaunay Mesh Generation˅ㅫ⊩ⱘⷨおঞᅲ⦄ሩᓔⱘˈ᳔݊㒜Ⳃⱘ᳝Ѡ˖ ˄1˅ᅲ⦄催ᬜǃعໂǃᖿ䗳ⱘᑣ߫࣪ Delaunay 㔥Ḑ⫳៤఼˗ ˄2˅ᓎゟϔ༫عໂⱘᑊ㸠㔥Ḑ⫳៤Ḛᶊˈ㒧ড়ᑣ߫࣪ Delaunay 㔥Ḑ⫳៤఼ˈ ៤ࡳഄЁㄝ㾘ⱘᑊ㸠ߚᏗᓣ⦃๗Ё⫳៤ϞғϾಯ䴶ԧऩܗDŽ ᴀ᭛ⱘЏ㽕ⷨおݙᆍঞপᕫⱘⷨお៤ᵰࣙᣀ˖ ˄1˅㒧ড়ᵓ⊩㞾ࡼऎඳߚ㾷ㅫ⊩ˈ߯䗴ᗻഄᦤߎᑊᅲ⦄њϔ⾡ᮄⱘܼ 㞾ࡼ䴲㒧ᵘ࣪ಯ䖍ᔶ㔥Ḑ⫳៤ㅫ⊩ˈᅗⱘᯊ䯈ᬜ⥛ᰃ㒓ᗻⱘˈ䕗ᔎⱘԩ䗖 ᑨ㛑ˈϨᔶ៤ⱘ᳔㒜㔥Ḑ䋼䞣䕗催ˈ݊ᑊ㸠⠜ᴀᅲ偠Ёг㸼⦄ߎ㡃དⱘৃᠽ ሩᗻDŽӴ㒳ⱘᑊ㸠ᢳ䖛Ёˈᑊ㸠㔥Ḑ⫳៤ৢ䳔㽕䖯㸠㔥Ḑ䞡ߦߚˈ䆹⦃㡖ᓩ ܹ䞣ⱘ I/O ᪡ˈᰃᭈϾᑊ㸠ᢳ䖛ⱘЏ㽕⫊乜ПϔDŽᑊ㸠ಯ䖍ᔶ㔥Ḑ⫳ ៤ㅫ⊩ⱘⷨおঞᅲ⦄Ёˈ៥Ӏ㗗㰥њᄤඳⱘ䖲݇㋏ˈᓩܹᄤඳ˄SDG: SubDomain Graph˅ⱘὖᗉˈᑊ㒧ড়䴭ᗕߦߚㄪ⬹ˈՓᕫᑊ㸠㔥Ḑ⫳៤ߦߚ 䖭ϸϾӏࡵৃৠℹᅠ៤ˈҢ㗠ᦤ催њᭈϾᑊ㸠ᢳ䖛ⱘᬜ⥛DŽ ˄2˅Bowyer-Watson 䞣ᦦ⚍ㅫ⊩[45, 46]ᰃ Delaunay 㔥Ḑ⫳៤乚ඳЁ᳔ᐌ ⫼ⱘㅫ⊩ПϔˈPSUE˄Parallel Simulation User Environment˅[33]Ёህࣙ䆹ㅫ ⊩ⱘϔϾ㒣ᅲ⦄ˈ݊ᅲ⦄䇁㿔Ў Fortran77DŽ׳䡈 PSUE ЁѠ㓈ঞϝ㓈 6
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
ৠᗻ㔥Ḑ⫳៤ഫЁড়⧚ⱘ᭄㒧ᵘঞㅫ⊩䆒䅵ܗ㋴ⱘ⸔Ϟˈᬊ Delaunay 㔥Ḑ⫳៤ⷨおⱘϔѯ᳔ᮄ៤ᵰˈ⫼ C 䇁㿔ᓔথњᮄⱘѠ㓈ঞϝ㓈ᑣ߫࣪ৠ ᗻ㔥Ḑ⫳៤఼ DTIso2D DTIso3DˈᅗӀݙᄬՓ⫼ǃᯊ䯈ᬜ⥛ҹঞعໂᗻϞ 䛑ሩ⦄ߎ㡃དⱘᗻ㛑DŽᅲ偠᭄㸼ᯢˈDTIso3D ऩ CPU ᖂᴎ˄CPU: 1.82GHz˗ ݙᄬ˖512MB˅Ϟ㛑ҹ↣⾦ϞϛϾऩⱘܗ䗳ᑺ1ҹ㒓ᔶᯊ䯈ᬜ⥛⫳៤ಯǃѨⱒϛ ⱘಯ䴶ԧऩˈܗ䖭ՓᕫЁㄝ㾘ᑊ㸠ߚᏗᓣ⦃๗ϟᖿ䗳⫳៤ 1 ғϾҹϞⱘಯ 䴶ԧऩܗ៤Ўৃ㛑DŽ ˄3˅Delaunay 㔥Ḑ⫳៤ㅫ⊩ⱘ䖍⬠ᘶ䯂乬ᰃ㒣䲒乬ПϔDŽᇍ䖍⬠䘫༅ ⱘ᠔᳝ᚙᔶ䖯㸠њ㒚㟈ܼ䴶ⱘߚᵤৢˈᴀ᭛ᦤߎᑊᅲ⦄њϔ༫㑺ᴳ໘Ⳉࡴ⚍ 䖯㸠ϔ㟈䖍⬠ᘶ˄conformal boundary recovery˅ⱘㅫ⊩DŽᑊ㸠 Delaunay 㔥Ḑ ⫳៤ㅫ⊩Ўֱ䆕ϡৠᄤඳ㔥Ḑߚ⬠䴶ϞⱘⳌᆍᗻˈϡܕ䆌㑺ᴳҹߚ↉˄䖍⬠䖍˅ ߚ⠛˄䖍⬠䴶˅ⱘᮍᓣᘶˈℸˈЎ⍜䰸ϔ㟈䖍⬠ᘶㅫ⊩㑺ᴳϞ⏏ࡴⱘ 䕙ࡽ⚍ˈᴀ᭛䖬ⷨおњབԩ⍜䰸䖭ѯ䕙ࡽ⚍ⱘᡔᎻˈϔ㟈䖍⬠ᘶㅫ⊩ⱘ⸔ Ϟˈ៤ࡳᅲ⦄њعໂⱘ㑺ᴳ䖍⬠ᘶ˄constrained boundary recovery˅ㅫ⊩DŽ ˄4˅ഫ࣪њᄤඳㅵ⧚ഫˈᑊ݊Ё䲚៤њࡼᗕߦߚᄤഫˈѢ ᅗᔶ៤њϔϾ䗮⫼ⱘᑊ㸠ᑇ䴶㔥Ḑ⫳៤ḚᶊDŽ㢹䙉ᕾϔᅮⱘ᭄Ѹᤶᷛˈޚ䆹Ḛ ᶊৃᇍӏᛣᑣ߫࣪ঞᑊ㸠ԩߚ㾷ㅫ⊩ǃᑣ߫࣪ᑇ䴶㔥Ḑ⫳៤ㅫ⊩ᅲ⦄ᅠܼⱘҷ ⷕ⫼DŽԧഄˈѢ䆹Ḛᶊˈᑊ㒧ড়ᑊ㸠ಯ䖍ᔶ㔥Ḑㅫ⊩ⷨおЁᅲ⦄ⱘᑊ㸠 ԩߚ㾷ㅫ⊩ҹঞ DTIso2Dˈ៥Ӏᅲ⦄њѠ㓈ᑊ㸠 Delaunay 㔥Ḑ⫳៤఼ PDMG-2Dˈ ᅗЁㄝ㾘ⱘᑊ㸠ߚᏗᓣᑇৄϞ⫳៤ғϾϝ㾦ᔶऩⱘܗ㛑ˈϨ 䰡Ԣњ㔥Ḑ䞡ߦߚ⦃㡖ⱘҷӋDŽ ˄5˅߽⫼ᑇ䴶Ўԩߚ㾷ⱘখ㗗ᑇ䴶ˈ䗦ᔦߚ㾷Ḛᶊϟˈᦤߎᑊᅲ⦄ њϔ༫عໂⱘԩ乘ߚ㾷఼˄prepartitioner˅DŽ߽⫼ᅗЎ᭄ߚ㾷Ꮉˈ㒧ড় DTIso3Dˈ៥Ӏᅲ⦄њϝ㓈ᑊ㸠 Delaunay 㔥Ḑ⫳៤఼ PDMG-3Dˈᅗ៤ࡳഄЁ ㄝ㾘ⱘᑊ㸠ߚᏗᓣ⦃๗Ё⫳៤ϞғϾಯ䴶ԧऩܗDŽ 2 ゴˈᴀ᭛ᇚಲ乒㔥Ḑ⫳៤ঞ݊ᑊ㸠࣪ᡔᴃⱘЏ㽕ⷨお៤ᵰˈ⡍߿ഄˈ ᇍ Delaunay ᮍ⊩ঞ݊ᑊ㸠࣪њ䆺㒚ⱘ䯤䗄DŽ䱣ৢߚ 4 ゴ˄ 3̚6 ゴ˅ᇍϞ䴶 ᦤঞⱘѨϾЏ㽕ⷨおݙᆍߚ߿ሩᓔ䅼䆎DŽ 7 ゴ߭䗮䖛ᅲ偠ˈҢϾ㾦ᑺᇍᑣ߫ ࣪ঞᑊ㸠 Delaunay 㔥Ḑ⫳៤఼ⱘᗻ㛑䖯㸠䆘ԄߚᵤDŽ᳔ৢϔゴᔦ㒇њᴀ᭛ⱘ Џ㽕߯ᮄ⚍ˈᕫߎϔѯ᳝⫼ⱘ㒧䆎ˈᑊߚᵤᴀ᭛ⷨお៤ᵰЁᄬⱘ㔎䱋ˈ㒭ߎњ ᴹࡾⱘᮍDŽ
1
ԧⱘ䗳ᑺؐ᠔⌟䆩ⱘㅫ՟ⱘԩᔶ⢊ǃᆚᑺࠊㄪ⬹ㄝ㋴㗠᳝䕗ᏂᓖDŽ 7
ԛ 1 Ⴣ ༢ৢ
1.5 䞥䌘ࡽ ᴀ᭛᠔᳝ⷨお䛑ᰃ 2002 ᑈᑺᆊᵄߎ䴦ᑈ⾥ᄺ䞥乍ⳂĀᄺ⾥ᑨ⫼ ᢳⱘ䌟㛑⦃๗˄EEMAS: Enabling Environment for Multidisciplinary Application Simulations˅ā˄乍Ⳃ㓪ো˖60225009˅ⱘ䌘ࡽϟሩᓔⱘDŽ
8
2 ゴ 㔥Ḑ⫳៤ঞ݊ᑊ㸠࣪ᡔᴃⷨお㓐䗄
2.1 ࠡ㿔 㔥Ḑ⫳៤ঞ݊ᑊ㸠࣪ᡔᴃⷨお῾䎼䅵ㅫԩǃ㒘ড়᭄ᄺǃᔶᄺǃㅫ⊩䆒䅵ǃ 催ᗻ㛑䅵ㅫᄺㄝϾᄺ⾥ˈ⍝ঞ䯂乬ˈⷨお៤ᵰЄᆠDŽϡᇥⷨお㗙䛑᳒ᇍ ᑣ߫࣪㔥Ḑ⫳៤ᡔᴃⷨおⱘ䖯ሩ䖛ಲ乒[36, 47-52]DŽ⬅Ѣ᠔໘ⷨお乚ඳⱘϡৠˈ ҪӀভ䗄ᯊ䗝ᢽⱘջ䞡⚍г᳝᠔ϡৠDŽDelaunay ϝ㾦࣪ᮍ⊩᳝䕗ᔎⱘ᭄ᄺ㚠 ᱃ˈᴹ㞾䅵ㅫԩ乚ඳⱘⷨお㗙ᇍℸⷨお乛ˈгপᕫᕜ៤ᵰˈℸҪӀⱘ㓐 䗄Ёᇍ᳝݊᠔أདˈ㗠ᇍ㔎УϹḐ᭄ᄺ㚠᱃ǃЏ㽕ࡽ׳Ѣਃথᓣ㾘߭ⱘᮍ⊩ˈབ ࠡ⊓䖯⊩˄AFM: Advancing Front Method˅߭㔎У䆎䗄[36, 49]DŽᴹ㞾ᑨ⫼ᄺ⾥ ଚϮ݀ৌⱘⷨお㗙߭ᇍᅲ䏉Ё㸠П᳝ᬜⱘ㉏ㅫ⊩ഛᛳ݈䍷ˈҪӀⱘ㓐䗄Ёᇍ 㔥Ḑ⫳៤ᡔᴃⱘ䞡㽕Џ乬ᐌ᳝䕗Ўܼ䴶ⱘҟ㒡[47, 48, 50-52]DŽ ᑣ߫࣪㔥Ḑ⫳៤ᡔᴃⷨおⳌ↨ˈᑊ㸠㔥Ḑ⫳៤ᡔᴃⷨおⱘಲ乒ᇥПজᇥˈ 䖭ᑊ㸠㔥Ḑ⫳៤ᡔᴃⷨお䖯㸠ⱘᯊ䯈䕗ⷁǃⷨお៤ᵰⳌᇍ䕗ᇥ᳝݇ˈCougny Shephard[32]ǃChrisochoides[25]ߚ߿ϡৠᯊᳳᇍⳌ݇Џ乬њ㊒ᔽ㓐䗄DŽ 䰤Ѣ㆛ᐙ㗙ⶹ䆚ⱘሔ䰤ˈᴀゴᇚ䙓ܡᇍ㔥Ḑ⫳៤ঞ݊ᑊ㸠࣪ᡔᴃⱘ᠔᳝ Џ乬ഛ㸵ⴔヨˈ㗠ᰃ᳝䞡⚍ഄҟ㒡ᴀ᭛Ⳍ݇ⱘ㔥Ḑ⫳៤ᡔᴃ˖ಯ䖍ᔶऩܗ㔥Ḑ ⫳៤ Delaunay ᮍ⊩DŽ⡍߿ഄˈDelauany ᮍ⊩ঞ݊ᑊ㸠࣪ᰃᴀゴভ䗄ⱘ䞡ЁП 䞡DŽ 2 㡖ᇚㅔऩഄಲ乒䗮⫼ⱘᑣ߫࣪㔥Ḑ⫳៤ᡔᴃˈ 3 㡖ҟ㒡ಯ䖍ᔶऩܗ㔥 Ḑ⫳៤ㅫ⊩ˈ 4 㡖 5 㡖ߚ߿ҟ㒡ᑣ߫࣪ঞᑊ㸠 Delaunay 㔥Ḑ⫳៤ᮍ⊩᠔ পᕫⱘ៤ᵰDŽ
2.2 䗮⫼㔥Ḑ⫳៤ᮍ⊩ 㔥Ḑ⫳៤ᡔᴃⷨおⱘ䖯Ё⍠⦄䖛䆌䆌ⱘᮍ⊩DŽ᳝ѯᮍ⊩ᄬ㟈ੑ㔎 䱋ˈᏆϡݡফࠄ݇⊼ˈ㹿དⱘᮍ⊩᠔᳓ҷ˗㗠᳝ѯᮍ⊩߭⣀⡍ⱘӬˈ ҡᑨ⫼Ѣ⡍ᅮᑨ⫼乚ඳЁ˗᳝⾡⫳ੑᵕᔎⱘᮍ⊩ˈᅗӀ䗖ᑨ䴶ᑓˈ㒣䖛 कᑈⱘথሩˈᏆ㒣Ⳍᇍ៤❳ˈᑊ䲚៤ࠄൟଚ⫼ᑣЁˈ៤ࡳᑨ⫼Ѣ⦄ᅲ䯂乬ⱘ ᭄ؐᢳЁDŽЎᮍ֓䍋㾕ˈ៥Ӏ⊯ᣛϝ㉏ᮍ⊩ЎĀ䗮⫼㔥Ḑ⫳៤ᮍ⊩ā ˈℸ໘ˈ Ā䗮⫼āѠᄫᑊ᮴ϹḐ䞣࣪НDŽϔ㠀䅸Ў᳝ಯ㉏Ā䗮⫼ā㔥Ḑ⫳៤ᮍ⊩˖ᇘ ⊩ǃDelaunay ᮍ⊩ǃࠡ⊓䖯⊩ಯ/ܿঝᷥ⊩DŽDelaunay ᮍ⊩ᇚc2.4 䞡⚍ҟ
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
㒡ˈ䖭㡖াㅔऩҟ㒡݊ԭϝ⾡㔥Ḑ⫳៤ᮍ⊩DŽ
2.2.1 ᇘ⊩ ᇘ⊩Џ㽕⫼Ѣ⫳៤㒧ᵘ࣪㔥Ḑˈᅗᅲ⦄ㅔऩˈ䖤㸠ᬜ⥛催ˈϨ᳔㒜㔥Ḑ䋼 䞣䕗ད˗Ԛᕜ䲒䗖ᑨᴖ䖍⬠ˈϨϡᯧᅠ៤㔥Ḑ䖛⏵DŽഫ⢊㒧ᵘ࣪㔥Ḑ⫳៤ᡔᴃ ᢧᆑњᇘ⊩ⱘ䗖⫼ぎ䯈ˈ CFD ㄝ乚ඳ᳝ᑓ⊯ⱘᑨ⫼DŽ ᇘ⊩ⱘᗱ䏃䴲ᐌㅔऩˈᴀℹ偸ࣙᣀ˖ᇚᅮН⠽⧚ぎ䯈Ϟⱘ䯂乬ऎඳ ᇘЎখ᭄ぎ䯈ⱘ㾘߭ᔶԧ˗䱣ेৢ㗙ݙ䚼Ꮧ㕂㔥Ḑ˗᳔ৢᇚখ᭄ぎ䯈ⱘ㔥Ḑড ᇘࠄ⠽⧚ぎ䯈ˈᔶ៤ॳ䯂乬ऎඳⱘ㔥Ḑˈ 1 ⼎ᛣњᇘ⊩ⱘॳ⧚DŽ Y
V ᇘ ⠽⧚ぎ䯈
ডᇘ O
খ᭄ぎ䯈
X
O
U
1 Ѡ㓈ᚙᔶϟᇘ⊩ॳ⧚⼎ᛣ ᇘߑ᭄ⱘ䆒ᅮᰃᇘ⊩ᅲᮑⱘ݇䬂ˈᅗϔ㠀ࣙᣀϝ⾡ᔶᓣ˖ֱ㾦ᇘ ˄conformal mapping˅ǃѢأᖂߚᮍ˄PDE-based˅ҷ᭄ᦦؐ˄algebraic interpolation˅[53]DŽ݊ЁѢأᖂߚᮍⱘᇘ⊩[54] CFD 乚ඳⱘ䌈ԧ㔥Ḑ⫳ ៤Ё᳝ᑓ⊯ⱘᑨ⫼ˈ㟇Ҟҡᰃ㔥Ḑ⫳៤ⷨおⱘϔϾ⛁⚍䲒⚍䯂乬DŽ ᇘᗱᛇ㔥Ḑ⫳៤乚ඳⱘϔϾᑨ⫼ᰃ䯈᳆䴶㔥Ḑ⫳៤DŽ⦄᳝ⱘ CAD ㋏㒳Ёˈ᳆䴶ഫ䛑⬅ঠব䞣খ᭄ᮍ㸼⼎DŽ㢹ᇚ᳆䴶ഫᇘࠄখ᭄ᑇ䴶Ϟˈ߽ ⫼ᑇ䴶㔥Ḑ⫳៤ᮍ⊩খ᭄ᑇ䴶Ꮧ㕂㔥Ḑˈ䱣ৢডᇘ㟇ॳ᳆䴶ഫˈेৃᕫࠄॳ ᳆䴶ഫⱘ㔥Ḑ[55]DŽᇘ⊩⫳៤᳆䴶㔥ḐⱘЏ㽕䯂乬Ѣ˖খ᭄ᑇ䴶Ϟᔶᗕ㡃ད ⱘ㔥Ḑডᇘࠄॳ᳆䴶ഫৢৃ㛑Ӯߎ⦄⭌বDŽ㾷އ䖭ϔ䯂乬ⱘᗱ䏃᳝Ѡ˖ϔᰃׂ ᬍ᳆䴶ഫⱘখ᭄㸼䖒ˈ䰡Ԣখ᭄ᑇ䴶ॳ᳆䴶ഫП䯈ⱘᇘ᠔ᓩ䍋ⱘ⭌ব˗Ѡᰃ ḍॳ᳆䴶ഫⱘ᳆⥛ǃ⊩ㄝԩֵᙃˈࠊখ᭄ᑇ䴶㔥Ḑ⫳៤ˈՓᕫখ᭄ᑇ䴶 Ϟৃ㛑⭌বⱘ㔥Ḑডᇘࠄॳ᳆䴶ഫৢᔶᗕ㡃དDŽ
2.2.2 ࠡ⊓䖯⊩ ࠡ⊓䖯⊩᳝ᯊг⿄⊶ࠡ⊩ˈPeraire ㄝ[56]䅸Ўᅗⱘᴹ⑤ৃҹ䗑⒃ࠄ George ⱘᄺᴃ䆎᭛[57]ˈԚ᳔ܜℷᓣߞ⠽Ϟথ㸼᭛ゴҟ㒡䆹ᮍ⊩ⱘᰃ Lo[58]ˈL噋hner ㄝ[59]䱣ेᇚ݊ᑓࠄϝ㓈DŽࠡ⊓䖯⊩ᇍԩ䖍⬠ⱘ䗖ᑨ㛑ᔎˈϨ᳔㒜㔥Ḑ 䋼䞣䕗དˈℸফࠄᕜⷨお㗙ⱘ䴦ⴤˈᑊ㹿䖙䗳ᑓࠄ㔥Ḑ⫳៤ⱘ݊ᅗ䞡㽕乚
10
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
ඳˈབ᳆䴶㔥Ḑ⫳៤ǃ㞾䗖ᑨ㔥Ḑ⫳៤ǃᓖᗻ㔥Ḑ⫳៤ঞᑊ㸠㔥Ḑ⫳៤ㄝDŽ 㒣⊓ࠡⱘ䖯⊩[60]ࣙᣀϝℹ˖ܜᔧࠡⱘ䖍⬠㑺ᴳϞᇏᡒড়䗖ⱘࠡ⊓˗ 䱣ৢऎඳݙ䚼ᦦܹᮄ㡖⚍䖲Ꮖ᳝㡖⚍ˈҹᔶ៤ϔϾᮄⱘऩ˗ܗ᳔ৢ⿏এᮄ ऩˈܗᑊᮄࠡ⊓DŽ㡖⚍ԡ㕂ⱘ⹂ᅮ䗮ᐌҹӬ࣪ᮄऩⱘܗ䋼䞣ЎⳂᷛˈ 2 ⼎ᛣ њѠ㓈ᚙᔶϟࠡ⊓䖯⊩ᅲᮑ䖛DŽ བᵰᮄऩܗϡᰃϔϾϔϾ⫳៤ˈ㗠ᰃ⊓ⴔ䖍⬠ϔሖϔሖ⫳៤ˈࠡ⊓䖯⊩ህ ব࣪Ўࠡ⊓ሖ䖯⊩˄ALM: Advancing Layer Method˅[61]ˈᅗৃ䖍⬠䰘䖥⫳៤ ⊓䖍⬠ᮍሖ⢊ᥦ߫ⱘ催䋼䞣ऩˈܗ⒵䎇∖㾷 Navier-Stokes ᮍㄝ䯂乬ⱘ䳔㽕DŽ ࠡ⊓䖯⊩ⱘᴀᗱᛇ䖬ৃ⫼Ѣಯ䖍ᔶऩܗ㔥Ḑ⫳៤ˈ䖭ᯊজ⿄݊Ў䫎䏃⊩ ˄Paving Method˅[62]DŽ䫎䏃⊩Ёˈऩৃܗҹϔᥦϔᥦ⫳៤[63]ˈгৃҹϔϾϔ Ͼ⫳៤[64]DŽ㕢 Sandia ᆊᅲ偠ᅸⱘ Lober ㄝҎᑊ㸠њ䫎䏃⊩ˈᑊᑨ⫼Ѣ㞾䗖 ᑨߚᵤЁ[34]DŽPlastering ᮍ⊩߭䆩ᇚࠡ⊓䖯ⱘᴀᗱᛇ⫼Ѣ݁䴶ԧ㔥Ḑ⫳ ៤ˈԚ⦄᳝ㅫ⊩ϡ〇ᅮˈҡ㒻㓁ⷨおПЁ[65, 66]DŽ
2 Ѡ㓈ᚙᔶϟࠡ⊓䖯⊩⼎ᛣ
3 ಯঝᷥߚ㾷⼎ᛣ
2.2.3 ಯ/ܿঝᷥ⊩ Ў䖥Ԑ㸼ᕕϔϾᑇ䴶⠽ԧˈৃҹ⫼ϔϾࣙೈⲦ㽚Ⲫ䆹⠽ԧˈ䱣ৢ⊓ⴔ䕈䗦 ᔦഄಯߚࣙೈⲦˈ᳔ৢˈࣙೈⲦ⬅ሎᇌϡϔⱘᮍḐ㒘ড়㗠៤ˈ䖭ѯᮍḐг⿄ಯߚ ԧ˄quadrant˅DŽࠨ䰸ᥝԡѢ⠽ԧ䚼ⱘಯߚԧˈᑊᇍ⠽ԧ䖍⬠ⳌѸⱘಯߚԧ䖯 㸠⡍߿໘⧚ˈ߭ৃҹᅠ៤ᇍ⠽ԧⱘぎ䯈ߚ㾷ˈབ 3 ᠔⼎DŽᰒ✊ˈಯঝᷥᰃ㸼ᕕ 䖭ϔぎ䯈ߚ㾷䖛㒧ᵰⱘ᳔ད䗝ᢽDŽⳌᑨഄˈᇚಯঝᷥᑓࠄϝ㓈ˈৃҹᕫࠄ ܿঝᷥDŽ Shephard Ҫ乚ᇐⱘⷨお㒘佪ܜᇚಯ/ܿঝᷥ⊩ᓩܹࠄ㔥Ḑ⫳៤乚ඳˈ⫼Ѣϝ 㾦ᔶ/ಯ䴶ԧऩ⫳ܗ៤[67, 68]DŽಯ/ܿঝᷥ⊩䗦ᔦߚ㾷ⱘ㒜ℶᴵӊপއѢऩܗᆚᑺ ࠊᮍḜⱘ䗝ᢽᇍ⠽ԧ䖍⬠㒚㡖ⱘᤩᤝDŽЎ䰆ℶⳌ䚏ऎඳऩܗሎᇌব࣪䖛ˈ
11
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
ϔ㠀㽕∖Ⳍ䚏ಯ/ܿߚԧಯ/ܿঝᷥϞⱘ⏅ᑺؐПᏂϡ㽕䍙䖛 1DŽ ಯ/ܿঝᷥ⊩ⱘ䲒⚍Ѣབԩ໘⧚⠽ԧ䖍⬠ˈЎ㊒⹂ഄ⾏ᬷऎඳ䖍⬠ˈᐌ݊ 䰘䖥ѻ⫳䖛䞣ⱘऩܗDŽϝ㓈ᚙᔶϟˈᓩܹĀ࠾ߛܿߚԧ˄cut-octant˅ āৃҹ㓧㾷 䖭ϔᚙᔶDŽԚ䗮䖛ᵓ฿ⱘܙᔶᓣ⫳៤࠾ߛܿߚԧݙऩܗᯊ䳔㽕㗗㰥Ⳍ䚏ܿߚ ԧП䯈㔥Ḑⱘݐᆍᗻˈ⬅ℸ䴶Јⱘᵓᚙᔶ䖒 4096 ⾡ˈेՓ߽⫼ᇍ⿄㾘߭ᴹ ㅔ࣪ᵓ䆒䅵ˈҡ✊䳔㽕໘⧚ 78 ⾡ᚙᔶDŽЎℸˈ᳝ⷨお㗙ᓩܹ Delaunay ᮍ⊩ ࠡ⊓䖯⊩ˈᇱ䆩ⴔ㾷އϞ䗄䯂乬[69]DŽ ಯঝᷥ⊩ܿঝᷥ⊩ৃҹߚ߿⫼ᴹ⫳៤ಯ䖍ᔶऩܗ݁䴶ԧऩ˗ܗCougny ㄝ៤ࡳഄᑊ㸠њಯ/ܿঝᷥ⊩[5]˗Lohner ㄝ߽߭⫼ಯ/ܿঝᷥ⊩Ўぎ䯈ߚ㾷ⱘᎹ ˈᑊ㸠њࠡ⊓䖯⊩[7]DŽ
2.3 ಯ䖍ᔶऩܗ㔥Ḑ⫳៤ ᑇ䴶䯂乬ߚᵤЁˈϝ㾦ᔶऩˈ↨Ⳍܗಯ䖍ᔶऩܗ᳝དⱘߚᵤᗻ㛑ˈᔧ ✊ˈৢ㗙ⱘ⫳៤гЎᴖDŽᇘ⊩ৃҹ⫼ᴹѻ⫳㒧ᵘ࣪ⱘಯ䖍ᔶऩˈܗԚᅗᄬ 䖍⬠䗖ᑨᆚᑺࠊ㛑䛑ᕜᔅⱘ㔎䱋DŽ 䴲㒧ᵘ࣪ಯ䖍ᔶऩܗ㔥Ḑ⫳៤ᮍ⊩ৃҹߚЎϸ㉏[48]˖䯈⊩Ⳉ⊩DŽ䯈 ⊩⫼߽ܜ៤❳ⱘϝ㾦ᔶऩܗ㔥Ḑ⫳៤఼ˈ䯂乬ඳݙᏗ㕂ϝ㾦ᔶऩˈܗ䱣ৢড় ᑊߚ㾷ϝ㾦ᔶऩ⫳ˈܗ៤ܼಯ䖍ᔶϝ㾦ᔶ/ಯ䖍ᔶ⏋ড়ऩܗ㔥ḐDŽⳈ⊩߭ Ⳉ䯂乬ඳݙᏗ㕂ಯ䖍ᔶऩܗDŽ
2.3.1 䯈⊩ ϝ㾦ᔶऩܗ㔥Ḑᔶ៤ҹৢˈ㢹ᇚ↣Ͼϝ㾦ᔶऩܗϔߚЎϝˈৃᔶ៤ܼಯ䖍ᔶ ऩܗ㔥Ḑ˗гৃ䗮䖛ড়ᑊϸϾⳌ䚏ⱘϝ㾦ᔶऩˈܗᔶ៤ܼಯ䖍ᔶϝ㾦ᔶ/ಯ䖍 ᔶ⏋ড়ऩܗ㔥Ḑˈ 4 ⼎ᛣњབԩ䗮䖛ߚ㾷ড়ᑊ᪡ᕫࠄಯ䖍ᔶऩܗ㔥ḐDŽ ߚ㾷⊩ৃҹֱ䆕⫳៤ܼಯ䖍ऩܗ㔥Ḑˈᅗⱘ㔎䱋Ѣ᳔㒜ऩܗ䕗ᏂˈϨॳ᳝ ⱘ䖍⬠⾏ᬷ㒧ᵰӮ㹿ࡴᆚˈ⦄Ꮖᕜᇥ䞛⫼DŽড়ᑊ⊩㢹䗝ᢽϔᇍϝ㾦ᔶ䖯㸠ড় ᑊᯊ㗗㰥ড়ᑊৢᔶ៤ⱘಯ䖍ᔶऩⱘܗᔶ⢊ˈ߭ৃҹᦤ催᳔㒜㔥Ḑⱘ䋼䞣DŽ䗮 䖛ড়ᑊᔶ៤ಯ䖍ᔶऩܗ㔥ḐⱘϔϾ䲒乬Ѣࠄ᳔ৢӮ⬭ϟᕜϝ㾦ᔶऩܗ᮴⊩ ᠻ㸠ড়ᑊ᪡ˈҢ㗠ᔶ៤⏋ড়ऩܗ㔥ḐDŽLo[70]ⱘᎹ䆕ᯢˈৃҹ䗮䖛䆒㕂ϔѯ ਃথᗻ㾘߭ᴹ⹂ᅮϝ㾦ᔶऩⱘܗড়ᑊ乎ᑣˈҹℸሑ䞣ޣᇥऎඳЁ࠽ԭϝ㾦ᔶऩܗ ⱘ᭄ⳂDŽᇍѢᄸゟϝ㾦ᔶˈҹঞড়ᑊ᪡ϡ⒵䎇㒭ᅮ䋼䞣ᷛⱘޚऎඳˈJohnston[71] ߭㒧ড়ऩߚܗ㾷ᢧᠥবᤶ᪡䖯㸠໘⧚DŽ Ѣࠡ⊓䖯ᗱᛇˈᑊሔ䚼ᓩܹऩߚܗ㾷᪡ˈLeeLo[72]ৢᴹᬍ䖯њ Loࠡ䴶ᦤߎⱘㅫ⊩[70]DŽབᵰ䖍⬠䖍ⱘ᭄ⳂЎي᭄ˈҪӀⱘㅫ⊩ৃҹֱ䆕⫳៤ܼ
12
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
ಯ䖍ᔶऩܗ㔥ḐDŽBorouchakiFreyㄝ[73]߭ᓖᗻⱘᆚᑺᑺ䞣ぎ䯈Ёᇚϝ 㾦ᔶऩܗড়ᑊ៤ಯ䖍ᔶऩˈܗ᳔㒜⫳៤ⱘҡᰃ⏋ড়ऩܗ㔥ḐDŽOwenㄝ[74]ᦤߎⱘ Q-Morphㅫ⊩ᬍ䖯њLeeLo[72]ⱘㅫ⊩Ёϡ㾘߭⚍䕗ⱘ㔎䱋ˈϨ᠔⫳៤ⱘ㔥Ḑ 䖬䌈䖍˄boundary alignment˅ҹঞ䖍⬠ℷѸㄝ⡍ᗻDŽѢ䆹ㅫ⊩ⱘᑣᏆ 䲚៤ࠄൟଚ⫼ᑣAnsysЁDŽ5ৠϔㅫ՟ϟ↨䕗њQ-MorphLeeⱘㅫ⊩DŽ
ߚ㾷
ড়ᑊ
4 䯈⊩ᕫࠄಯ䖍ᔶऩܗ㔥Ḑⱘϸ⾡ᮍᓣ˖ߚ㾷ড়ᑊ
˄b˅Lee ⱘㅫ⊩
(a) Q-Morph
5 ৠϔㅫ՟ϟⱘ↨䕗˖Q-Morph Lee ⱘㅫ⊩
13
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
⬅Ѣ䕀ᤶ᪡䛑ᰃϔѯሔ䚼᪡ˈϨ䕗ᇥ⡉⍝ᴖⱘ⍂⚍䖤ㅫˈབ䗝⫼ড়䗖 ⱘϝ㾦ᔶऩܗ㔥Ḑ⫳៤఼ˈᕫࠄⱘ䯈⊩ϔ㠀↨Ѣࠡ⊓䖯ᗱᛇⱘⳈ⊩㽕 ᖿDŽԚᰃ䯈⊩᠔⫳៤ⱘ㔥ḐӮऎඳЁ䘫⬭ϔᅮ᭄䞣ⱘϡ㾘߭㡖⚍ˈ䖭ѯ㡖⚍ 䰘䖥ⱘ㔥Ḑ䋼䞣䕗Ꮒˈ䳔㽕䗮䖛ᢧᠥবᤶ᪡ᴹࡴҹӬ࣪DŽ
2.3.2 Ⳉ⊩ Ⳉ⊩ϔ㠀гৃҹߚЎϸ㉏˖ϔ㉏Ѣߚ㗠⊏Пᗱᛇˈߚ㾷䯂乬ඳЎㅔऩऎ ඳˈ✊ৢㅔऩऎඳ⫼߽ݙᵓ݊ᅗᮍᓣᔶ៤ಯ䖍ᔶऩˈܗ᳔ৢড়ᑊᄤ㔥Ḑ˗ ϔ㉏߽߭⫼ࠡ⊓䖯ᗱᛇˈⳈऎඳݙ䚼Ꮧ㕂㔥ḐDŽ ϔ㉏Ⳉ⊩ࣙԩߚ㾷ᄤඳ㔥Ḑ⫳៤ϸϾ݇䬂ℹ偸ˈϨϸ㗙ᐌᐌᰃѦ Ⳍձ䌪ⱘˈࠡ㗙ⱘⳂᷛПϔህᰃֱ䆕ᔶ៤ⱘĀㅔऩऎඳāヺড়ৢ㗙ⱘ䳔㽕DŽ ಯঝᷥߚ㾷ᰃᐌ⫼ⱘぎ䯈ߚ㾷↉ˈᄤඳ㔥Ḑ⫳៤ᯊ䳔㽕㗗㰥ಯߚԧП䯈 㔥Ḑⱘݐᆍᗻˈᖙ㽕ᯊ䳔㽕䇗ᭈ㡖⚍ԡ㕂ҹᢳড়䖍⬠ᔶ⢊DŽЁ䕈⊩гᰃᐌ⫼ⱘᑇ 䴶ऎඳߚ㾷ᮍ⊩ˈᑊᇱ䆩ᢧሩࠄϝ㓈ᚙᔶDŽJoe[75]㗗㰥㾦ᑺㄝԩ㋴ˈ߽⫼ Ⳉ㒓ᇚᏺݙ䚼㑺ᴳⱘ䖍ᔶऎඳߚ㾷៤ߌ䖍ᔶDŽTalbert ㄝ[44]г߽⫼Ⳉ㒓ᴹߚ 㾷ऎඳˈϡ䖛ԩߚ㾷ࠡ䳔㽕⾏ܜᬷ䖍⬠ˈߚ㾷㒓ᴗ䞡ߑ᭄ⱘᣛᇐϟᕫࠄˈ ᴗ䞡ߑ᭄Ё㗗㰥њ䴶⿃ǃ㾦ᑺǃ䭓ᑺㄝԩ㋴ˈҹሑ䞣ޣᇥߚ㾷㒓ᇍ᳔㒜㔥Ḑ 䋼䞣ⱘᕅડDŽChae ㄝ[41]ǃNowottny[42]ǃSarrate ㄝ[43]ҹঞᴀ᭛㗙г䞛⫼њ ㉏Ԑⱘऎඳߚ㾷ㅫ⊩⫳៤ܼಯ䖍ᔶ㔥ḐDŽ ऎඳߚ㾷ৢˈⴔህᰃᄤඳ㔥Ḑ⫳៤DŽ䚼ߚⱘᄤඳ㔥Ḑ⫳៤ㅫ⊩䛑ᰃѢ ᄤඳᵘൟⱘߚᵤˈ✊ৢߚ߿䆒䅵ᵓࡴҹ฿ܙDŽབ Talbert ㄝⱘㅫ⊩㽕∖᠔᳝ᄤ ඳ䖍⬠㡖⚍᭄Ў 4 6ˈ⬅ℸḍݙ㾦⡍ᗻ䆒䅵ߎ 4 ㉏ 13 ⾡ᵓ䖯㸠฿ܙDŽChae ㄝ Nowottny ⱘㅫ⊩߭ᬒᵒњ Talbert ㄝⱘㅫ⊩ᇍᄤඳⱘ㽕∖ˈԚҡ✊䳔㽕䆒䅵 ⾡ᵓˈᇍᶤѯᚙᔶˈNowottny ⱘㅫ⊩䖬䳔⊓ࠡ⫼׳䖯⊩DŽϢℸϡৠˈLi ㄝ[76, 77]᠔䞛⫼ⱘᵓ⊩߭ᇍᄤඳⱘ㽕∖Ўᆑ⊯ˈϨ᭄ᄺ⸔ད˗Ԛ Li ㄝⱘ ㅫ⊩䳔㽕ᎹߚऎDŽᓩܹ㉏Ԑ Talbert ㄝ᠔䞛⫼ⱘऎඳߚ㾷ㅫ⊩ˈᑊᵘᓎعໂ ⱘൟᵓᮍḜৢˈᴀ᭛㗙㒭ߎњϔϾᮄⱘܼ㞾ࡼಯ䖍ᔶऩܗ㔥Ḑ⫳៤ㅫ⊩ঞ݊ ᑊ㸠࣪⠜ᴀˈԧݙᆍখ㾕ᴀ᭛ 3 ゴDŽ Ѡ㉏Ⳉ⊩߭ᢧሩњࠡ⊓䖯ⱘᗱᛇDŽZhu ㄝ[78]ࠡ⊓䖯⫳៤ϝ㾦ᔶ ऩⱘܗৠᯊড়ᑊϝ㾦ᔶऩˈܗᔶ៤ಯ䖍ᔶ㔥Ḑ˗䫎䏃⊩߭Ⳉऎඳݙ䚼ϔᥦϔ ᥦ⫳៤ಯ䖍ᔶऩ[ܗ62]˗White ㄝ[64]ⱘㅫ⊩߭ᰃᇚऩܗ䗤Ͼഄᕔऎඳݙ䚼䖯˗ 㗠 Cass ㄝ[63]߽߭⫼䫎䏃⊩⫳៤᳆䴶㔥ḐDŽ 6 㒭ߎњϔϾ߽⫼䫎䏃⊩⫳៤ⱘಯ 䖍ᔶऩܗ㔥Ḑᅲ՟DŽ ϔ㉏Ⳉ⊩⬅Ѣऎඳݙ䚼䰘ࡴњ㑺ᴳˈᐌ㑺ᴳ䰘䖥ᔶ៤䋼䞣䕗Ꮒऩ ܗDŽѠ㉏Ⳉ⊩⫳៤ⱘऩܗ䋼䞣䕗催ˈϨৃⳈ䖍⬠䰘䖥ࠊ䌈䖍ऩ⫳ⱘܗ ៤ˈԚᰃㅫ⊩ࣙ䞣⍂⚍䅵ㅫˈ䖤㸠ᬜ⥛䕗ԢDŽ 14
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
6 㔥Ḑ⫳៤ᅲ՟˖䫎䏃⊩
2.4 Delaunay ᮍ⊩ ᑇ䴶⚍ⱘ乚ඳ䯂乬ᮽ 1850 ᑈህ㹿ᦤߎ[79]ˈVoronoï Ѣ 1908 ᑈᇚ݊ᢧሩࠄ 催㓈ᚙᔶ>>@ˈ㗠 Delaunay ϝ㾦࣪ᰃ Voronoï ⱘᇍيˈᅗѢ 1934 ᑈ㹿 ᦤߎ[82]DŽԚᇚ Delaunay ϝ㾦࣪ᓩܹ㔥Ḑ⫳៤乚ඳै㽕ㄝࠄϞϪ㑾 70 ᑈҷ 80 ᑈҷ߱ˈBowyer[45]ǃWatson[46]ǃHermeline[83] Lawson[84]ㄝЎℸњᓔ ᢧᗻⱘᎹˈҪӀᦤߎⱘ Delaunay ϝ㾦࣪ㅫ⊩៤Ўᔧࠡ Delaunay 㔥Ḑ⫳៤ⱘЏ ⌕ㅫ⊩DŽ䱣ৢˈ⬅Ѣ Delaunay ᮍ⊩᭄ᄺ⸔དǃᖿ䗳᳝ᬜˈϨ⫳៤ⱘऩܗ 䋼䞣䕗དㄝ⣀⡍ⱘӬˈᓩ䍋њᴹ㞾བ䅵ㅫԩǃأᖂߚᮍ᭄ؐ∖㾷ㄝ乚ඳⱘ ӫⷨお㗙ⱘ݇⊼ˈҪӀ䖛এѠकᑈᣕ㓁ϡᮁഄড়ࡼϟˈDelaunay ᮍ⊩ Ꮖ㒣៤Ў㔥Ḑ⫳៤乚ඳⱘЏ⌕ᮍ⊩Пϔˈᑊ㹿ᢧሩࠄ㔥Ḑ⫳៤ⷨおⱘϾᄤ乚 ඳ˖᳆䴶㔥Ḑ⫳៤ǃϝ㓈㔥Ḑ⫳៤ǃᓖᗻ㔥Ḑ⫳៤ঞᑊ㸠㔥Ḑ⫳៤ㄝDŽᘏⱘ ᴹ䇈ˈᇍѠ㓈䯂乬ˈDelaunay ᮍ⊩ⱘⷨおᏆ㒣䴲ᐌ⏅ܹˈৃᴀ䅸Ў≵᳝䲒⚍ᄬ ˗ᇍϝ㓈䯂乬ˈDelaunay ᮍ⊩гᕫࠄњ៤ࡳⱘᑨ⫼ˈԚ⧚䆎ᅲ䏉Ϟ䖬ᄬ ϔѯ䯂乬ˈc2.4.3 ᇚᇍℸ䕗Ў䆺㒚ⱘ䯤䗄DŽ
2.4.1 Delaunay ϝ㾦࣪ᴀ⧚䆎 㒭ᅮ⇣ぎ䯈 E d ЁѦϡ䞡ড়ⱘ n Ͼ⚍㒘៤ⱘ⚍䲚 P { p1 , p 2 , , p n } ˈᇍ↣ Ͼ⚍ pi P ˈ݊䰘䖥ᘏᄬϔഫ䖲㓁ⱘぎ䯈 V ( pi ) ˈ⒵䎇
V ( pi ) {x : pi x d p j x , j z i} ៥Ӏ⿄ V ( pi ) Ў⚍ pi ⱘ Voronoï ˄ܗVoronoï cell˅ ˈ㗠᠔᳝⚍ⱘ Voronoï ߭ܗ㒘៤
15
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
њ⚍䲚 P ⱘ Voronoï DŽ䖲 Voronoï ЁᄬⳌ䚏݇㋏ⱘ⚍ˈৃҹᕫࠄ Voronoï ⱘᇍي Delaunay ϝ㾦࣪ˈབ 7 ᠔⼎DŽℸᯊˈVoronoï Ё d 1 ϾⳌ䚏⚍㒘 ៤ϔϾऩ㒃ᔶԧ˄simplex˅s ˈ䖛 s ⱘ᠔᳝乊⚍ৃҹ⹂ᅮϔϾ䍙⧗˄hypersphere˅ ˈ 䆹⧗ेЎ s ⱘ⧗DŽ
Voronoï ܗ
ぎ
Delaunay ϝ㾦࣪
7 Ѡ㓈 Voronoï Delaunay ϝ㾦࣪ⱘᇍ㋏݇ي
Delaunay ϝ㾦࣪ৃ㹿㾚ЎϔϾӬ࣪ˈ߭ޚᅗ᳝ᕜ⣀⡍ⱘᗻ䋼DŽҹѠ㓈ᚙ ᔶЎ՟ˈᔧ⚍䲚Ёϡᄬಯ⚍݅ⱘᚙᔶᯊˈৃҹ䆕ᯢ Delaunay ϝ㾦࣪ⱘଃϔ ᗻ˗Ϩ Delaunay ϝ㾦࣪Ё↣Ͼϝ㾦ᔶᇍᑨⱘᰃぎˈेᅗⱘݙ䚼ϡ ࣙ⚍䲚Ёӏᛣϔ⚍[85]DŽぎሲᗻᢧሩࠄӏᛣ d 㓈ᚙᔶेЎぎ⧗ሲᗻDŽ ˈ݊ᅗϝ㾦࣪㒧ᵰⳌ↨ˈDelaunay ϝ㾦࣪㛑পᕫ᳔ⱘ᳔ᇣ㾦ˈ㗠䙓ܡऩ ݙܗ㾦䖛ᇣℷᰃᕫࠄ催䋼䞣㔥Ḑⱘᖙ㽕ᴵӊПϔDŽሑㅵ᳔ˉ᳔ᇣ㾦⡍ᗻ催㓈 ぎ䯈Ёᑊϡ៤ゟˈԚᅲ䏉㸼ᯢˈ߽⫼ Delaunay ߭ޚ䖯㸠ϝ㾦࣪ৃ᳝ᬜഄޣᇥݙ 㾦⣁ᇣऩⱘܗѻ⫳DŽDelaunay ϝ㾦࣪᠔ⱘϞ䗄Ӭ㡃⡍ᗻՓᕫ݊㔥Ḑ⫳៤乚 ඳ䖙䗳ᕫࠄᑓ⊯ⱘᑨ⫼DŽ
2.4.2 Delaunay 㔥Ḑ⫳៤ⱘᐌ⫼ㅫ⊩ Delaunay ϝ㾦࣪ᰃ䅵ㅫԩⱘ䞡㽕ⷨお乚ඳˈ㒭ᅮ⚍䲚ⱘ Delaunay ϝ㾦࣪ ㅫ⊩᳝ᕜ˖ߚ㗠⊏П⊩ǃѢߌࣙⱘㅫ⊩ǃᠿᦣ㒓⊩ǃGift Wrapping ㅫ⊩ǃ 䞣ㅫ⊩ㄝDŽSu Drysdale[86]ᇍ݊ЁⱘЏ⌕ㅫ⊩ⱘᗻ㛑䖯㸠њ⏅ܹⱘ⧚䆎ᅲ偠
16
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
䆘ԄDŽԚ㽕⊼ᛣࠄˈDelaunay ϝ㾦࣪ Delaunay 㔥Ḑ⫳៤ᰃϸϾϡৠⱘ乚ඳˈ ϸ㗙᮶᳝㘨㋏ˈজ᳝ऎ߿DŽᇚ Delaunay ϝ㾦࣪ᑨ⫼ࠄ㔥Ḑ⫳៤乚ඳ㽕໘⧚ϔѯ ⡍⅞ⱘ䯂乬ˈབ䖍⬠ᘶǃ⚍ⱘ㞾ࡼᦦܹㄝDŽ⬅ℸˈ䙷ѯᅮ⚍䲚ⱘ Delaunay ϝ㾦࣪Ё㸼⦄ᑊ䴲᳔Ӭⱘㅫ⊩ˈབ䞣ㅫ⊩ˈ⬅Ѣ㞾䑿݊ᅗᮍ䴶ⱘӬˈै Delaunay 㔥Ḑ⫳៤乚ඳЁᕫࠄᑓ⊯ⱘᑨ⫼DŽ ᴀ㡖ᇚЏ㽕ҟ㒡ᔧࠡЏ⌕ⱘ Delaunay 㔥Ḑ⫳៤ㅫ⊩˖Bowyer-Watson ぎ ⧗ㅫ⊩˄ㅔ⿄ B-W ㅫ⊩˅[45, 46]ঞ䖍/䴶Ѹᤶㅫ⊩˄edge/face swap algorithm˅[84]DŽ ᑊㅔ⬹ഄᦤঞѢߌࣙⱘㅫ⊩[87] Tanemura-Ogawa-Ogita ㅫ⊩[88]DŽ 2.4.2.1 Bowyer-Watson സ֥
B-W ㅫ⊩ᰃѢ Delaunay ϝ㾦࣪ⱘぎ⧗ሲᗻ䆒䅵ⱘˈሲѢ䞣ㅫ⊩DŽ ؛䆒 Tn ᰃ⚍䲚 Pn
{ p1 , p 2 , , p n } ⱘ Delaunay ϝ㾦࣪ˈᇍ Tn ЁӏᛣϔϾऩ㒃ᔶԧ
t ˈ݊⧗ञᕘ⧗ᖗߚ߿ЎЎ rt qt DŽ Tn Ёᦦܹᮄ⚍ p n 1 ˈᅮН᠔᳝ ⧗ࣙ p n 1 ⱘऩ㒃ᔶԧ㒘៤ⱘ䲚ড়Ў B ˈे
B {t | t Tn , d ( p n 1 , qt ) rt } 㢹ֱ䆕 p n 1 Pn ⱘߌࣙ ߭ˈݙB 䴲ぎDŽߴ䰸 B ݙ᠔᳝ऩ㒃ᔶԧˈ Tn ݙᔶ៤ぎ㜨 C ˈ⧚䆎Ϟৃֱ䆕ぎ㜨 C Ў᯳ᔶ˄star-shaped˅ ˈϨ݊Ϟ᠔᳝⚍ᇍ p n 1 ৃ㾚DŽ⬅ℸ
䖲 p n 1 ぎ 㜨 C Ϟ ⱘ ⚍ ˈ ৃ ᕫ ࠄ ᅮ Н n 1 Ͼ ⚍ 㒘 ៤ ⱘ ⚍ 䲚
Pn 1
{ p1 , p 2 , , p n , p n 1 } Ϟⱘϝ㾦࣪ Tn 1 DŽ݇Ѣぎ㜨 C Ў᯳ᔶǃC Ϟ᠔᳝⚍ᇍ p n 1
ৃ㾚ঞ Tn 1 Ў Delaunay ϝ㾦࣪ⱘ⧚䆎䆕ᯢৃখ㾕 Baker ⱘ䆎᭛[89, 90]DŽ
ᇏᡒぎ㜨
䞡ᮄϝ㾦࣪
8 Ѡ㓈 Bowyer-Watson 䞣ᦦ⚍䖛 䙉ᕾϞ䴶ⱘ⧚䆎ˈབ 8 ᠔⼎ˈB-W ㅫ⊩䞣ᦦ⚍䖛ⱘᅲ䰙ᅲ⦄བϟ˖؛ 䆒ᦦܹ⚍Ў p i ˈᦦܹࠡৢⱘ㔥Ḑߚ߿ᅮНЎ M i M i 1 ˈᡒࠄࣙ p i ⱘऩܗ ৢˈ佪⫼߽ܜऩܗП䯈ⱘⳌ䚏݇㋏ˈᡒࠄ᠔᳝ᠧ⸈ⱘ߭ޚऩˈܗᅮНᅗӀ 㒘៤ⱘぎ㜨Ў C i ˗䱣ৢߴ䰸ぎ㜨 C i ˈ䖲 p i C i 䖍⬠Ϟⱘ乊⚍ˈぎ㜨ݙᔶ៤ ᮄⱘϝ㾦࣪ Bi ˈᑊᮄऩܗ䚏݇㋏DŽ⬅ℸˈϔᦦ⚍䖛ৃᔶ䈵ഄ㸼⼎Ў˖
17
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
M i 1
M i Ci Bi
ᖿ䗳ⱘ Bowyer-Watson ㅫ⊩ᅲ⦄Ёˈᇏᡒぎ㜨ϝ㾦࣪ᮄᰃৠℹⱘˈेᔶ៤ ぎ㜨ⱘৠᯊᅠ៤ᮄऩܗᵘᓎⳌ䚏݇㋏ⱘᮄ[91, 92]ˈᔧ✊ˈ䖭䳔㽕㊒ᖗ䆒䅵 ϔѯ䕙ࡽ᭄㒧ᵘᴹࡴҹᅲ⦄ˈᴀ᭛ 4 ゴᇚ㒭ߎϔϾⳌᑨⱘ㾷⊩ࡲއDŽ 2.4.2.2 Ψ/ੋ߬ܰസ֥ Lawson[84]佪ߎᦤܜњ䗮䖛䖍Ѹᤶᅲ⦄Ѡ㓈ऎඳ Delaunay ϝ㾦࣪ⱘᗱᛇDŽ݊ ᅲ⦄䗨ᕘᰃᇍࣙ䴲 Delaunay ϝ㾦࣪ⱘߌಯ䖍ᔶ䖯㸠ᇍ㾦Ѹᤶˈ⍜䰸ಯ䖍ᔶݙ ᄬⱘሔ䚼䴲 Delaunay ϝ㾦࣪ᚙᔶˈབ 9 ᠔⼎DŽ⧚䆎Ϟৃҹ䆕ᯢˈᇍᑨѠ㓈 䯂乬ˈϡᄬሔ䚼䴲 Delaunay ϝ㾦࣪ᚙᔶᰃܼሔ Delaunay ϝ㾦࣪ⱘܙ㽕ᴵӊˈ Ϩӏᛣ⚍䲚ⱘϝ㾦࣪ᘏᰃৃҹ䗮䖛᳝䰤ᇍ㾦Ѹᤶ᪡䕀বЎ Delaunay ϝ㾦࣪ˈ 䖭⧚䆎Ϟֱ䆕њ䖍Ѹᤶㅫ⊩ⱘ᳝ᬜᗻᬊᬯᗻ[85]DŽ
ᇍ㾦Ѹᤶ
9 Ѡ㓈ᇍ㾦Ѹᤶ 䞣䖍Ѹᤶㅫ⊩ϔ㠀ࣙᣀབϟℹˈབ 10 ᠔⼎˖ ˄1˅ᡒࠄࣙᦦܹ⚍ⱘऩܗDŽ ˄2˅䖲ᦦܹ⚍ऩⱘܗ乊⚍ˈᇚऩⱘܗϝᴵ䖍ᬒܹϔϾ䖍䫒㸼˗㢹 ᦦܹ⚍ᶤᴵ䖍Ϟˈߚ㾷݅ѿ䆹䖍ⱘ 2 Ͼϝ㾦ᔶЎ 4 Ͼᇣϝ㾦ᔶˈᇚϸ݅ѿϝ㾦 ᔶ䰸݅ѿ䖍ⱘ 4 ᴵ䖍य़ܹ䖍䫒㸼DŽ ˄3˅Ң䖍䫒㸼Ёᦤপ䖍ˈᇍ݅ѿ䆹䖍ⱘϸϾϝ㾦ᔶ䖯㸠⌟߭ޚ䆩ˈ 㢹ᶤϾ乊⚍㹿ϡࣙ䆹乊⚍ⱘϝ㾦ᔶⱘ᠔ࣙˈ߭Ѹᤶᇍ㾦㒓ˈᇚϸᴵᮄ 䖍य़ܹ䖍䫒㸼ЁDŽ ˄4˅䞡˄3˅Ⳉ㟇䖍䫒㸼ЎぎDŽ Bowyer-Watson ㅫ⊩Ⳍ↨ˈ䖍Ѹᤶㅫ⊩ᅲ⦄ⳌᇍㅔऩϔѯˈϨᅗⱘ↣ϔℹ 䛑㛑ֱ䆕ϝ㾦࣪ⱘᅠᭈᗻˈϡӮᑨ⍂⚍᭄䇃Ꮒߎ⦄᮴ᬜϝ㾦࣪ⱘ⦄䈵DŽGuibas Stolfi[93]ᦤկњ䆹ㅫ⊩ⱘϔϾ䕗Ўᅠ㕢ⱘᅲ⦄DŽ Ԛᰃˈ䖍Ѹᤶㅫ⊩ᢧሩࠄϝ㓈ঞ催㓈ᚙᔶᯊैϡབ Bowyer-Watson ㅫ⊩䙷 МⳈˈJoe Rajan[94, 95]ᇍℸњᓔᢧᗻⱘᎹDŽᅗӀⱘㅫ⊩ϝ㓈ᚙᔶϟ г䳔㽕⫼ࠄϔѯᴀⱘሔ䚼বᤶ᪡ˈབ 11 ᠔⼎DŽѠ㓈ᑇ䴶䖍Ѹᤶㅫ⊩ϔ ḋˈ䳔㽕ৢ✊ˈ⚍ܹᦦܜḍᦦܹ⚍ⱘԡ㕂ሔ䚼ߚ㾷Ⳍᑨऩˈܗ᳔ৢᠻ㸠ሔ䚼ব
18
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
ᤶ᪡ˈӬ࣪ϝ㾦࣪㒧ᵰDŽ
ߚ㾷ऩܗ
1 Ѹᤶ
2 Ѹᤶ
10 Ѡ㓈Ѣᇍ㾦Ѹᤶ᪡ⱘ䞣ᦦ⚍䖛 B
B
Swap32 C
C D
D
Swap 23
E
E
A
A
F
F
B
B D
D
Swap 44
C
E
A
C
E
A
11 ϝ㓈ϝ㉏ᴀ䖍䴶Ѹᤶ᪡ 2.4.2.3 ୣസ֥ 䰸 Bowyer-Watson ㅫ⊩䖍 / 䴶Ѹᤶㅫ⊩ˈг᳝ⷨお㗙ᇱ䆩њ݊ᅗϔѯ Delaunay 㔥Ḑ⫳៤ㅫ⊩ˈབѢߌࣙ⊩[37] Tanemura-Ogawa-Ogita ⊩[88]DŽ Brown[96]থ⦄ d 㓈⚍䲚ⱘ Delaunay ϝ㾦࣪݊ᇍᑨ d 1 㓈⚍䲚ⱘߌࣙП䯈 ᄬᶤ⾡ᇘ݇㋏ˈ߽⫼䖭⾡݇㋏ˈDelaunay ϝ㾦࣪䯂乬ৃ䕀࣪Ўߌࣙᵘᓎ䯂乬DŽ ϔ㠀ഄˈѢߌࣙ⊩ࣙᣀϝℹ˖ܜᇚ d 㓈⚍ᡩᇘࠄ d 1 㓈ᡯ⠽䴶Ϟˈᕫࠄᇍᑨⱘ d 1 㓈⚍˗䱣ৢ d 1 㓈ぎ䯈ⱘ᠔᳝ᡩᇘ⚍ПϞᓩܹϔϾᮄ⚍ˈᇍᑨ d 㓈ぎ䯈 ϔϾ᮴か䖰໘⚍ˈᑊᵘᓎ᠔᳝⚍ⱘߌࣙ˗᳔ৢᇚߌࣙᇘಲ d 㓈ぎ䯈ˈߌࣙЁᮍ ᳱϟⱘ䴶ᵘ៤њ d 㓈ぎ䯈⚍䲚ⱘ Delaunay ϝ㾦࣪DŽ 12 ⼎ᛣњѢϝ㓈ߌࣙ ᵘᓎⱘѠ㓈 Delaunay ϝ㾦࣪ㅫ⊩DŽџᅲϞˈᡩᕅ䴶䰸њ䗝ᢽᡯ⠽䴶ˈгৃҹ
19
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
䗝ᢽ䴶DŽZheng ㄝ[37, 55, 87]៤ࡳഄᇚ᳝ৡⱘߌࣙᵘᓎᑣ Quickhull[97]䲚៤ ࠄҪӀⱘѠ㓈ǃϝ㓈ঞ᳆䴶 Delaunay 㔥Ḑ⫳៤఼Ёˈᬜᵰ㡃དDŽ
ᡩᕅ
ߌࣙᵘᓎ
ডᡩᕅ
12 Ѣϝ㓈ߌࣙᵘᓎⱘѠ㓈 Delaunay ϝ㾦࣪ㅫ⊩⼎ᛣ
Tanemura-Ogawa-Ogita ⊩[88]Ѡ㓈ⱘ䖍Ѹᤶㅫ⊩㉏Ԑˈϡৠⱘᰃˈࠡ㗙 Delaunay ϝ㾦࣪ⱘৠᯊֱ䆕њ䖍⬠䖍ϝ㾦࣪ЁⱘᄬDŽ㒭ᅮ⚍䲚 P 䖍⬠䖍䲚 ড় Eb ˈ㓈ᡸϔϾ䖍䫒㸼 E ˈ߱ྟ࣪ E Eb DŽӏ䗝ϔᴵ䖍 e E ˈҹ݊⌏ࡼ䖍ˈ ᇏᡒ䰸 e ⱘϸϾッ⚍ⱘӏᛣϔ⚍ p ˈ p e ϡ݅㒓Ϩᵘ៤᳝ぎⱘ Delaunay ϝ㾦ᔶ t DŽᇚ t ⱘϸᴵ䖍ࡴܹ E ˈᔧ✊ˈᏆ㒣 E ⱘݙ䖍᮴䳔ݡ ࡴܹDŽE Ё᠔᳝䖍⬠䖍䳔㹿ϔϾϝ㾦ᔶ᠔ࣙˈ㗠᠔᳝ݙ䚼䖍߭䳔㽕㹿ϸϾϝ㾦 ᔶ᠔ࣙˈ৺߭ˈҹ䆹䖍Ў⌏ࡼ䖍DŽ䳔㽕⊼ᛣⱘᰃˈᇍᑨ䖍⬠䖍䳔ᬒᵒぎ ˈ߭ޚҙҙ㽕∖ࣙ⚍ p ⱘ䙷䚼ߚඳЎぎˈ⬅ℸᵘᓎⱘϝ㾦࣪г⿄㑺ᴳ Delaunay ϝ㾦࣪˄CDT: Constrained Delaunay Triangulation˅DŽ
2.4.3 Delaunay ᮍ⊩ⱘ݇䬂䯂乬ⷨお Delaunay ϝ㾦࣪ㅫ⊩㔥Ḑ⫳៤乚ඳЁᑨ⫼ᕜᑓ⊯DŽᑨ⫼ѢѠ㓈乚ඳˈᅗᏆ 㒣পᕫ↨䕗ᅠ㕢ⱘ㾷އᮍḜ˗Ԛᑨ⫼Ѣϝ㓈㔥Ḑ⫳៤ǃᓖᗻ㔥Ḑ⫳៤ǃ᳆䴶 㔥Ḑ⫳៤ᑊ㸠㔥Ḑ⫳៤ㄝ乚ඳˈᅗ䛑䖬ᄬϔѯᇮ㾷ⱘއ䯂乬DŽᴀ㡖ᑊϡ䆩 䴶䴶ࠄׅഄҟ㒡 Delaunay ᮍ⊩Ϟ䗄᠔᳝ⷨお乚ඳЁⱘⷨお⦄⢊ˈ㗠াᰃಲ 乒ᑣ߫࣪ Delaunay ᮍ⊩Ͼ݇䬂䯂乬Ϟⱘⷨおᗱ䏃ⷨお៤ᵰDŽˈᇍᑊ 㸠 Delaunay ᮍ⊩ⱘಲ乒㹿ᅝᥦc2.5DŽ Delaunay ߭ޚাЎབԩ䖲㒭ᅮ⚍䲚ᦤկњᣛᇐˈᑨ⫼Ѣ㔥Ḑ⫳៤乚ඳˈᅗ 䖬䳔㽕㾷އϸϾ݇䬂䯂乬˖ϔᰃབԩѻ⫳ݙ䚼⚍˗Ѡᰃབԩֱ䆕䖍⬠᳔㒜ϝ㾦 ࣪ЁⱘᄬDŽݙ䚼⚍ⱘᥦ߫᮶㽕⒵䎇ᣛᅮⱘᆚᑺࠊ㽕∖ˈজ㽕ֱ䆕᳔㒜㔥Ḑⱘ ऩܗ䋼䞣DŽϝ㓈䖍⬠ᘶ䴶Јⴔᕜ⧚䆎Ϟⱘೄ䲒ˈ䖭Փᕫᕜਃথᓣㅫ⊩䛑ᰃ ҹ䰡Ԣ䖍⬠䰘䖥ऩܗ䋼䞣ЎҷӋⱘˈབԩ㓧㾷䖭ϔᚙᔶᰃϔϾདⱘ䖍⬠ᘶㅫ⊩ ᖙ乏㗗㰥ⱘ䯂乬DŽ དⱘ㔥Ḑ⫳៤఼᠔䗑∖ⱘⳂᷛࣙᣀᑣⱘعໂᗻǃ᳔㒜㔥Ḑⱘ䋼䞣ҹঞ䖤ㅫ
20
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
ᬜ⥛DŽ݊ᅗㅫ⊩Ⳍ↨ˈDelaunay ᮍ⊩㱑ѢϹḐⱘ᭄ᄺ⧚䆎ˈԚϔᮍ䴶䖍⬠ ᘶㄝ䖛Ёᅗҡᄬ⧚䆎ೄ䲒ˈ䳔㽕ࡽ׳ਃথᓣⱘㅫ⊩ˈϔᮍ䴶ᑣ䖤㸠䖛 ЁӮѢ⍂⚍᭄䖤ㅫᴹ䖯㸠Ѡؐ߸ᮁˈᴎ఼᳝䰤㊒ᑺѻ⫳ⱘ⍂⚍䖤ㅫ䇃Ꮒৃ㛑 ӮՓᑣߎخϢџᅲⳌডⱘ䗝ᢽˈҢ㗠ᇐ㟈䖤ㅫ䫭䇃ˈ⫮㟇ՓᕫᑣዽDŽ᳔㒜 㔥Ḑⱘऩܗ䋼䞣ݙ䚼㡖⚍ѻ⫳ᮍᓣǃ䖍⬠ᘶㅫ⊩ǃᆚᑺࠊㄪ⬹ㄝ݇䬂⦃㡖 ᙃᙃⳌ݇ˈDelaunay ᮍ⊩⧚䆎Ϟᇍऩܗ䋼䞣᳝ϔᅮⱘֱ䆕ˈԚᰃˈབԩ⍜䰸㔥 ḐЁᄬⱘ㭘˄ܗsliver˅ᰃ Delaunay ᮍ⊩䴶ЈⱘᣥПϔDŽৠϔϾㅫ⊩ⱘϡৠ ᅲ⦄ˈ݊ᬜ⥛᳝ᕜⱘᏂ䎱ˈ䖭পއѢᑣ䆒䅵㗙ᰃ৺ᇍḌᖗⱘ᭄㒧ᵘঞㅫ⊩ 䖤㸠ⱘ݇䬂⦃㡖њ㊒ᖗ䆒䅵Ӭ࣪DŽ 2.4.3.1 ઝϦԤಓю ḍᏗ⚍䖲ܗ᪡П䯈ⱘ݇㋏ˈݙ䚼⚍⫳៤ᮍᓣৃҹߚЎ⣀ゟϡ⣀ゟϸ ㉏[87]DŽ⣀ゟⱘ⚍⫳៤ᮍᓣ[98]ϡ㗗㰥⚍ⱘ䖲݇㋏ˈ㗠ҙḍᆚᑺࠊ㽕∖ᥦ ߫ݙ䚼⚍DŽ䖭⾡ᮍᓣᮽᳳⱘ Delaunay ᮍ⊩Ёᕜᐌ⫼ˈᕫࠄⱘ⚍ⱘᥦ߫䗮ᐌᰃ 㒧ᵘ࣪ⱘˈ⬅Ѣ݊ऩܗ䋼䞣ࠊঞ䖛⏵㔥Ḑ⫳៤ᮍ䴶ഛᄬ㔎䱋ˈ⦄Ꮖᕜᇥ䞛 ⫼ˈ㗠ϡ⣀ゟⱘݙ䚼⚍⫳៤ᮍᓣ߭ᰃᔧࠡⷨおⱘЏ⌕DŽ ᐌ⫼ⱘ Delaunay ᮍ⊩佪ܜᕫࠄ䖍⬠⚍䲚ⱘϝ㾦࣪ˈ䱣ৢϡᮁ㒚࣪ᅗˈⳈࠄ⒵ 䎇㒭ᅮⱘᆚᑺ㽕∖ˈℸৃ߽⫼Ꮖ᳝ⱘϝ㾦࣪㒧ᵰᴹᣛᇐݙ䚼⚍ⱘ⫳៤DŽ Weatherill Hassan[99]ǃZheng ㄝ[87]ϝ㾦ᔶⱘ䞡ᖗ໘ᦦ⚍˗INRIA ᅲ偠 ᅸⱘⷨお㗙߭ݙ䚼䖍Ϟ⫳៤ᮄ㡖⚍[100, 101]˗ Rebay[102]߭ Voronoï 䖍 ˄Voronoï segment˅Ϟ⫳៤㡖⚍ˈVoronoï 䖍ᣛϝ㾦ᔶᖗⱘ䖲㒓ˈ⬅ℸ ⫳៤ⱘ᳔㒜㔥Ḑ䴲ᐌ䖥㒧ᵘ࣪㔥ḐDŽሑㅵ䖭ѯᦦ⚍ᮍᓣⱘ᳝ᬜᗻⱘ⧚䆎䆕ᯢ䖬 ᰃ݀ᓔ䯂乬ˈҪӀⱘㅫ⊩ᅲ䏉Ё䛑পᕫњᕜདⱘᬜᵰDŽϞ䗄ᦦ⚍ㅫ⊩Ёˈ㡖⚍ ϔ㠀ϔᡍϔᡍഄѻ⫳ˈ✊ৢϔᡍϔᡍഄᦦܹˈབℸᕾ⦃ˈⳈࠄ⒵䎇㒭ᅮⱘᆚᑺ ࠊ㽕∖DŽ⫳៤ᦦܹ⚍ᯊˈᕔᕔ䖬䳔㽕ᓗᏆ᳝㡖⚍ⳌѦП䯈䴴ⱘ䖛䖥ⱘ 㡖⚍DŽ Chew[103, 104] Ruppert[105, 106]ऩܗ⧗ⱘ⧗ᖗ໘ᦦ⚍ˈᑊ⧚䆎Ϟ 䆕ᯢњ⬅ҪӀⱘᮍḜѻ⫳ⱘ᳔㒜㔥Ḑⱘऩܗ᳔ᇣ㾦᳝ϔϾϟ䰤ؐDŽShewchuk[85] ᬍ䖯њ Chew Ruppert ⱘᎹˈᑊᇚ݊ᢧሩࠄϝ㓈ᚙᔶDŽϡ䖛᠔᳝⧚䆎䆕ᯢ䛑 ≵᳝㗗㰥䖍⬠ᴵӊˈ㗙ᬒᵒњᇍᅗⱘ䰤ࠊˈShewchuk[85]䖬ᦤկњབԩ໘⧚ࣙ ሔ䚼ᇪ㾦ⱘѠ㓈䖍⬠ⱘᡔᎻDŽҪӀⱘⷨおᓔ߯њ Delaunay ᮍ⊩ⷨおⱘϔϾ䞡 㽕ߚᬃ˖ֱ䋼 Delaunay 㒚ߚ˄quality-guaranteed Delaunay refinement˅ ˈгㅔ⿄ Delaunay 㒚ߚDŽᅗফࠄӫᴹ㞾䅵ㅫԩ乚ඳⱘⷨお㗙ⱘ䴦ⴤˈᑊ䖯ϔℹⱘ⏅ ܹথሩПЁDŽ Ϟ䗄ㅫ⊩䛑ᕜ䲒ֱ䆕ऩⱘܗ䌈䖍ᗻˈ߽⫼ࠡ⊓䖯⊩⫳៤㡖⚍ˈ㗠Ѣ Delaunay ߭ޚ䖲㡖⚍ᰃ㾷އ䖭ϔ䯂乬ⱘདࡲ⊩[107]ˈᔧ✊ˈᅗᰃҹࡴ⍂⚍ 䖤ㅫ乥⥛ˈ䰡Ԣㅫ⊩ᬜ⥛ЎҷӋⱘ˗ˈ䖭⾡ᮍ⊩гӮ⫳៤䖥㒧ᵘ࣪ⱘ㔥ḐDŽ
21
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
2.4.3.2 Ψ࠘؏ 㔥Ḑ⫳៤Ёˈ䖍⬠ৃҹᰃ⫼ᴹऎߚ⠽ԧݙⱘ䚼䖍⬠ˈгৃҹᰃݙ䚼䖍⬠ˈ བϡৠᴤ᭭ⱘߚ䱨䴶ˈ䰘ࡴ㑺ᴳ䴶DŽѠ㓈ऎඳЁˈ䖍⬠䗮ᐌҹ⚍ǃ㒓ⱘᮍᓣ㒭ߎ˗ ϝ㓈ऎඳЁˈ䖬ࣙ㑺ᴳ䴶ˈϔ㠀ҹϝ㾦⠛ⱘᔶᓣ㒭ߎDŽ䖍⬠ᘶ䯂乬ৃҹߚЎ ϸ㉏ˈϔ㉏ᰃϔ㟈䖍⬠ᘶˈ䖍⬠ҹߚ↉ߚഫⱘᮍᓣ㹿ᘶ˗ϔ㉏ᰃ㑺ᴳ䖍 ⬠ᘶˈॳ᳝䖍⬠Ϟϡܕ䆌᳝乱ⱘ⚍ߎ⦄DŽ Ѡ㓈ऎඳⱘ䖍⬠ᘶ䯂乬Ꮖ㒣ᴀ㾷ˈއTanemura-Ogawa-Ogita ㅫ⊩[88] ᵘᓎ Delaunay ϝ㾦࣪ⱘৠᯊֱ䆕䖍⬠䖍᳔㒜ϝ㾦࣪Ёⱘᄬˈ㗠䗮⫼ⱘخ ⊩ᰃϝ㾦࣪ৢᠻ㸠ϔϾ䖍⬠ᘶ՟ᴹᘶ䖍⬠DŽܕ䆌ࡴ⚍ᯊˈৃҹ䘫༅䖍 ⬠Ϟϡᮁࡴ⚍ˈⳈࠄ䘫༅䖍⬠ᄬѢ Delaunay ϝ㾦࣪ЁDŽࡴ⚍ᮍᓣ᳝⾡ˈৃ ҹ䗝ᢽ䘫༅䖍⬠Ё⚍ˈгৃҹ䗝ᢽ䘫༅䖍⬠ϝ㾦࣪ⱘѸ⚍DŽϡܕ䆌ࡴ⚍ᯊˈ߭ ৃҹ䗮䖛བ 9 ᠔⼎ⱘᇍ㾦Ѹᤶ᪡ᘶ䘫༅䖍⬠DŽϞ䗄ㅫ⊩ⱘᬊᬯᗻ⧚䆎Ϟ 䛑Ꮖᕫࠄ䆕ᯢ[85]DŽ Ⳍ↨Ѡ㓈䖍⬠ᘶ䯂乬ˈϝ㓈䖍⬠ᘶ߭ᄬ⧚䆎Ϟⱘೄ䲒DŽSchönhardt 䴶ԧ˄བ 55˅ⱘᄬҢ⧚䆎Ϟ৺ᅮњϡࡴ⚍ᚙᔶϟϝ㾦࣪ӏᛣ䴶ԧⱘৃ 㛑[108]ˈ㗠 Ruppert Seidel[109]߭䆕ᯢϡࡴ⚍ᚙᔶϟ߸ᮁӏᛣ䴶ԧ㛑৺ϝ 㾦࣪ᰃϔϾ NP ᅠܼ䯂乬DŽℸˈ㽕ᅲ⦄ϔϾعໂⱘ䖍⬠ᘶㅫ⊩߭ᖙᅮ䳔㽕㗗 㰥བԩ⏏ࡴ䕙ࡽ⚍ⱘ䯂乬ˈϝ㓈䖍⬠ᘶⱘ䲒⚍ህѢབԩࠊ䕙ࡽ⚍ⱘ⏏ࡴDŽ ⏏ࡴ䕙ࡽ⚍⸈ണњॳ᳝ऩܗሎᇌഎⱘᅮНˈϨৃ㛑݊䰘䖥ᔶ៤䋼䞣䕗Ꮒǃ⫮㟇 䗔࣪ⱘऩܗDŽ䕙ࡽ⚍⏏ࡴⱘⳂᷛᰃ[110]˖ϔ㽕ሑ䞣ޣᇥ䕙ࡽ⚍ⱘ᭄Ⳃ˗ѠᰃӬ࣪ 䕙ࡽ⚍䰘䖥ⱘऩܗ䋼䞣DŽৢϔϾⳂᷛৃ䗮䖛㔥Ḑৢ໘⧚䖛ᴹᅲ⦄ˈ㗠ޣᇥ䕙ࡽ ⚍᭄Ⳃⱘᐌ⫼ㄪ⬹᳝Ѡ˖ϔᰃӬ࣪㸼䴶㔥ḐˈWeatherill ㄝ[99] Lewis ঞ Zheng ㄝ[111]ⱘᅲ偠㸼ᯢˈᇍ㸼䴶㔥Ḑᠻ㸠བ 9 ᠔⼎ⱘᇍ㾦Ѹᤶ᪡ˈӬ࣪ৢⱘ㸼䴶 㔥Ḑߎ⦄䖍⬠䘫༅ⱘὖ⥛ৃޣᇥ˗Ѡᰃ㒧ড় 11 ᠔⼎ⱘᴀ䖍/䴶Ѹᤶ᪡ ঞ݊㒘ড়ˈৃᘶ䚼ߚ䘫༅䖍⬠[99, 111, 112]DŽ Hazlewood[113] Pebey[15, 114, 115]䆩㔥Ḑ⫳៤ࠡ䗮䖛Ѹᤶ㑺ᴳ䖍 ࡴ䕙ࡽ⚍ⱘᮍᓣᇏᡒ㒭ᅮ㑺ᴳⱘㄝᬜ㑺ᴳˈᑊֱ䆕ㄝᬜ㑺ᴳ Delaunay ݐ ᆍᗻ˄Delaunay admissibility˅˗Pebey[114]䖬ᇱ䆩ࠊ䕙ࡽ⚍ⱘ᭄Ⳃˈҹ⒵䎇ᅲ 䰙ᑨ⫼䳔∖DŽᘏԧᴹ䇈ˈ䖭⾡⊩خ䖬ϡᅲ⫼DŽ ሑㅵ⧚䆎Ϟ㛑৺䗮䖛ࡴ⚍ᅲ⦄ϝ㓈 CDT 䖬≵᳝ᅮ䆎ˈⷨお㗙䖬ᰃ䆩ሑ 䞣ֱ䆕ᘶৢⱘ䖍⬠ⱘ Delaunay ݐᆍᗻˈҹᦤ催䖍⬠䰘䖥ⱘऩܗ䋼䞣DŽЎ䖒ࠄ 䖭ϾⳂᷛˈ䕙ࡽ⚍⏏ࡴ䖛㹿䆒䅵៤㉏ԐѢ䞣 Delaunay ⚍ᦦܹ䖛[116, 117]DŽ 䖭⾡⊩خ䰸䴶Ј䕙ࡽ⚍䖛ⱘ䯂乬ˈ䖬ᄬㅫ⊩ⱘᬊᬯᗻ䯂乬DŽᘶ䖍⬠ⱘ䖛 ৃ㛑Ӯ䗴៤Ꮖᘶ䖍⬠ⱘ϶ݡ༅ˈ䖭ᰃѻ⫳ᬊᬯᗻ䯂乬ⱘЏ㽕ॳˈℸˈ 䳔㽕⚍ᦦܹᯊᇍᏆᘶ䖍⬠ᅲᮑֱᡸ[116]DŽ Ϟ䴶ᦤঞⱘㅫ⊩ഛሲѢϔ㟈䖍⬠ᘶ㣗⭈ˈGeorge[101]㒧ড়䖍/䴶Ѹᤶ᪡
22
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
ϔѯऎඳݙ䚼⏏ࡴ䕙ࡽ⚍ⱘਃথᗻ㾘߭ˈᅲ⦄њϔ༫Ⳉ䖯㸠㑺ᴳ䖍⬠ᘶ ⱘㅫ⊩DŽLiu Baida[118]㒭ߎњϔѯ䆹ㅫ⊩᮴⊩㾷ⱘއ՟ᄤˈ䖭ѯ՟ᄤ䖍⬠ Ϟᐌ᳝ϔѯ⣁䭓ⱘϝ㾦ᔶऩˈܗᄬሔ䚼ऎඳऩܗሎᇌ࠻⚜䖛⏵ⱘ⦄䈵DŽ ⬅Ѣϔ㟈䖍⬠ᘶⱘعໂᗻⳌᇍ䕗ᆍᯧֱ䆕ˈℸˈᅲ⦄عໂⱘ㑺ᴳ䖍⬠ᘶ ㅫ⊩ⱘϔϾᗱ䏃ᰃ˖ܜ䖯㸠ϔ㟈䖍⬠ᘶˈ䱣ৢএ䰸㑺ᴳϞⱘ䕙ࡽ⚍ˈᅲ⦄㑺 ᴳ䖍⬠ᘶDŽWeatherill Hassan[99]Ⳉ㑺ᴳ໘ࡴ⚍ᅲᮑϔ㟈䖍⬠ᘶˈ䱣 ৢࠨ䰸䕙ࡽ⚍ˈᑊϝ㾦࣪᠔ᔶ៤ⱘᄨ⋲ˈҹᅲ⦄㑺ᴳ䖍⬠ᘶDŽⳈϝ㾦࣪䖭㉏ ᄨ⋲ᄬᬊᬯᗻ䯂乬ˈᐌ䳔㽕ᄨ⋲䖍⬠⏏ࡴ䕙ࡽ⚍ˈ䖭জᏺᴹᄨ⋲ݙ㔥Ḑᄨ ⋲਼䖍㔥Ḑབԩֱᣕϔ㟈ⱘ䯂乬ˈKaramete[119]ᇱ䆩䗮䖛ׂᬍᄨ⋲਼䖍㔥Ḑᴹ㾷 އᅗDŽϞ䗄Ⳉࠨ䰸䖍⬠Ϟⱘ䕙ࡽ⚍ⱘㄪ⬹ϡৠˈGeorge[120]ҹঞ Du Wang[121]߭ᦤߎњ⿏ࡼߚ㾷䖍⬠Ϟ䕙ࡽ⚍ⱘᗱ䏃ˈҹ㾷އϔ㟈䖍⬠ᘶ䖛⏵ ࠄ㑺ᴳ䖍⬠ᘶⱘ䯂乬DŽGeorge ⱘᅲ偠㸼ᯢˈᇍѢ䴲ᐌ⮙ᗕⱘ՟ᄤˈҪⱘᮄㅫ ⊩г㛑পᕫ៤ࡳ[120]DŽ Joe[95]ߚ㾷䯂乬ඳЎߌඳˈᑊֱ䆕ߌඳЁ⫳៤䖍⬠ϔ㟈㔥Ḑˈҹℸᴹಲ䙓 䖍⬠ᘶ䯂乬DŽԚ䯂乬ඳⱘߚ㾷ˈ⡍߿ϝ㓈ᚙᔶϟˈᕔᕔ㔥Ḑ⫳៤ৠḋᴖDŽ 2.4.3.3 ԤၮസЕۤߒᅰ ㅫ⊩ⱘعໂᗻᰃᣛ݊䗔࣪ᚙᔶϟձ✊㛑㦋পℷ⹂㒧ᵰⱘ㛑DŽ䰸ㅫ⊩ᴀ 䑿䆒䅵Ϟⱘ㔎䱋ˈ⍂⚍䖤ㅫ䇃ᏂгӮᓩ䍋⾡䗔࣪ᚙᔶDŽ F
A
H
E
C D
E
F D
D E
C
G
H
C
H
B
A
B A
(a) 䴲᯳ൟぎ㜨
(b) ぎ㜨䴲ぎ
B
(c) 䖍⬠㑺ᴳⱘᕅડ
13 ⍂⚍䖤ㅫ䇃Ꮒ䖍⬠㑺ᴳᓩ䍋ⱘϝ⾡᮴ᬜぎ㜨ᚙᔶ Bowyer-Watson ㅫ⊩Ёˈ⧚䆎Ϟৃҹֱ䆕↣Ͼ⚍ᦦܹৢᔶ៤ⱘぎ㜨ᰃ᯳ᔶⱘˈ Ϩぎ㜨Ϟ᠔᳝⚍ᇍᮄᦦܹ⚍ᰃৃ㾚ⱘˈ⬅ℸֱ䆕䖲ᮄᦦܹ⚍ぎ㜨Ϟⱘ⚍ৃҹ ᔶ៤ϔϾ᳝ᬜⱘϝ㾦࣪ˈ䖭г⧚䆎Ϟֱ䆕њ Bowyer-Watson ⚍ᦦܹݙḌ˄ҹϟ ㅔ⿄ B-W ݙḌ˅ⱘعໂᗻDŽԚ B-W ݙḌ߸ᮁϔϾ⚍ᰃ৺㹿⧗᠔ ࣙᯊˈᰃѢ⍂⚍䖤ㅫⱘˈ䖭Փᕫ݊ᇍ⍂⚍䇃Ꮒᕜᬣᛳˈᅲ䰙ᅲ⦄ЁӮߎ⦄ ᮴ᬜⱘぎ㜨ᚙᔶDŽ 13(a)Ёˈ 'BCE ⱘ㹿䅸ᅮЎϡࣙᮄᦦܹ⚍ H ˈ㗠 'AEF ǃ'ABE 'CDE ⱘ㹿䅸ᅮЎࣙ H ˈ⬅ℸᔶ៤ϔϾ䴲᯳ᔶⱘぎ㜨DŽ 13(b)Ёˈ 'BCD 'BDE ⱘᰃࣙᮄᦦܹ⚍ H ˗㗠 'ABE 'AED ⱘ
23
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
ϡࣙ⚍ H ˈԚ䴴ᕫᕜ䖥ˈ㢹䫭䇃䅸ᅮᅗӀࣙ⚍ H ˈ߭ぎ㜨Ёࣙ ϔϾࠡᦦܹ⚍ E ˈ䖭⾡ぎ㜨ϡぎⱘᚙᔶгᰃ䫭䇃ⱘDŽˈЎֱᣕ䖍⬠㑺ᴳˈ 䖍⬠䰘䖥Ӯߎ⦄䴲 Delaunay ϝ㾦࣪ˈℸᯊ݊䰘䖥ᦦ⚍ˈৃ㛑Ӯߎ⦄ぎ㜨⚍ ᇍᮄᦦܹ⚍ϡৃ㾚ⱘᚙᔶ[122]ˈབ 13(c)᠔⼎DŽЎ㾷އϞ䗄䯂乬ˈGeorge[92] 㒭ߎњϔϾعໂⱘ B-W ݙḌˈᅗᇍぎ㜨䗦ᔦഄ䖯㸠᳝ᬜᗻẔ⌟ˈབᵰぎ㜨ߎ⦄ ᮴ᬜᚙᔶˈ߭এ䰸䙷ѯᓩ䍋᮴ᬜᚙᔶⱘऩˈܗ᳔㒜ᔶ៤ϔϾ᳝ᬜⱘぎ㜨DŽ䳔㽕⊼ ᛣⱘᰃˈᣝ✻䖭⾡ᮍᓣˈぎ㜨Ёᮄᔶ៤ⱘϝ㾦࣪ϡݡᰃ Delaunay ϝ㾦࣪DŽ 䖍⬠ᘶᯊг⡉ᡃࠄ䞣ԩ䅵ㅫˈབ㒓㒓ⳌѸǃ㒓䴶ⳌѸǃ⚍䴶ԡ㕂݇㋏ ㄝˈ⬅ℸᓩ䍋ⱘ⍂⚍䇃ᏂгӮᇐ㟈ᑣᶤѯᚙᔶϟ᮴⊩ᕫࠄℷ⹂ⱘ㒧ᵰDŽ᳝ᯊ ৃҹߚᵤ䖭㉏䇃Ꮒⱘѻ⫳ᴎࠊᑊ䆒䅵Ⳍᑨⱘ՟ᴹ⍜䰸ᅗˈ Lewis ঞ Zheng ㄝ[111] ህ㒭ߎϔϾ䖭ḋⱘ՟ᄤˈབ 14 ᠔⼎ˈᔧ䆩ᘶ 'ABC ᯊˈ䳔䅵ㅫ 'ABC ಯ䴶ԧ 1234 ⱘ݇㋏ˈ བᵰ⚍ 4 䴲ᐌ䴴䖥 'ABC ˈ ߭ৃ㛑ߎ䖍 14 䖍 24 'ABC ⳌѸԚ䖍 34 ϡ 'ABC ⳌѸⱘ䫭䇃߸ᮁˈ 䖭Ͼ䯂乬ৃҹ䗮䖛߸ܜᮁ⚍ 4 'ABC ⱘ݇㋏ˈ✊ৢ∖㾷Ѹ⚍ԡ㕂ᴹ㾷އDŽ៥Ӏⱘ㒣偠㸼ᯢˈ䖍⬠ᘶ䖛Ёˈ䖬ᄬ ϡᇥ㉏Ԑⱘ⬅Ѣ⍂⚍䇃Ꮒᓩ䍋ⱘ䫭䇃ᚙᔶˈ䆩ߚᵤ↣ϔ⾡ᚙᔶⱘѻ⫳ᴎࠊᑊ 㾷އᅗⱘᓣᕜ䲒㸠ᕫ䗮DŽ䖤⫼ᭈ᭄ㅫᴃᡔᎻᰃ㾷އ⍂⚍䖤ㅫ䇃Ꮒ䯂乬ⱘᗱ䏃П ϔˈԚ݊ᕔᕔᏺᴹϡᖙ㽕ⱘᓔ䫔DŽShewchuk[85]߽⫼㞾䗖ᑨ㊒ᑺㅫᴃˈ䆩⍂ ⚍䖤ㅫ⹂ޚᗻ݊ᏺᴹⱘᓔ䫔П䯈পᕫᑇ㸵ˈѢ䖭⾡ᗱ䏃ˈҪЎѠ㓈ঞϝ㓈 Delaunay ϝ㾦࣪ㅫ⊩䆒䅵њಯϾԩॳ䇁ˈे⚍Ⳉ㒓ঞᑇ䴶ⱘԡ㕂݇㋏ҹঞ⚍ ⧗ⱘࣙ݇㋏ˈ偠䆕њ㞾䗖ᑨ㊒ᑺㅫᴃ㾷އ⍂⚍䖤ㅫ䇃Ꮒ䯂乬ⱘ᳝ᬜᗻDŽ ˈᇍԩ䅵ㅫᓩ䍋ⱘ⍂⚍䖤ㅫ䇃Ꮒ䯂乬ˈEdelsbrunner Mücke[123]㋏㒳ᗻ ഄᦤߎњϔ༫ҪӀ⿄ПЎĀㅔ࣪ᢳ˄simulation of simplicity˅ āⱘ㾷އᮍḜDŽ 2.4.3.4 ฉٌညͪރܤ၍ூ҂ ⬅Ѣ䖍⬠㑺ᴳǃऩܗᆚᑺব࣪ǃܹᦦ⚍ݙҹঞ Delaunay ⧚䆎ᴀ䑿ⱘϔѯ䰤ࠊˈ Delaunay 㔥Ḑⱘ䋼䞣ᑊ䴲᳔Ӭˈ䳔㽕䖤⫼ϔѯӬ࣪ㄪ⬹ᴹ䖯ϔℹᦤ催DŽᐌ⫼ⱘ㔥 ḐӬ࣪ㄪ⬹ࣙᣀܝ⒥࣪ঞᢧᠥ䞡㒘ϸ㉏DŽࠡ㗙⿏ࡼ㡖⚍ԡ㕂㗠ֱᣕ㡖⚍䖲݇㋏ ϡব˗ৢ㗙Ӭ࣪㡖⚍П䯈ⱘ䖲݇㋏DŽᅲ䰙ⱘ㔥Ḑৢ໘⧚䖛Ёˈϸ⾡ᮍᓣ䗮ᐌ ᰃ㒧ড়Փ⫼ⱘˈFreitag ㄝ[124]ህ㒧ড়ѢӬ࣪ⱘܝ⒥࣪ㄪ⬹䖍/䴶Ѹᤶ᪡ᴹ ᦤ催ಯ䴶ԧऩܗ䋼䞣DŽ ಯ䴶ԧऩܗ㔥ḐЁᄬ⾡䋼䞣䕗Ꮒⱘऩˈܗ㭘ܗᰃ݊Ёϔ⾡[125]DŽᅗৃⳟ ᰃ⬅ಯϾ䖥݅䴶ⱘ⚍㒘៤ⱘಯ䴶ԧऩˈܗབ 15 ᠔⼎ˈ㭘 ܗABCD ⱘᑩ䴶 ݊⧗ⱘ䌸䘧ᑇ䴶Ϟˈ乊⚍ D ⾏䌸䘧ᑇ䴶ⱘ䎱⾏䖥Ѣ 0 DŽ㭘ⱘܗᑇ䴶། 㾦᳔ᇣؐᵕᇣˈԚᰃˈ䋼䞣དⱘऩܗϔḋˈᅗⱘ⧗ञᕘ᳔ᇣ䖍䭓П↨г 䕗ᇣˈ䖭Փᕫᅗ㛑䕏ᯧ⒵䎇 Delaunay ぎ⧗ˈ߭ޚ⾡ Delaunay ㅫ⊩⫳៤ ⱘ㔥ḐЁᑌᄬ˗ेՓᇍѢ䴲ᐌ㾘߭ᥦ߫ⱘ⚍䲚ˈ݊ Delaunay 㔥Ḑг㹿䆕ᯢৃ㛑 Ӯᄬ㭘[ܗ126]DŽֱ䋼 Delaunay 㒚ߚㅫ⊩[85]⧚䆎Ϟৃҹֱ䆕⫳៤ϔϾĀ
24
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
Ӭ(almost-good)ā㔥Ḑˈे݊Ё᠔᳝ऩⱘܗ⧗ञᕘ᳔ᇣ䖍䭓П↨ᇣѢϔϾ ᐌ䞣ˈԚ㭘ⱘܗᄬ䰏ℶњ㔥Ḑ䋼䞣ⱘ䖯ϔℹᦤ催DŽ C
4
D
A
B
C
A
B
3 1
2
14 ⍂⚍䖤ㅫ䇃Ꮒ˖ಯ䴶ԧϝ㾦ᔶⳌѸ
15 㭘˄ܗsliver˅
Cavendish[125]ᮽ 1985 ᑈህথ⦄њ㭘ܗ Delaunay ϝ㾦࣪ЁⱘᄬˈԚⳈ ࠄ⦄ˈབԩ⏙䰸㭘ܗҡᰃ Delaunay ᮍ⊩ⱘϔϾ䞡㽕ⷨおЏ乬DŽ㔥ḐӬ࣪ৃ ϔᅮᑺϞ㓧㾷㭘⏙ܗ䰸䯂乬ˈԚ䯂乬ⱘད㾷އ䳔㽕ࡽ׳Ѣϧ䮼ⱘ㭘⏙ܗ䰸ㅫ ⊩DŽⳂࠡᄬϔѯਃথᓣㅫ⊩ˈབ⿏ࡼ㭘ܗ㡖⚍ⱘԡ㕂ᅲᮑ䖍/䴶Ѹᤶ᪡ㄝ [125, 127, 128]ˈ㔥ḐӬ࣪ϔḋˈᅗӀгϡ㛑ֱ䆕ᕏᑩഄ⏙䰸㭘ܗDŽ ᇍ↣Ͼϝ㾦⠛ˈ݊䰘䖥ᄬϔഫĀ㭘ܗऎඳ˄sliver region˅ ā ˈ㢹ᶤ㡖⚍ԡѢ 䆹ऎඳ߭ˈݙ䖲ᅗ䆹ϝ㾦⠛Ӯᔶ៤ϔϾ㭘ܗDŽডПˈ㢹ᇚ㡖⚍⿏ߎ᠔᳝݊ Ⳍ䖲ⱘϝ㾦⠛਼ೈⱘ㭘ܗऎඳˈ߭ৃ䖒ࠄ⍜䰸㭘ⱘⳂⱘܗDŽChew[129]佪ܜ㾖ᆳ ࠄ䖭Ͼㅔऩै䞡㽕ⱘ⦄䈵ˈᑊׂᬍњҪॳ᳝ⱘ Delaunay 㒚ߚㅫ⊩DŽᮄㅫ⊩ᑊϡ ᅮ⧗⧗ᖗ໘ᦦ⚍ˈ 㗠݊䰘䖥䱣ᴎᦦ⚍ҹ⍜䰸㭘ܗDŽLi[130]ᢧሩњ Chew ⱘㅫ⊩ҹ⫳៤বᆚᑺ㔥Ḑˈᑊ㒧ড় Shewchuk ⱘㅫ⊩ˈ䅼䆎њ䖍⬠㑺ᴳⱘ໘⧚DŽ ѢϞ䴶ৠḋⱘ㾖ᆳˈLi[130]䖬ᦤߎњϔ⾡ㅫ⊩ˈ䗮䖛ᇍ㭘݇Ⳍܗ㡖⚍䖯㸠 䕏ᖂⱘᡄࡼᴹ⍜䰸Ӭ㔥ḐЁⱘ㭘ܗDŽ Ϟ䴶ㅫ⊩ྟ㒜ֱᣕ㔥Ḑⱘ Delaunay ሲᗻϡৠˈCheng ㄝ[131]Ѣࡴᴗ Delaunay ⧚䆎ˈᦤߎњĀ㭘˄ߎ⏫ܗsliver exudation˅āㅫ⊩ˈҹℸ⏙䰸Ӭ㔥Ḑ Ёᄬⱘ㭘ܗDŽ㭘⏙ܗ䰸ৢˈ݊䰘䖥㡖⚍ԡ㕂ϡবˈԚ݊䖲ᮍᓣᏆϡݡ⒵䎇 Delaunay ߭ޚDŽGuoy[132]䞡ᮄ䆒䅵њ㭘ߎ⏫ܗㅫ⊩ˈᑊᇍ݊ᗻ㛑ߎњᅲ偠䆘 ԄDŽ
25
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
᳔䖥ˈEdelsbrunner ㄝ[133]ᦤߎĀ⏫⚍˄sink˅ āԡ㕂ᦦ⚍ⱘ Delaunay 㒚ߚ ㅫ⊩ˈ⧗⧗ᖗᦦ⚍ⱘᮍᓣⳌ↨ˈࠡ㗙᠔䳔⚍᭄ᇥDŽĀ⏫⚍āᰃᣛϔ ㇛ᔶ⢊䕗Ꮒऩⱘ݇ⳌܗĀ⡍⅞ⱘā⧗⧗ᖗԡ㕂ˈEdelsbrunner ㄝ㒭ߎњᅗⱘ ϹḐⱘ䗦ᔦᅮНDŽLi[130]߭䆕ᯢˈ⏫⚍䰘䖥ᦦ⚍ⱘ Delaunay 㒚ߚㅫ⊩гৃҹ ⍜䰸㭘ܗDŽ 2.4.3.5 ۢࠒރٲസ֥ԅညܤಁޙ Ḍᖗ᭄㒧ᵘⱘ䗝ᢽᇍᭈϾㅫ⊩ⱘᯊ䯈ぎ䯈ᬜ⥛᳝㟇݇䞡㽕ⱘᕅડDŽ Delaunay ᮍ⊩ⱘⱘᐌ⫼Ḍᖗ᭄㒧ᵘৃߚЎϸ⾡ᓣ[85]˖ϔ㉏ҹ䖍ǃ䴶ܗ㋴Ў Ḍᖗ˗ϔ㉏ҹऩܗЎḌᖗDŽѠ㓈ᚙᔶϟˈϔ㉏᭄㒧ᵘࣙᣀಯ䖍㒧ᵘǃ㗐䖍㒧 ᵘञ䖍㒧ᵘㄝˈ݊ЁˈGuibas Stolfi[93]ᇍಯ䖍㒧ᵘ Delaunay ϝ㾦࣪ㅫ⊩ Ёⱘᑨ⫼њ䆺㒚䅼䆎DŽಯ䖍㒧ᵘⳌ↨ˈབҹϝ㾦ᔶऩܗЎḌᖗ䆒䅵᭄㒧ᵘ ㅫ⊩ˈDelaunay ᮍ⊩ⱘぎ䯈߽⫼ᬜ⥛ӬˈϨ Shewchuk ⱘᅲ䆕ⷨお㸼ᯢˈৢ 㗙ᯊ䯈ᬜ⥛ϞгӬ[85]˗ϝ㓈ᚙᔶϟˈৠḋⱘ㒧䆎г៤ゟDŽᔧ✊ˈҹऩܗ ЎḌᖗⱘ᭄㒧ᵘ㸼⼎䖍ǃ䴶ㄝܗ㋴ᯊϡᰃᕜⳈˈӮϔᅮᑺϞࡴㅫ⊩ⱘ ᅲ⦄䲒ᑺˈԚ៥Ӏⱘ㒣偠㸼ᯢˈৃҹ䗮䖛ϔѯᑣ䆒䅵ᡔᎻ㾷އ䖭ѯ䯂乬DŽ PSUE[33]ǃGSH3D[134]ҹঞ Triangle/Pyramid[85]ㄝ乍ⳂЁⱘ Delaunay 㔥Ḑ⫳៤ ఼Ḍᖗ᭄㒧ᵘ䆒䅵Ϟ䛑䞛⫼њҹऩܗЎḌᖗⱘᓣDŽ Delaunay 㔥Ḑ⫳៤Џ㽕ࣙᣀ⚍ᦦܹ䖍⬠ᘶϸϾ䖛ˈ݊Ё⚍ᦦܹ䖛㗫 䌍њ㒱䚼ߚ䖤㸠ᯊ䯈˗⬅Ѣ Delaunay 㔥Ḑ⫳៤ϔ㠀䞛⫼䞣ㅫ⊩ˈℸˈӬ ࣪ Delaunay ᮍ⊩ⱘ݇䬂ѢӬ࣪ऩ⚍ᦦܹݙḌDŽऩ⚍ᦦܹݙḌЏ㽕ࣙᣀϸℹ˖ ᇏᡒऩܗᮄϝ㾦࣪ˈϟ䴶ҟ㒡Ӭ࣪ᅗӀⱘᐌ⫼ᡔᎻ[91, 135]DŽ Delaunay ᮍ⊩Ёˈݙ䚼⚍ⱘ⫳៤ᕔᕔᔧࠡϝ㾦࣪Ёⱘऩ↨ˈ݇Ⳍܗབऩ ܗ䞡ᖗǃᔶᖗ໘⫳៤ᮄ⚍ˈℸݙ䚼⚍ⱘᦦܹϔ㠀ϡᄬᇏᡒऩⱘܗ䯂乬DŽԚ 䖍⬠⚍ᦦܹᯊˈऩֵܗᙃैᰃⶹⱘDŽᇏᡒऩⱘܗㅫ⊩᳔Ꮒⱘᬜ⥛ᰃ㒓ᗻ ⱘˈࡴ䗳ᅗⱘᐌ⫼ᡔᎻ᳝Ѡ˖ϔᰃ߽⫼ऩܗ䚏݇㋏䖯㸠Ⳍ䚏᧰㋶ˈ᧰㋶ⱘ䖛 Ё䖬ৃҹࡼᗕ㗗㰥᧰㋶ᮍⱘӬܜ㑻˗Ѡᰃࡽ׳Ѣぎ䯈ߚ㾷㒧ᵘˈབ㾘߭㔥Ḑ ߚ䕼⥛ⱘಯঝ᭄/ܿঝᷥㄝDŽᖿ䗳ⱘऩ᧰ܗ㋶ㅫ⊩Ёˈ䖭ϸϾᡔᎻᘏᰃ㒧 ড়䍋ᴹՓ⫼ⱘDŽ ᮄϝ㾦࣪ᰃϔϾሔ䚼᪡ˈ⧚䆎ᅲ偠ߚᵤ䛑㸼ᯢˈ݊ᑇഛᯊ䯈ᴖᑺ ⚍䲚ⱘᇣ᮴݇DŽᇍ B-W ᦦ⚍ݙḌ䖯㸠Ӭ࣪ⱘ݇䬂Ѣֱ䆕ぎ㜨ᔶ៤ৠᯊᅠ ៤ᮄऩ߯ܗᓎˈ䖭䳔㽕ࡽ׳ϔѯ䕙ࡽ᭄㒧ᵘˈˈᮄऩⱘܗ⧗ञᕘ ⧗ᖗԡ㕂᮴乏↣䛑䞡ᮄ䅵ㅫˈৃҹḍᔧࠡϝ㾦࣪ЁⱘⳌᑨ᭄ᕫࠄˈҹޣᇥ ⍂⚍䖤ㅫ乥⥛DŽ
26
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
2.5 ᑊ㸠 Delaunay ᮍ⊩ Ⳍᇍ㔥Ḑ⫳៤㗠㿔ˈᑊ㸠㔥Ḑ⫳៤ᰃϔϾ䕗Ўᑈ䕏ⱘⷨお乚ඳˈԚⷁⷁⱘ कᑈЁˈᏆ㒣ѻ⫳њϡᇥ៤ᵰˈᕜᑨ⫼乚ඳЁᕫࠄᑓˈᑊ䗤ℹߎ⦄ ൟଚϮᑣЁˈℸˈ䆩ܼ䴶ᘏ㒧ᑊ㸠㔥Ḑ⫳៤ⱘ᳔ᮄⷨお៤ᵰϡᰃӊᆍᯧⱘ џDŽḍѸ⬠䴶㔥Ḑ⫳៤ᄤ䯂乬ݙ䚼㔥Ḑ⫳៤П䯈ⱘˈ㋏݇ৢܜCougny Shephard[32]ᇚᑊ㸠㔥Ḑ⫳៤ㅫ⊩ߚ៤ৠℹ໘⧚㉏ǃࠡ㕂໘⧚㉏ৢ㕂໘⧚㉏ˈ ҪӀⴔ䞡ߚᵤ↣⾡ᑊ㸠ㅫ⊩ⱘৃᠽሩᗻǃᑊ㸠䆒䅵ⱘ᳝ᬜᗻҹঞ〇ᅮᗻDŽ㗠 Chrisochoides[25]䅸Ўᑊ㸠ㅫ⊩ᇍᑣ߫࣪ഫⱘ⫼ᗻг䴲ᐌ䞡㽕ˈᑊҢ⫼ᗻ ⱘ㾦ᑺˈᇚ Delaunay ᮍ⊩ǃࠡ⊓䖯⊩䖍ᄤߚ⊩ⱘᑊ㸠ㄪ⬹ߚ៤ϝ㉏˖㋻㗺 ᓣǃ㾷㗺ᓣ䚼ߚ㗺ড়ᓣDŽˈҪ䖬ⴔ䞡ᇍϾㅫ⊩ⱘ⫼ᗻঞ〇ᅮᗻњߚ ᵤDŽᴀ᭛ⱘⷨおݙᆍЏ㽕⍝ঞࠄ Delaunay ᮍ⊩ⱘᑊ㸠ˈℸˈᴀ㡖াᇍᑊ㸠 Delauanay ᮍ⊩ⱘЏ㽕ⷨお៤ᵰ䖯㸠ಲ乒ˈ㗠⬹䖛ᇍࠡ⊓䖯⊩[6, 7, 16]ǃಯ/ܿ ঝᷥ⊩[5]ঞ݊ᅗ㔥Ḑ⫳៤ᮍ⊩ⱘᑊ㸠࣪ⷨおⱘҟ㒡[22]DŽ ᇍᑊ㸠 Delaunay ᮍ⊩ᛳ݈䍷ⱘⷨお㗙ϔ䚼ߚᴹ⑤Ѣ䅵ㅫ᭄ᄺˈ⡍߿ᰃ䅵ㅫ ԩ乚ඳˈҪӀ䛑݇ᖗ⾡ Delaunay ㅫ⊩ᴀ䑿ⱘᑊ㸠DŽ⦄᳝ⱘㅫ⊩ᇍഛࣔߚᏗ ⚍䲚Ꮖ㒣ৃҹপᕫⳌᔧ催ⱘᑊ㸠ᬜ⥛ˈᔧࠡⷨおⱘЏ㽕䞡⚍䲚Ёᦤ催ㅫ⊩ᇍϡ ৠ㉏ൟ⚍䲚ⱘ䗖ᑨ㛑DŽѢ᭄ᄺᆊ䗑∖ᅠ㕢ⱘ㾦ᑺˈҪӀᕔᕔӮᵘᓎᕜᵕッⱘ ⚍䲚ߚᏗᚙᔶҹ䆎䆕ϡৠㅫ⊩ⱘӬࡷDŽ ৠḋˈЏ㽕ᴹ㞾ԧᑨ⫼ᄺ⾥Ꮉ⬠ⱘⷨお㗙г݇⊼Ңџᑊ㸠 Delaunay ᮍ⊩ⱘⷨおDŽᰒ✊ˈ䅵ㅫ᭄ᄺ乚ඳᑊ㸠 Delaunay ϝ㾦࣪Ϟ᠔পᕫⱘ ⱘⷨお៤ᵰᇍҪӀⱘⷨお᳝ᕜⱘᐂࡽDŽԚᰃҢⳂᷛᴹ䆆ˈϔ㉏ᄺ㗙Ѡ㉏ ᄺ㗙ᰃϡৠⱘˈࠡ㗙䗑∖ᅠ㕢ⱘᑊ㸠 Delaunay ㅫ⊩ᴀ䑿ˈ㗠ৢ㗙߭Ўњ㦋প ᎹϮ䞣˄industry strength˅ⱘعໂǃᖿ䗳ǃ催ᬜৃᠽሩⱘᑨ⫼ᑣˈҹᳳ ᑨ⫼ᅗᴹ㾷އᅲ䰙ⱘ⾥ᄺᎹ䯂乬DŽ㗠ϨҢᴀ䋼Ϟ䇈ˈ㱑✊ Delaunay 㔥Ḑ⫳ ៤Ѣ Delaunay ϝ㾦࣪ˈԚϸ㗙ᄬ᳝ᕜऎ߿DŽⷨお Delaunay 㔥Ḑ⫳៤ㅫ⊩ᕔ ᕔ䳔㽕㾷އᕜ Delaunay ϝ㾦࣪᮴݇ⱘ䯂乬ˈབ䖍⬠㑺ᴳǃᆚᑺࠊ㔥Ḑ 䋼䞣ㄝˈ㗠䖭ѯ䯂乬ⱘ៤ࡳ㾷އϢ৺ᰃ䆘Ӌ PDMG ᑣӬࡷⱘ䞡㽕ᷛޚDŽ ӏࡵᑊ㸠᭄ᑊ㸠ᰃ PDMG ⱘϸ⾡Џ㽕ᓣˈc2.5.1 c2.5.2 ᇚߚ߿ᇍ ᅗӀ䖯㸠䅼䆎DŽ
2.5.1 Ѣӏࡵᑊ㸠ᓣⱘ PDMG ㅫ⊩ Ѣ䖍/䴶Ѹᤶᗱᛇⱘ Delaunay 䞣ᦦ⚍ݙḌ[84, 93, 94, 136]ᕜ䲒ᑊ㸠ˈ⦄ ᳝ⱘѢӏࡵᑊ㸠ᓣⱘ PDMG ㅫ⊩Џ㽕ᵘᓎᑊ㸠 B-W ݙḌ[45, 46]ПϞDŽ བc2.4.2.1 ঞ 8 ᠔⼎ˈ⚍ p i ⱘᦦܹԩϞᰃϔϾሔ䚼᪡ˈҙ䰤Ѣ݊ 27
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
ᇍᑨⱘぎ㜨 C i DŽϔϾⳈ㾖ⱘᛇ⊩ᰃ˖བᵰϸϾ⚍ֱᣕϔᅮⱘ䎱⾏ˈ߭ᅗӀⱘᦦ ܹ᪡ৃҹৠᯊ䖯㸠˗㗠བᵰᇚ⚍ᦦܹ᪡㾚ЎϔϾӏࡵˈ߭䖭ᛣੇⴔ䖭ḋⱘϸ ϾӏࡵᰃৃᑊথⱘDŽԚᰃˈᔧϸϾ⚍ᇍᑨⱘぎ㜨থ⫳䞡Ⳍ䚏˄㒳⿄Ўぎ㜨ᑆ ⍝˅ᯊˈ䖭⾡ӏࡵП䯈ⱘᑊ㸠ᗻህ㹿⸈ണDŽℸˈᅲ⦄ᑊ㸠 B-W ݙḌⱘ݇䬂䯂 乬ПϔѢབԩ㾷އぎ㜨ᑆ⍝⦄䈵DŽ ᅲ䰙ⱘѢӏࡵᑊ㸠ㅫ⊩ᘏᰃ㽕㒧ড়Ⳍᑨⱘ᭄ߚ㾷ㅫ⊩ᴹᅲᮑⱘDŽ؛䆒߱ ྟ㒭ᅮⱘ᭄ᰃϔϾ⿔⭣ⱘ㚠᱃㔥Ḑˈ䗮䖛⾏ᬷऎඳߚ㾷ˈᕫࠄϾᄤ㔥Ḑˈ䱣 ৢᇘᄤ㔥Ḑࠄ᳝ᬜⱘ໘⧚఼ϞDŽབᵰᦦܹ⚍ⱘぎ㜨ᄤ䯂乬䖍⬠ϡⳌѸˈ߭⿄ ᅗЎሔ䚼ぎ㜨˄local cavity˅ ˗ডПˈ߭⿄݊Ў⬠䴶ぎ㜨˄interface cavity˅DŽሔ䚼 ぎ㜨ᇍᑨⱘ⚍ᦦܹ᪡ᘏᰃϡӮߎ⦄ぎ㜨ᑆ⍝⦄䈵ˈ᮴䳔⡍⅞໘⧚DŽ⬠䴶ぎ㜨ᇍ ᑨⱘ⚍ᦦܹ᪡߭ϡৠˈ佪ˈܜᴀഄ䖰໘⧚఼П䯈䳔㽕䗮ֵˈҹᬊ䲚⬠䴶ぎ 㜨ᇍᑨⱘ䖰ԩֵᙃ˗ˈ⬠䴶ぎ㜨䖬ৃ㛑䖰໘⧚఼Ϟⱘᔧࠡぎ㜨থ⫳ ᑆ⍝ˈ⬅ℸ䳔㽕ৠℹ᪡ˈҹֱ䆕᭄ⱘϔ㟈ᗻDŽ Okusanya Peraire[8]佪⫼߽ܜϞ䗄ᗱ䏃䆒䅵њⳌᑨⱘѠ㓈 PDMG ㅫ⊩ˈᑊ 䱣ৢᇚ݊ᑓࠄϝ㓈ᚙᔶ[17]DŽҪӀⱘㅫ⊩Ёˈ᭄ߚ㾷䞛⫼ׂᬍⱘതᷛѠߚ⊩ ˄modified coordinate bisection˅ ˈϨᄤ㔥Ḑⱘ᭄ⳂㄝѢ໘⧚఼ⱘ᭄ⳂDŽᅗ乘䆒ϔ Ͼ䯔ؐˈᔧ↣Ͼ໘⧚఼ᦦܹⳌᑨ⚍᭄ৢˈᅗজ䞛⫼ৠḋⱘ᭄ߚ㾷↉ᴹ䞡ߦߚ ᔧࠡᕫࠄⱘ㔥Ḑˈҹᅲ⦄䋳䕑ᑇ㸵ˈҪӀᡞ䖭⿄Ўߦߚ䞡ߚ䜡˄partitioning and dynamic redistributing˅ᡔᎻDŽ䖭Ͼ䖛ϡҙ䳔㽕໘⧚఼П䯈⿏ࡼ䞣ⱘऩˈܗ 䖬䳔㽕ࡽ׳ϔᅮⱘৠℹ↉ֱ䆕᭄ⱘϔ㟈ᗻDŽᇍѢぎ㜨ᑆ⍝ᚙᔶˈ⬠䴶ぎ㜨 ㄝᕙ䖰᭄ᯊˈOkusanya Peraire ᦤঞৃՓ⫼ᓖℹㄝᕙঞ䞡䅵ㅫᴹࡴ䗳ㅫ ⊩ˈԚᅲ䰙ᅲ⦄Ё䞛⫼ⱘҡᰃৠℹㄝᕙⱘᡔᎻDŽᑊ㸠㔥Ḑ⫳៤ᅠ៤ⱘৠᯊˈ㔥Ḑ гഛࣔߚᏗϾ໘⧚఼ϞˈৃҹⳈ䗕ܹᑊ㸠∖㾷఼∖㾷DŽ⬅Ѣ Okusanya Peraire ㅫ⊩ᔶ៤ⱘᯊˈ᳝ᬜⱘ㔥Ḑߚ㾷⧚䆎ᑣࣙˈབ Metis[137]ǃ ParMetis[138]ǃChaco[139]ঞ Jostle[140]ㄝˈ䖬ⷨおПЁˈℸ Okusanya Peraire ᇍߚᏗᓣ㔥Ḑⱘߦߚ䋼䞣≵خ⏅ⱘ↨䕗䅼䆎DŽ Chrisochoides ঞ݊乚ᇐⱘⷨおಶ䯳থሩњ Okusanya Peraire ⱘㅫ⊩ˈᑊ佪 ߎᦤܜњᑊ㸠 B-W ݙḌⱘὖᗉ[9, 10]DŽ 䞛⫼ Metis ㄝ䗮⫼ⱘ㔥Ḑߚ㾷ᑣࣙˈ ᕫࠄ߱ྟ㔥ḐⱘϔϾ䖛ᑺߚ㾷ˈ䱣ৢ䞛⫼ࡼᗕ䋳䕑ᑇ㸵ㄪ⬹ᇚᄤ㔥Ḑᇘࠄ᳝ᬜ ⱘ໘⧚఼ϞDŽ໘⧚ぎ㜨ᑆ⍝ᚙᔶᯊˈҪӀ߽⫼ᓖℹㄝᕙঞ䞡䅵ㅫⱘᡔᎻˈҹ ϔᅮⱘಲ䗔໘⧚˄setback˅ঞ䖛⏵㔥㒰⌟˄network polling˅䌍⫼ˈՓᕫᭈϾ ㅫ⊩ⱘᑊ㸠ᬜ⥛᳝њᕜⱘᦤ催ˈᅲ⦄њ᠔䇧ⱘᓊ䖳ᆍᖡ B-W ݙḌ˄LTBW: Latency Tolerant Bowyer-Watson kernel˅DŽChrisochoides ㄝ[11, 40]ⱘㅫ⊩ᑊ㸠㔥 Ḑ⫳៤ⱘৠᯊˈ䗮䖛Ѹᤶ໘⧚఼䖍⬠䰘䖥ⱘऩˈܗҹᑇ㸵໘⧚఼Ϟऩܗ᭄䞣Ў Ⳃᷛˈࡼᗕഄ䞡ߚ䜡↣Ͼ໘⧚఼Ϟⱘ䋳䕑ˈৠℹᅠ៤њ㔥Ḑ⫳៤㔥ḐߦߚϸϾ ӏࡵDŽ䞛⫼ Metis ঞ Chaco ᕫࠄⱘ㔥Ḑߦߚⱘ䋼䞣Ⳍ↨ˈৠℹᕫࠄⱘ㔥Ḑߦߚ
28
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
䋼䞣гⳌᔧϡ䫭ˈϢӴ㒳ⱘܜ㔥Ḑ⫳៤ǃৢ㔥Ḑߦߚⱘ䖛Ⳍ↨ˈҪӀⱘㅫ⊩ ᬜ⥛Ϟ᳝䖥ϔϾ᭄䞣㑻ⱘᦤ催DŽ⬠䴶ぎ㜨ᬊ䲚䖰᭄ˈҹঞ໘⧚఼ࡼᗕѸ ᤶऩܗᯊˈ䗮ֵঞৠℹ᪡ᰃ䴲㒧ᵘ࣪Ϩϡৃ乘⌟ⱘˈⳈ⫼ MPI П㉏ⱘᑩሖ ᑊ㸠ᑧᓔথ䖭ѯ՟Ӯᕜ㐕⧤Ϩᆍᯧߎ䫭DŽЎℸˈChrisochoides ㄝ䖬ⷨおᑊᅲ⦄ њⳌᑨⱘϞሖᓔথᑧˈᬃᣕࡼᗕ᭄䖕⿏ǃܼሔੑৡぎ䯈ঞऩ䗮ֵㄝᴎࠊˈҹ 䰡Ԣ㉏Ԑᑣᓔথⱘ䲒ᑺ[12, 23]DŽ ⬠䴶ぎ㜨ⱘ໘⧚ֱ䆕њߚᏗᓣ㔥ḐᭈԧϞҡ✊⒵䎇 Delaunay ሲᗻˈҢ㗠 ֱ䆕њᑊ㸠ㅫ⊩ⱘ〇ᅮᗻˈԚᰃˈᅗᓩ䍋ⱘৠℹ䗮ֵ䌍⫼ᰃࠊ㑺ㅫ⊩ᑊ㸠ᬜ⥛ ᦤ催ⱘ݇䬂㋴DŽϔϾᡬ㹋ⱘࡲ⊩ᰃ໘⧚఼П䯈㓈ᡸϔᅮⱘ䖍⬠ˈ↣Ͼ໘⧚ ఼Ϟᅲᮑ㑺ᴳ Delaunay ϝ㾦࣪ˈϔᅮᑺϞ⡎⡆њᑊ㸠ㅫ⊩ⱘ〇ᅮᗻˈҹ䖒 ࠄ䰡Ԣㅫ⊩ᅲ⦄䲒ᑺᦤ催ㅫ⊩ᑊ㸠ᬜ⥛ⱘⳂⱘDŽChew ㄝ[24]ᕜᮽህѠ㓈ᚙ ᔶϟ䅼䆎њ䖭⾡ᗱ䏃ˈϨ䖍⬠䖍ⱘЁ⚍ࡴ⚍ˈҹᘶ䘫༅䖍⬠䖍DŽЎ㓈ᡸ䖍⬠ Ϟ㔥Ḑ᭄ⱘϔ㟈ᗻˈ໘⧚఼П䯈া䳔㽕থ䗕㉏ԐѢĀߚ㾷䆹䖍āⱘ⍜ᙃDŽབᵰ 䖍⬠Ϟϡᄬᇪ㾦ᚙᔶˈेՓᄬݙ䚼䖍⬠ˈDelaunay 㒚ߚㅫ⊩г㛑ֱ䆕᳔㒜㔥 Ḑⱘ䋼䞣DŽ ࡽ׳Delauany-⣀ゟ˄Delaunay-independent˅ⱘὖᗉᰃ㾷އぎ㜨ᑆ⍝䯂乬ⱘ ϔᗱ䏃DŽϸϾᦦܹ⚍ᇍᑨⱘぎ㜨Ѧϡᑆ⍝ᯊˈ⿄䖭ϸϾ⚍ Delauany- ⣀ゟDŽ
Edelsbrunner Guoy[141]佪ߎᦤܜ䖭Ͼὖᗉˈ㗠 Chernikov Chrisochoides[13] ⧚䆎ϞথሩњᅗDŽ؛䆒 r 㸼⼎ᔧࠡ㔥ḐЁ᠔᳝ऩܗञᕘⱘϞ䰤ؐˈ Chernikov Chrisochoides[13]ᕫࠄѠ㓈ᚙᔶϟϸϾ⚍ Delauany-⣀ゟⱘߚܙᴵ ӊ˖ϸ⚍䎱⾏ϡᇣѢ r ⱘ 4 סDŽTriangle ㄝѢֱ䋼 Delaunay 㒚ߚㅫ⊩ⱘ㔥Ḑ⫳ ៤఼ˈ䞛⫼ᖗࡴ⚍ˈ㒚ߚ䖛Ёৃֱ䆕 r ؐϡবDŽ߸ᮁϸ⚍ᰃ৺⣀ ゟᰃᕅડᑣᑊ㸠ᬜ⥛ⱘ᳔㋴ˈৃ䗮䖛䲚៤ㅔऩⱘऎඳߚഫㅫ⊩ᴹ䰡Ԣᅗ᠔ ᓩ䍋ⱘ䌍⫼[13]DŽ
2.5.2 Ѣ᭄ᑊ㸠ᓣⱘ PDMG ㅫ⊩ Ѣӏࡵᑊ㸠ᓣⱘ PDMG ㅫ⊩㱑✊᳝ᕜདⱘ〇ᅮᗻˈԚ݊ᇍᑣ߫࣪ഫ ⱘ⫼ᑺ䕗Ԣˈㅫ⊩ⱘᓔথ䳔㽕䖤⫼Ⳍᇍᴖⱘ䆒䅵㓪ᡔᎻˈℸⱘ PDMG ㅫ⊩䞛⫼ⱘᰃ᭄ᑊ㸠ᓣDŽϡৠⱘѢ᭄ᑊ㸠ᓣⱘ PDMG ㅫ⊩ⱘ Џ㽕ऎ߿Ѣ݊᠔䞛⫼ⱘ᭄ߚ㾷ᮍᓣˈेབԩߚ㾷߱ྟ䯂乬ඳDŽऎඳߚ㾷ᮍᓣ ৃҹߚЎ䖲㓁ऎඳߚ㾷⾏ᬷऎඳߚ㾷ϸ㉏DŽࠡ㗙Ⳉߚ㾷ԩऎඳˈᕫࠄᕜ ᄤඳ˗ৢ㗙ܜᕫࠄ⿔⭣㔥Ḑˈ䱣ৢᇚ㔥Ḑߦߚ៤Ͼᄤ㔥ḐDŽ Ⳉߚ㾷ⱘᮍᓣ᳝ᕜ˖᳝⫼ᑇ䴶এߚࡆⱘ˗᳝⫼Ё䕈⊩ߚࡆⱘ˗᳝䗮䖛ᴗ 䞡ߑ᭄䗦ᔦߚࡆⱘDŽϔ㠀㗠㿔ˈѠ㓈ぎ䯈ˈᇍ≵᳝ᇪ㾦ǃ㒚䭓ぎ⋲ㄝሔ䚼ԩ ⡍ᕕⱘ䯂乬ඳˈᕜߚ㾷ᮍ⊩ᰃৃ㸠ⱘˈԚᰃড়⧚ߚ㾷ϝ㓈ऎඳै䴲ᐌೄ䲒DŽ 29
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
⿔⭣㚠᱃㔥Ḑг᳝ᕜᵘ䗴ᮍᓣˈᅗৃҹ߱ྟ䖍⬠ᦣ䗄ᅠܼਏড়˗гৃҹ Փ⫼ Cartesian ߚ㾷ಯ/ܿঝᷥߚ㾷ᴹᕫࠄˈᕫࠄⱘ㒧ᵰϡϔᅮ߱ྟ䖍⬠ਏড়DŽ 䗮⫼ⱘᑣ߫࣪ Delaunay 㔥Ḑ⫳៤ㅫ⊩䳔㽕⫳ܜ៤ϔϾҙࣙ䖍⬠ܗ㋴ⱘ⿔⭣㔥 ḐˈSaid ㄝህᰃ䗮䖛ߦߚᅗᴹ䆒䅵 PDMG ㅫ⊩ⱘ[2]DŽ ऎඳߚ㾷䯂乬ݙ䚼ᓩܹҎᎹ䖍⬠ˈབԩֱ䆕䖍⬠䰘䖥㔥Ḑ䋼䞣ᇍ PDMG ㅫ⊩ⱘ〇ᅮᗻ㟇݇䞡㽕˗ᶤѯऎඳߚ㾷䖛г᳝ৃ㛑៤Ўᗻ㛑Ϟⱘ⫊乜ˈᑊ㸠ᅗ ᰃ㾷އ䖭ϔ䯂乬ⱘ㞾✊ᗱ䏃˗བԩֱ䆕ҎᎹ䖍⬠Ϟ㔥Ḑ᭄ⱘϔ㟈ᗻгᰃ PDMG ㅫ⊩ⷨおᅲ⦄ЁⱘϔϾ䲒乬DŽ 2.5.2.1 ݮဟੋ଼ىדԅ PDMG സ֥ ऎඳݙ䚼ᓩܹϔϾߚࡆᑇ䴶ৃᇚऎඳϔߚЎѠˈ䗦ᔦ䖭ϔ䖛ৃᕫࠄ乘ᳳ ⱘߚ㾷㒧ᵰDŽϔϾ䲒乬ѢབԩՓߚࡆᑇ䴶ⱘ䖍⬠ܗ㋴ᕙߚ㾷ऎඳⱘ䖍⬠ܗ㋴ ֱᣕϔ㟈ˈℸˈߚࡆᑇ䴶ⱘ᠔᳝ԩܗ㋴ᑊ䴲ⳳℷৠϔᑇ䴶ˈ݊䖍⬠ᰃϝ㓈 ⱘDŽߚࡆᑇ䴶㔥Ḑ⫳៤ࠡˈ䳔㽕ᇚߚࡆᑇ䴶ⱘ䖍⬠ᡩᕅࠄৠϔᑇ䴶Ϟˈᇚߚࡆ ᑇ䴶㔥Ḑ⫳៤䕀࣪ЎѠ㓈䯂乬DŽ㗠ߚࡆᑇ䴶㔥Ḑ⫳៤ৢˈ䳔㽕ᇚ݊䖍⬠ऩⱘܗᶤ ѯ⚍ǃ㒓ܗ㋴ডᡩᕅࠄᕙߚ㾷ऎඳϞDŽ䖭ѯ໘⧚䖛ৃ㛑Ӯ䗴៤⾡䫭䇃ⱘԩ ᚙᔶˈབߚࡆᑇ䴶㔥Ḑᦣ䗄ᕙߚ㾷ऎඳⱘ㸼䴶㔥ḐⳌѸˈℷ⹂໘⧚ᅗӀᰃֱ䆕 ㅫ⊩عໂᗻⱘ݇䬂᠔DŽ Larwood ㄝ[1]ҹሎᇌ᳔䭓ⱘതᷛᮍЎߚࡆᑇ䴶ⱘ⊩ˈᑊ䗝ᢽߚࡆԡ㕂 ᯊሑ䞣䙓ܡߚࡆᑇ䴶ॳ㸼䴶ⳌѸ໘ߎ⦄⣁ᇣⱘ།㾦DŽߚࡆᑇ䴶ⱘ䖍⬠ᦣ䗄ৃ ҹ䗮䖛ϔϾѢߚᵤⱘㅫ⊩ᕫࠄDŽᏗ㕂ߚࡆᑇ䴶Ϟⱘ㔥Ḑᯊˈ䳔㽕㗗㰥ࣙᣀ⚍ ⑤ǃ㒓⑤䴶⑤ㄝϝ㓈ᆚᑺࠊㄪ⬹DŽ㢹ऎඳߚ㾷䖛Ёߎ⦄ϔѯ᮴⊩㾷ⱘއ䫭 䇃ᚙᔶˈৃ㗗㰥䗮䖛⿏ࡼߚࡆᑇ䴶ˈ䞡ਃབϞߚࡆ䖛ᴹ㾷އDŽ Larwood ㄝ䗝ᢽߚࡆᑇ䴶ⱘᮍᓣϡৠˈBoufflet[31]ㄝ߽⫼䗦ᔦ߮ᑺߚ㾷⊩ ˄RIB: Recursive Inertial Bisection˅ᴹ⹂ᅮߚࡆᑇ䴶ⱘᮍԡ㕂ˈऎඳߚ㾷ৢˈ ҪӀ䗝⫼Ѣࠡ⊓䖯⊩ⱘ㔥Ḑ⫳៤఼ᴹᅠ៤ᄤඳⱘࠪߚDŽ Ѣߚࡆᑇ䴶ⱘऎඳߚ㾷ㅫ⊩ᇍᄤඳ⫳៤ᮍ⊩≵᳝㽕∖ˈԚㅫ⊩ᅲ䰙䖤㸠 䖛ЁӮߎ⦄⾡䫭䇃ᚙᔶˈ᳝ѯ䫭䇃ᚙᔶᕜ䲒⫼Ⳉⱘᮍᓣᴹ㾷ˈއᕔᕔ䞛⫼ ᬍবߚࡆᑇ䴶ᮍԡ㕂ⱘᮍᓣᴹ䙓ᓔᅗˈ䖭⧚䆎ϞՓᕫㅫ⊩ϡ㒱ᇍⱘع ໂᗻ˗ेՓᅲ䰙ᅲ⦄Ёㅫ⊩ⱘعໂᗻ᳝䎇ⱘֱ䆕ˈԚᰃ䞡ਃߚࡆ䖛ҡӮᓩ䍋 ϔ㋏߫ⱘ䌍⫼ˈҢ㗠ᕅડㅫ⊩ⱘᬜ⥛DŽᇍ⾡䫭䇃ᚙᔶ⏅ܹⱘߚᵤˈߚܙẔ⌟ ᅗӀˈሑ䞣䙓ܡ䞡ਃߚࡆ䖛ˈ䖭ѯᎹᇍֱ䆕ᭈϾㅫ⊩㟇݇䞡㽕ˈLarwood ㄝ [1]ҹঞ Boufflet ㄝ[31]ᇍ䖭ϔЏ乬䛑㔎У䅼䆎˗ϢПϡৠˈᴀ᭛ 6 ゴ䅼䆎 Ѣߚࡆᑇ䴶ⱘϝ㓈ऎඳߚ㾷Ḛᶊⱘᅲ⦄ᯊˈᇍᅗњ⏅ܹ䯤䗄DŽ 2.5.2.2 ݮဟ PDT सৢԅ PDMG സ֥ Galtier George[29]Ѣ PDT ⧚䆎ᦤߎњϔϾⳈߚ㾷ԩऎඳⱘࡲ⊩ˈᑊ ᇚ݊䲚៤ࠄ INRIA ⱘᑊ㸠 CFD 䕃ӊ HPCN3S Ё[28]DŽ
30
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
PDT ⧚䆎ᰃ Delaunay ϝ㾦࣪⧚䆎ⱘϔϾᢧሩDŽ㒭ᅮϔϾখ㗗㸼䴶˄reference surface˅ S ϔϾϝ㓈ぎ䯈⚍䲚 P ˈᇍᑨ⚍ p P ˈ㢹ᄬऎඳ S p S ˈ݊ݙ᠔ ᳝⚍ࠄ p ⱘ䎱⾏ϡѢࠄ P Ё݊ᅗ⚍ⱘ䎱⾏ˈ߭⿄ S p Ў⚍ p 㸼䴶 S Ϟⱘ Voronoï ˗ܗ䖲㸼䴶 S ϞⳌ䚏 Voronoï ܗᇍᑨⱘ⚍ˈৃᕫࠄ⚍䲚 P Ⳍᇍ㸼䴶 S ⱘ ᡩᕅ Delaunay ϝ㾦࣪DŽᅲ䰙ϞᭈϾ䖛ЁᑊϡᄬĀᡩᕅā᪡ˈ S p ৃⳟ p ⱘ Voronoï ܗ S ⱘѸ䲚DŽ ߽⫼ᑇ䴶Ўখ㗗㸼䴶ˈGaltier George[29]Ѣ PDT ⧚䆎ᓎゟњϔ༫ऎ ඳ乘ߚ㾷Ḛᶊˈᅲ䰙ᕫࠄⱘߚࡆ䴶ᑊ䴲ᑇ䴶ˈԚᅗ᳝Ͼ䴲ᐌ䞡㽕ⱘ⡍ᗻ˖ ˄1˅ߚࡆ䴶ᰃ᳔㒜 Delaunay ϝ㾦࣪㒧ᵰⱘϔ䚼ߚ˗ ˄2˅ߚࡆ䴶ⱘᢧᠥ㒧ᵘϞϡᄬϔᴵ䖍㹿Ѣ 2 Ͼϝ㾦⠛᠔݅ѿⱘᚙᔶ˗ ˄3˅བᵰ㒣䖛 3 Ͼ㡖⚍ˈϨ⧗ᖗԡ㕂ᡩᕅ䴶Ϟⱘ⧗ᰃぎ⧗ˈ߭ 䖭 3 Ͼ㡖⚍ᔶ៤ⱘϝ㾦ᔶᔶ៤ϔϾᡩᕅ Delaunay ϝ㾦ᔶDŽ ⡍ᗻ˄1˅ֱ䆕Ⳉҹᑇ䴶ࡆߚخ䴶Ⳍ↨ˈѢ PDT ⧚䆎ⱘㅫ⊩᠔ѻ⫳ⱘ ߚࡆ䴶䋼䞣催˗⡍ᗻ˄2˅Փᕫ߱ྟߚࡆ䴶ϔϾ᳝ᬜⱘᢧᠥ㒧ᵘˈৃ䗮䖛 ᐌ⫼ⱘ㔥Ḑ㒚ߚ䖛⫳៤ߚࡆ䴶㔥Ḑ˗⡍ᗻ˄3˅߭㸼ᯢৃҹ䗮䖛⬹ᖂׂᬍ⦄ᄬ ⱘ Delaunay ϝ㾦࣪ㅫ⊩ᅠ៤ߚࡆ䴶ⱘᡩᕅ Delaunay ϝ㾦࣪DŽ Ѣᑇ䴶ߚࡆⱘऎඳߚ㾷ㅫ⊩ϔḋˈѢ PDT ⧚䆎ⱘऎඳߚ㾷ㅫ⊩гᄬ ⾡䲒ҹ໘⧚ⱘ䫭䇃ᚙᔶ˗⡍߿ഄˈЎՓߚࡆ䴶ⱘ䖍⬠ܗ㋴ᕙߚ㾷ऎඳⱘ䖍 ⬠ܗ㋴ֱᣕϔ㟈ˈৃ㛑᮴⊩߽⫼ PDT ⧚䆎ᕫࠄϔϾ᳝ᬜⱘߚࡆ䴶䖍⬠ᦣ䗄DŽϞ 䗄䫭䇃ᚙᔶᐌ䗮䖛⿏ࡼখ㗗ᑇ䴶ⱘԡ㕂ᴹ㾷އDŽ 2.5.2.3 ݮဟฉٌࠓדԅ PDMG സ֥ Said ㄝ[2]߽⫼䖍⬠ܗ㋴ᔶ៤ⱘ߱ྟϝ㾦࣪Ў㚠᱃㔥Ḑˈ߽⫼䋾ှㅫ⊩ᇚ㚠 ᱃㔥Ḑߦߚ៤Ͼᄤ㔥Ḑˈ䱣ৢ䞛⫼ Manager/Worker ᑊ㸠ᓣˈ㒚ߚᄤ㔥Ḑˈ Manager 䋳䋷ߚথӏࡵ˗Worker ߭䋳䋷ᠻ㸠ᄤ㔥Ḑ㒚ߚ᪡DŽ᳔ৢ⫳៤ⱘ㔥Ḑৃ ҹߚᏗ໘⧚఼Ϟˈгৃҹ䗕ಲ Manager 㒳ϔ៤ϔϾᭈԧ㔥ḐDŽ⬅Ѣᄤ䯂乬䖍⬠ ܜѢᄤ䯂乬ݙ䚼㹿⾏ᬷˈᄤ㔥Ḑ⫳៤ᯊ໘⧚఼䯈ϡ䳔㽕䗮ֵDŽ䰸ℸҹˈSaid ㄝ䖬䞛⫼њࡼᗕ䋳䕑ᑇ㸵ㄪ⬹ᴹᑇ㸵Ͼ໘⧚఼Ϟⱘ䋳䕑ˈϨᑊ㸠࣪њऎඳߚ㾷 䖛DŽ䞛⫼ℸㄪ⬹ˈSaid ㄝ[2]ᑊ㸠њ Weatherill ⱘᑣ߫࣪ Delaunay 㔥Ḑ⫳៤఼DŽ Ϟ䗄ᗱ䏃ᑊϡᴖˈԚԧᅲ⦄䖛Ёˈᅗ䴶Јབϟϔѯ䯂乬˖ ˄1˅ϸϾᄤ㔥ḐП䯈ⱘҎᎹ䖍⬠Ϟৃ㛑ᄬ㹿 3 Ͼ 3 ϾҹϞⱘᄤ㔥Ḑ᠔ ݅ѿⱘ䖍ˈ䖭ѯ䖍г㹿⿄Ўܼሔ䖍˄global edge˅ˈऎඳߚ㾷䖛Ёˈ䳔㽕ᇍᅗ Ӏ䖯㸠⡍⅞໘⧚ˈҹֱ䆕㔥Ḑ᭄ⱘϔ㟈ᗻ˗ ˄2˅⬅ѢᓩܹҎᎹ䖍⬠ˈᄤ㔥Ḑⱘ䖍⬠ϞӮ᳝ϡᇥᇪ㾦ˈ㱑✊ৃҹ䗮䖛ϔ ѯӬ࣪㾘߭ᴹޣᇥ䖭⾡ᚙᔶˈԚᕜ䲒ᅠܼ⍜䰸ᅗˈ㗠ᇪ㾦ⱘᄬᖙ✊Ӯᕅડࠄ᳔ 㒜㔥Ḑ䋼䞣ⱘᦤ催˗ ˄3˅݊ᅗऎඳߚ㾷䖛Ⳍ↨ˈ䆹ㅫ⊩ⱘҎᎹ䖍⬠໘⧚⌕↨䕗ᴖˈㅫ 31
ԛ 2 Ⴣ ฉٌಓюރୣωܤཙࡎᆘ೭
⊩ᅲ⦄䲒ᑺ䕗DŽ 2.5.2.4 ୣ PDMG സ֥ Ё䕈⊩ᰃᐌ⫼ⱘऎඳߚ㾷ᮍ⊩[142]ˈ Linardakis ㄝ[26]ᇱ䆩ᇚᅗ⫼ѢѠ㓈 PDMG ㅫ⊩ЁDŽҪӀᅲᮑЁ䕈ߚ㾷ⱘ佪㽕Ⳃᷛᰃֱ䆕ᔶ៤ᄤඳᯊϡӮᓩܹᇪ㾦ˈ ৠᯊՓᕫᄤඳᇣⳌ䖥ǃҎᎹ䖍⬠ሑ䞣ᇣDŽᣝ✻ऎඳⱘሔ䚼⡍ᕕሎᇌ˄LFS: Local Feature Size˅⾏ᬷҎᎹ䖍⬠ৢˈᄤඳ㹿䗕ᕔϾ໘⧚఼䖯㸠㔥Ḑࠪߚˈᑊ㸠㔥Ḑ ⫳៤ᯊ໘⧚఼П䯈᮴䳔䗮ֵDŽҎᎹ䖍⬠䰘䖥ᄬϔϾ㓧ކᏺ˄ buffer zone ˅ˈ Linardakis ㄝ䆕ᯢᄤඳ㔥Ḑ⫳៤ᯊˈ㓧ކᏺݙϡӮᦦܹᮄⱘ㡖⚍ˈ⬅ℸˈҎᎹ 䖍⬠Ϟ㔥Ḑ᭄ⱘϔ㟈ᗻᕫࠄֱ䆕DŽ䖭⾡ᑊ㸠ㅫ⊩ৃҹপᕫᕜདⱘᑊ㸠ᬜ⥛ˈԚ ᰃҎᎹ䖍⬠ϞӮߎ⦄䖛ᑺ㒚ߚ˄overrefinement˅ⱘ⦄䈵ˈϨ䲒ҹᢧሩࠄϝ㓈DŽ Talbert ㄝ[44]䗮䖛Ⳉ㒓ᇚѠ㓈ऎඳϔߚЎѠˈⳈ㒓ⱘϸϾッ⚍䰸㽕ⳌѦৃ㾚 ˈ䖬ᖙ乏㗗㰥Ⳉ㒓ॳऎඳⱘ།㾦ǃⳈ㒓ⱘ䭓ᑺҹঞߚ㾷ᕫࠄⱘϸϾᄤඳⱘⳌ ᇍᇣㄝԩ㋴DŽ㢹ᇚ䖭ѯԩ㋴ⱘᕅડ䕀ᤶ៤ϔϾᴗ䞡ߑ᭄ˈᅲ偠㸼ᯢˈ ᅗⱘᣛᇐϟˈৃড়⧚ߚ㾷ӏᛣѠ㓈ऎඳDŽ៥Ӏⱘⷨお㸼ᯢˈ䆹ऎඳߚ㾷䖛䳔 㽕⍜㗫㔥Ḑ⫳៤Тৠḋ᭄䞣㑻ⱘᯊ䯈䌘⑤ˈԚড়⧚ഄᑊ㸠䆹䖛ৢˈ៥Ӏ㦋 ᕫњϔϾ催ᬜ⥛ǃৃᠽሩⱘѠ㓈ऎඳߚ㾷ḚᶊDŽᑊᇚ݊Ѡ㓈ᑣ߫࣪ Delaunay 㔥Ḑ⫳៤఼㒧ড়ˈᅲ⦄њϔϾѠ㓈ᑊ㸠 Delaunay 㔥Ḑ⫳៤఼ PDMG-2DDŽ Blelloch[143]ㄝⷨおњѢߌࣙ⊩ⱘᑊ㸠ㄪ⬹ˈᇚ݊⫼ѢѠ㓈ӏᛣ⚍䲚ⱘᑊ 㸠 Delaunay ϝ㾦࣪ˈ㗠 Kadow[35]߭ᇚ݊ᓩܹѠ㓈 PDMG ㅫ⊩Ёˈᑊ⍜䰸њ݊ Ёᄬⱘᑣ߫࣪ℹ偸DŽ
32
3 ゴ 䴲㒧ᵘ࣪ಯ䖍ᔶ㔥Ḑ⫳៤ঞ݊ᑊ㸠࣪
3.1 ࠡ㿔 ᑇ䴶᳆䴶⡍ᅮ䯂乬ߚᵤЁˈ⬅Ѣ䅵ㅫ㒧ᵰⱘ㊒ᑺ催Ѣϝ㾦ᔶऩˈܗಯ䖍ᔶ ऩܗᕔᕔ㹿Ӭܜ䞛⫼ˈԚ݊㔥Ḑ⫳៤ㅫ⊩гЎᴖDŽ⦄᳝ⱘಯ䖍ᔶऩܗ㔥Ḑ⫳ ៤ᮍ⊩Џ㽕ৃҹߚЎϸ㉏˖䯈⊩[70-74]Ⳉ⊩[42-44, 62, 64, 76-78]DŽ䯈⊩ ऎඳݙ䚼乘⫳ܜ៤ϝ㾦ᔶऩˈܗ䱣ৢ䗮䖛ऩߚܗ㾷㗙ড়ᑊˈ⫳៤ܼಯ䖍ᔶऩ ܗ㔥Ḑ㗙ϝ㾦ᔶಯ䖍ᔶⱘ⏋ড়ऩܗ㔥ḐDŽⳈ⊩ࣙᣀᇘ⊩ǃѢᷙḐ⊩ ࠡ⊓䖯⊩ㄝˈ݊Ёҹࠡ⊓䖯⊩[62, 64]ᑨ⫼᳔Ўᑓ⊯ˈ݊䖍⬠䗖ᑨ㛑དǃ 㔥Ḑ䋼䞣䕗催ˈԚгᄬᅲ⦄ᴖǃ䅵ㅫᬜ⥛䖛Ԣㄝ㔎⚍DŽ Ѣߚ⊏⊩ᗱᛇˈTalbert ㄝ[44]ᦤߎњϔϾᮄⱘܼಯ䖍ᔶऩܗ㔥Ḑ⫳៤ⱘᗱ 䏃˖䗮䖛䗦ᔦߚ㾷ˈᇚ䯂乬ඳߦߚ៤Ͼ⒵䎇㽕∖ⱘᄤඳ˗䱣ेᣝ✻ϔᅮ㾘߭ ᄤඳЁᅠ៤㔥Ḑࠪߚ˗᳔ৢড়ᑊᄤඳ㔥ḐDŽTalbert ㄝ[44]㽕∖᳔㒜ᄤඳᖙ乏Ў݁ 㡖⚍ऎඳˈᑊḍ݁㡖⚍ᄤඳⱘݙ㾦⡍ᗻᇚ݊ߦߚ៤ 4 ㉏ 13 ⾡ॳൟߚ߿ࡴҹ໘ ⧚DŽChae ㄝ[41]ࡴњܿ㡖⚍ᄤඳ 5 ㉏݅ 15 ⾡ॳൟҹঞϔϾሖ⢊ॳൟDŽNowottny ㄝ[42]߭㽕∖ᄤඳᰃϔϾĀㅔऩऎඳāˈᑊ㒚ߚ݊ЎĀൟಯ䖍ᔶāĀൟϝ㾦ᔶā ˈ ✊ৢϸ㉏ϡৠⱘᄤඳЁḍⳌᑨⱘ㒣偠ൟ䖯㸠㔥Ḑࠪߚ˗䘫ធⱘᰃˈ䆹ㅫ⊩ ᄤඳߚ㾷ࠄা࠽ϟ 6 Ͼ㡖⚍ᯊˈҡ✊䳔㽕ᇚᄤඳߚ៤ 3 ㉏ 7 ⾡ॳൟҹᅠ៤᳔ৢ ⱘ㔥Ḑᇕ䯁䅵ㅫDŽSarrate ㄝ[43]থሩњϞ䗄ㅫ⊩ˈ߽⫼㚠᱃㔥Ḑᴹࠊ㔥Ḑⱘ⭣ ᆚˈᑊᇚ䆹ㅫ⊩ᑨ⫼Ѣ㞾䗖ᑨߚᵤЁDŽ Ϟ䗄ㅫ⊩ᄬϸϾ㔎䱋˖ϔᰃ᳔㒜ᄤඳ䛑ᰃ݁㡖⚍ܿ㡖⚍ᄤඳˈ䖛Ѣ⣁ ᇣˈ㟈Փऎඳߚ㾷ሖ䖛⏅ˈϡҙ䰡Ԣњߚ㾷ᬜ⥛ˈϨ䖛ⱘ䰘ࡴ㑺ᴳӮᕅડࠄ ᳔㒜㔥Ḑ䋼䞣ⱘᦤ催˗ѠᰃѢᄤඳݙ㾦ㄝ⡍ᗻⱘᄤඳߚ㉏㾘߭䖛Ѣ㐕⧤ˈᄤඳ ⾡㉏䖛ˈࠪߚ㾘߭ᴖˈՓᕫㅫ⊩ᅲ⦄䲒ᑺˈϨ݊Ё⡉ᡃࠄ䞣ⱘ⍂⚍䖤 ㅫˈࡴњㅫ⊩ⱘᯊ䯈⍜㗫DŽ ⊼ᛣࠄ߽⫼Ⳉ㒓ߚ㾷ऎඳˈऎඳݙ䚼Ӯᔶ៤ϔѯ䕗㾘߭ⱘԩᔶԧˈ㢹㛑 ℷ⹂ഄ䆚߿䖭ѯऎඳЎ㉏ಯ䖍ᔶ㉏ϝ㾦ᔶˈ߽⫼ᴢढㄝ[76, 77]ᦤߎⱘᵓ⊩ ᅠ៤ᄤඳ㔥Ḑ⫳៤ˈৃҹ᳝ᬜഄ㓧㾷Ϟ䴶ᦤঞⱘϸϾ䯂乬˗ϔᮍ䴶ˈᑨ⫼ ᵓ⊩ⱘ㔥Ḑ⫳៤఼Ёᓩܹ㞾ࡼⱘᢧᠥߚ㾷ঞԩߚ㾷ㅫ⊩ৢˈৃҹ⍜䰸ॳⱘܜ Ꮉߚ㾷䖛ˈᕫࠄϔϾܼ㞾ࡼⱘಯ䖍ᔶऩܗ㔥Ḑ⫳៤఼DŽ ᴀゴ 2̚7 㡖䆺㒚ഄ䅼䆎њᑣ߫࣪㔥Ḑ⫳៤䖛ˈ 2 㡖㒭ߎњᑣ߫࣪㔥 Ḑ⫳៤⌕˗ 3 㡖ᦣ䗄њ㞾ࡼⱘᢧᠥߚ㾷ԩߚ㾷䖛ˈᑊᇍབԩࠊߚ㾷
ԛ 3 Ⴣ ׄࠒܤٲങΨฉٌಓюރୣωܤ
㒓Ϟⱘ㡖⚍⫳៤ঞབԩ䆚߿ᄤඳЎ㉏ಯ䖍ᔶ㉏ϝ㾦ᔶሩᓔњ䅼䆎˗ 4 㡖ׂℷ ˈᕫࠄϔϾعໂֱ䋼ⱘൟᵓ˗ њᴢढㄝ[76, 77]ᦤߎⱘൟᵓ˄pattern module˅ 5 㡖ᓩܹѠঝᷥˈᑊᇚ݊ᑨ⫼Ѣᢧᠥߚ㾷ǃԩߚ㾷ঞൟᵓ㔥Ḑᵘᓎ⦃㡖˗ 6 㡖䅼䆎њབԩᕫࠄϔϾᭈԧ㔥Ḑᑊ䗮䖛ԩঞᢧᠥӬ࣪ᴹᦤछᅗⱘ䋼䞣˗ 7 㡖߭ᇍㅫ⊩ⱘ݇䬂ℹ偸䖯㸠њᗻ㛑ߚᵤӬ࣪DŽ ᑣ߫࣪㔥Ḑ⫳៤ࣙϸϾ݇䬂ℹ偸˖ԩߚ㾷ᄤඳ㔥Ḑ⫳៤ˈᴀゴ 8 㡖 䅼䆎њᅗӀ㞾ⱘᑊ㸠ᡔᎻ˗⡍߿ഄˈ䗮䖛ᓩܹᄤඳˈᅲ⦄њৠℹ㔥Ḑ⫳៤ ߦߚˈ⍜䰸њӴ㒳ᑊ㸠ᢳ⦃๗Ё᠔ᖙ䳔ⱘ㔥Ḑ䞡ߦߚ⦃㡖DŽ ᴀゴ 9 㡖ᇚ䗮䖛᭄ؐᅲ偠䆘Ԅᑣ߫࣪ঞᑊ㸠㔥Ḑ⫳៤఼ⱘᗻ㛑DŽ
3.2 ᑣ߫࣪㔥Ḑ⫳៤⌕
16 ᑣ߫࣪㔥Ḑ⫳៤⌕ ؛ᅮ߱ྟⱘԩऎඳ⬅ϔᴵ䗚ᯊ䩜䕀ⱘ⦃ nl ˄ nl t 0 ˅ᴵ乎ᯊ䩜䕀 ⱘ⦃ݙ᠔ᦣ䗄ˈབ 16 ᠔⼎ˈ݊Ёᑣ߫࣪⫳៤㔥Ḑ䳔㽕 5 ϾЏ㽕ℹ偸˖ ˄1˅ᢧᠥߚ㾷˖䗝ᢽĀ᳔Շāⱘ nl ᇍϡৠ⦃Ϟⱘ㡖⚍ˈᇚ䖲䗮ऎඳ䖲 ៤ऩ䖲䗮ऎඳDŽ ˄2˅ԩߚ㾷˖䗝ᢽᕙߚ㾷ऎඳ⦃ϞĀ᳔ՇāⱘϸϾৃ㾚⚍ˈߚ㾷݊Ўϸ ϾᄤඳDŽᇍ↣Ͼᄤඳˈ߸ᮁᅗᰃ৺⒵䎇ᑨ⫼ᵓ⊩Ⳉ⫳៤㔥Ḑⱘᴵӊˈབᵰᰃˈ ᇍ䆹ᄤඳذℶԩߚ㾷ˈ䕀ܹℹ偸˄3˅ ˗৺߭ˈᇍᅗ䞡ԩߚ㾷䖛DŽ ˄3˅ᄤඳ㔥Ḑ⫳៤˖ᑨ⫼ᵓ⊩⫳៤ᄤඳ㔥ḐDŽ ˄4˅㔥Ḑড়ᑊ˖ࠨ䰸ԩߚ㾷㒓ᢧᠥߚ㾷㒓Ϟⱘ䞡㔥ḐֵᙃDŽ 34
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
˄5˅㔥Ḑৢ໘⧚˖䗮䖛ܝ⒥࣪ঞᢧᠥӬ࣪ˈᦤ催ᭈԧ㔥Ḑ䋼䞣DŽ
3.3 ᄤඳᔶ៤ 3.3.1 ߚ㾷㒓ݙᮄ㡖⚍⫳៤ 䗝ᅮᢧᠥԩߚ㾷㒓ৢˈ佪ܜ䳔㽕ߚ㾷㒓ݙᏗ㕂㡖⚍ˈᇚ↡ඳ⦃䖍ߚ㾷 ៤ϸϾᄤඳ⦃䖍DŽᮄ㡖⚍ⱘ᭄Ⳃԡ㕂䳔㽕㔥Ḑᆚᑺࠊㄪ⬹Ⳍऍ䜡ˈϨֱ䆕 ᄤඳ⦃䖍Ϟ㡖⚍ᘏ᭄Ўي᭄ˈҹ⫳៤ܼಯ䖍ᔶऩܗ㔥ḐDŽ ⦄᳝⠜ᴀⱘಯ䖍ᔶऩܗ㔥Ḑ⫳៤఼া㗗㰥⬅䖍⬠ሎᇌഎᅮНⱘ㔥Ḑᆚᑺ ࠊֵᙃˈᇮ㗗㰥㚠᱃㔥Ḑঞᆚᑺ⑤ㄝ催㑻ᆚᑺࠊㄪ⬹ˈ⬅ℸˈᣛᇐߚ㾷㒓ݙ ᮄ㡖⚍Ꮧ㕂ⱘᆚᑺֵᙃা᳝ϸッ⚍ⱘऩܗሎᇌؐDŽ䆒ߚ㾷㒓ᅲ䰙䭓ᑺЎ l a ˈϸッ ⚍ j k Ϟⱘऩܗሎᇌؐߚ߿Ў d j d k ˈϔ㠀ഄˈߚ㾷㒓ৃݙᏗ㕂㡖⚍᭄Ў
2 * la d j dk
ns
བ n s ϡ⒵䎇༛يᗻ㽕∖ˈপ n s
n s 1 ˗⬅ℸˈߚ㾷㒓㹿⾏ᬷ៤ n s 1 Ͼᄤ↉DŽ؛
䆒↣ϔᄤ↉ⱘĀ⧚ᛇ䭓ᑺāЎ
m*i b
( sid ) i
⬅ッ⚍ᴵӊ ( s id ) 0
0,1, , n s )
(i
d j ( s id ) n
d k ˈৃᕫ˖
dk d j °m ns ® °b d j ¯ ⬅ℸᭈϾߚ㾷㒓ⱘĀ⧚ᛇ䭓ᑺāЎ˖ ns
lid
¦ (s
id
)i
0.5 * (d j d k ) * (n s 1)
i 0
ᇚ lid l a П䯈ⱘ䇃Ꮒߚ᨞ࠄ↣ϔᄤ↉ˈ߭↣ϔᄤ↉ⱘᅲ䰙䭓ᑺЎ˖ (sa ) i
la * ( sid ) i lid
(i
0,1, , n s )
35
ԛ 3 Ⴣ ׄࠒܤٲങΨฉٌಓюރୣωܤ
↣Ͼᮄ㡖⚍ⱘऩܗሎᇌؐЎ˖
di
0.5 * (( s a ) i 1 ( s a ) i )
(i 1,2, , n s )
lid l a П䯈ⱘⳌᇍ䇃ᏂK ৃҹᅮНЎ˖
K
l a lid
˄1˅
la
3.3.2 ᢧᠥߚ㾷 ϔ㠀㗠㿔ˈᢧᠥߚ㾷䖛ৃҹᎹᅠ៤ˈЎᮍ֓䍋㾕ˈ䖭г䆒䅵њⳌᑨⱘ 㞾ࡼㅫ⊩DŽЎ↣ᴵ䗝ᢧᠥߚ㾷㒓ᅮНϔϾᴗ䞡ؐˈᴗ䞡᳔ؐᇣⱘ㹿䅸ЎĀ᳔Շā 㗠㹿䞛⫼DŽᷛ䆄䖲䗮ԩऎඳЎ : ˈ䆒 Vi (i 1,, n) V0 ߚ߿Ўऎඳݙ⦃㡖 ⚍䲚ড়˗䆒 P Vi ˈ Q V j (i
0,1,, n; j
0,1,, n; i z j ) ˈ E : PQ ᰃϔᴵ䖲
P Q ⱘⳈ㒓ˈ H : {E; E :} Ў᠔᳝ऎඳݙ䚼ⱘ䗝ᢧᠥߚ㾷㒓ⱘ䲚ড়ˈᴗ 䞡ߑ᭄ f : H o R ৃ㸼⼎Ў˖
C1D C 2 E C 3K C 4I
f (E)
K ⱘᅮН㾕݀ᓣ˄1˅ˈ D ǃ E I ⱘᅮНབϟ˖ 4
D
E
I
¦T
i
i 1
S 2
˄2˅
2S ls lb
(l s : ߚ㾷㒓䭓ᑺ˗lb : ऎඳࣙೈⲦᇍ㾦㒓ⱘ䭓ᑺ)
max(0.0, T1 T 2 S ) max(0.0, T 3 T 4 S )
S
˄3˅ ˄4˅
݀ᓣ˄2˅ǃ˄3˅˄4˅Ё⍝ঞⱘব䞣 T i (i 1,2,3,4) ǃ l s lb ⱘԩᛣНབ 17 ᠔⼎DŽߚ䞣 D 䅸Ўᮄѻ⫳ⱘ།㾦ҹ䴴䖥 90$ ЎՇˈҹ䰆ℶᄤඳЁߎ⦄ᇪ㾦˗ߚ䞣 E 䅸Ўᢧᠥߚ㾷㒓ᑨ䆹ሑ䞣ⱘⷁˈҹ䰆ℶ⣁䭓ऎඳⱘߎ⦄˗ߚ䞣K 㗗㰥ⱘᰃᅲ䰙㡖 ⚍Ꮧ㕂ऩܗሎᇌᅮНП䯈ⱘ䇃Ꮒ˗ߚ䞣 I 䅸Ў⦃䖍Ϟⱘߍ⚍ᘏᰃӬܜ㹿㗗㰥DŽ C1 ǃ C 2 ǃ C 3 C 4 ߭ߚ߿ᰃⳌᑨߚ䞣ⱘᴗ䞡㋏᭄ˈᅲ偠㸼ᯢˈϔ㠀ഄˈᔧপ C1
0.5 ǃ C2
0.2 ǃ C3
0.1 ǃ C 4
0.1 ᯊˈ߽⫼Ϟ䗄ൟৃҹপᕫ䕗⧚ᛇⱘ㒧 36
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
ᵰDŽ䳔㽕⊼ᛣⱘᰃˈ䗝ᢧᠥߚ㾷㒓䰸㽕⒵䎇ऎඳݙ䚼ⱘᴵӊˈ䖬ᑨ䙓ܡ ݊ᅗᏆ䗝ᅮᢧᠥߚ㾷㒓ⳌѸˈ⾏⦃Ϟ㡖⚍˄䰸ᢧᠥߚ㾷㒓ッ⚍ッ⚍ⱘⳌ䚏⚍˅ гϡᑨ䖛䖥ˈৢ㗙ⱘߎ⦄Ӯᇐ㟈⣁じऎඳⱘᔶ៤DŽ Q
T3
T4 ls
ߚ㾷㒓
lb
ᇍ㾦㒓
T2 T1
P
ࣙೈⲦ
17 ᢧᠥߚ㾷㒓䗝প⼎՟
3.3.3 ԩߚ㾷 ㉏ԐѢᢧᠥߚ㾷ˈԩߚ㾷г䳔㽕ᅮНϔϾᴗ䞡ߑ᭄DŽᷛ䆄ᢧᠥߚ㾷ᔶ៤ⱘ ऩ䖲䗮ԩऎඳЎ : s ˈ⦃䖍㡖⚍䲚ড়Ў V ˈ P, Q V ˈ E : PQ ᰃϔᴵ䖲 P
Q ⱘⳈ㒓ˈ H : {E; E : s } Ў᠔᳝ऎඳݙ䚼ⱘ䗝ԩߚ㾷㒓ⱘ䲚ড়ˈߑ᭄
f : H o R ৃ㸼⼎Ў˖ f (E)
C1D C2 E C3J C4K C5I
݊Ё D ǃ E ǃK I ⱘ㸼䖒ᓣߚ߿བ݀ᓣ˄2˅ ǃ ˄3˅ ǃ ˄1˅˄4˅ ˈ㗠 2
¦A
i
J
Aav
i 1
˄5˅
2
¦A
i
i 1
݀ᓣ˄5˅Ёⱘ A1 A2 ᰃߚ㾷㒓ᇚ↡ඳߚ㾷ৢᕫࠄⱘϸϾᄤඳⱘ䴶⿃ˈ Aav ᰃ↡ ඳ䴶⿃ⱘϔञˈ䆒㕂 J ⱘⳂⱘᰃ㽕∖ߚ㾷㒓ᑨ䆹ሑ䞣ᑇഛഄߚ㾷↡ඳ˄䴶⿃ᛣН Ϟ˅DŽ C1 ǃ C 2 ǃ C 3 ǃ C 4 C 5 ߚ߿ᰃⳌᑨߚ䞣ⱘᴗ䞡㋏᭄ˈϔ㒘㤤ⱘؐᰃ˖
37
ԛ 3 Ⴣ ׄࠒܤٲങΨฉٌಓюރୣωܤ
C1
0.5 ˗ C2
0.15 ˗ C3
0.35 ˗ C 4
0.1 ˗ C5
0.2 DŽ
3.3.4 ᳔㒜ᄤඳᔶ⢊⡍ᕕⱘ䞣࣪ᅮН ԩߚ㾷䖛ᰃ䗦ᔦ䖯㸠ⱘˈ݊㒜ℶᴵӊপއѢᇍ᳔㒜ᄤඳᔶ⢊⡍ᕕⱘ䞣࣪ ᅮНDŽᵓ⊩㽕∖᳔㒜ᄤඳᰃĀ㉏ಯ䖍ᔶāĀ㉏ϝ㾦ᔶāˈᅲ偠ⱘ⸔Ϟˈ ᴀ᭛䅸Ў䗖ড়ᵓ⊩ⱘ᳔㒜ᄤඳ乏⒵䎇ᴵӊ˄1˅㗙ৠᯊ⒵䎇ᴵӊ˄2˅~˄5˅ ˖ ˄1˅ᄤඳ⦃䖍㡖⚍ᘏ᭄ϡѢ 6˗㗙 ˄2˅᳝ 3 4 Ͼ乊⚍ⱘݙ㾦 120 $ Пϟˈ䖭ѯ乊⚍⿄Ў㾦⚍˗Ϩ ˄3˅ݙ㾦Ё≵᳝䍙䖛 180 $ H 1 ⱘߍ㾦˗Ϩ ˄4˅㢹ϸϾ㾦⚍䯈䖲㓁ߎ⦄ߍ㾦ˈߍ㾦ᑇ㾦ⱘᏂؐПϡ䍙䖛 H 1 ˗Ϩ ˄5˅㢹ϸϾ㾦⚍䯈䖲㓁ߎ⦄ߌ㾦ˈᑇ㾦ߌ㾦ⱘᏂؐПϡ䍙䖛 H 2 DŽ ᅲ偠㒧ᵰ㸼ᯢˈপ H 1
15$ ǃ H 2
15$ ᯊৃҹᕫࠄ䕗དⱘ㔥Ḑࠪߚ㒧ᵰDŽ㔥Ḑ
ᆚᑺ䕗⭣ᯊˈ H 2 ৃҹᬒᆑࠄ 30 $ ˗㔥Ḑ⿴ᆚᯊˈ䳔ᙄᔧޣᇥ H 2 ⱘؐDŽ
3.4 ᄤඳ㔥Ḑࠪߚ 3.4.1 ᵓ⊩ⱘϔѯᴀὖᗉ
˄a˅I ൟ
˄b˅II ൟ
˄c˅III ൟ
˄d˅IV ൟ
18 ᇍᑨℷᮍᔶখ᭄ඳⱘϔᮣᴀൟᵓ 3.4.1.1 ੦͐ ᇍѢ⡍ᅮᔶ⢊ऎඳЁⱘϔϾ䖍⬠㡖⚍ߚᏗ B ˈḍᵘ䗴㾘ᕟ < ৃҹ⹂ᅮ㔥Ḑ M ˈे᳝ϟ䴶ⱘ݇㋏ M < (B ) ݊Ё B ᑨ䆹⒵䎇ᴀ㑺ᴳ R ˈ↨བℷᮍᔶऎඳЁ㽕⫳៤ܼಯ䖍ᔶऩˈܗಯᴵ䖍 ⬠ⱘࠪߚ᭄ПᑨЎي᭄DŽ៥Ӏ⿄Ѡܗ㒘 ( B, M ) ЎൟᵓDŽ 3.4.1.2 ަؘΨ࠘ၟ೯ԅ੦͐ďpattern module with boundary constraintsĐ ℸᯊˈ䖍⬠㡖⚍ߚᏗ B 䰸⒵䎇ᴀ㑺ᴳ R ˈ䖬㽕⒵䎇䰘ࡴ㑺ᴳ Ra DŽ↨བ䇈ᇍ
38
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
Ѣℷᮍᔶऎඳˈ Ra ৃҹᰃϸᇍ䖍ࠪߚ᭄Ⳍㄝ㗙ϸ䚏䖍ࠪߚ᭄ⳌㄝDŽ 3.4.1.3 ·ݮ੦͐ďbasic pattern moduleĐ ᴀൟᵓᑊ≵᳝ϔϾ㊒⹂ⱘᅮНˈ䖭⡍ᣛ䙷ѯᵘൟㅔऩǃৃ⫼ᴹ㒘ড়݊ ᅗൟᵓⱘ䰘ࡴ䖍⬠㑺ᴳⱘൟᵓDŽ 18 㒭ߎᇍᑨѢℷᮍᔶখ᭄ඳЁⱘϔᮣ ᴀൟᵓDŽ
3.4.2 ϝߚऎൟᵓ݁ߚऎൟᵓ N1
K4
K3
K1
C N2
N3
C
B
K3 K2
A
B
A
19 ϝߚऎൟᵓ
N4
K2
K1
N1
K3
B
C
K4
B N2
A
N3
D
C K2
K1
E
A
F
K6
K5
K2
K1
N4 D
N4
E K7
20 ݁ߚऎൟᵓ
F
ᴢढㄝ[77, 144]㒭ߎ䖛ϸ⾡ൟᵓˈߚ߿བ 19 20 ᠔⼎DŽ N1 ǃ N 2 ǃ N 3 N 4 ߚ߿ᰃ 4 ᴵ䖍ⱘߚ↉᭄ˈЎֱ䆕ѻ⫳ܼಯ䖍ᔶऩˈܗ乏᳝
N 1 N 2 N 3 N 4 ي᭄ 䗮䖛ᮟ䕀ℷᮍᔶˈᘏৃҹՓᕫ
˄6˅
39
ԛ 3 Ⴣ ׄࠒܤٲങΨฉٌಓюރୣωܤ
˄7˅
N1 N 4 t N 2 N 3
19 ᠔⼎ൟᵓࣙϝϾߚऎˈ䖭⿄݊Ўϝߚऎൟᵓˈㅔ⿄
⚍⚍ⷕ˅
0 0->1
1 0->2
2 0->3
3 1->2
4 1->3
5 2->3
ৢ䴶ⱘ䖤ㅫЁৃ㛑Ӯ⡉⍝ࠄϾࣙ݅ѿ㡖⚍ⱘऩˈܗЎऎߚ݅ѿ㡖⚍ϡ ৠऩܗЁⱘ⚍ⷕ㸼⼎ᮍᓣˈᓎゟњབϟੑৡ㾘߭˖
81
ׄࠒܤٲฉٌಓюރୣωܤԅయูؤඕཙࡎ
㒭ᅮ᳝ᑣಯ䴶ԧऩܗ䲚ড় T
D(t j )
j (j
{t1 , t 2 , , t n } ˈᇍ↣ϾऩܗᣛᅮϔϾ᭄ؐᷛ䆄
1 ~ n)
ऩⱘܗ乊⚍⫼ݭᄫ↡ A ~ Z 㸼⼎ˈ䆄Ў D ˈ䆒 D ᇍᑨⱘᇣݭᄫ↡Ў E ˈ㢹ऩܗ
t j ࣙ乊⚍ D ˈ߭䆄 D ऩ ܗt j Ёⱘ⚍ⷕؐЎ iE j ˗⡍߿ഄˈᔧ n 1 ᯊˈेা᳝ ϔϾऩܗᯊˈ䆄 D ଃϔऩܗЁⱘ⚍ⷕؐЎ iE DŽ
5.3.3 ϝ㾦ᔶⱘ S ൟߚ㾷 Z ൟߚ㾷 ϝ㾦ᔶⱘϸᴵ䖍Ϟ⏏ࡴ䕙ࡽ⚍ৢˈᄬϸ⾡ᮍḜˈഛৃᇚॳϝ㾦ᔶߚ㾷៤ϝ Ͼᇣϝ㾦ᔶDŽབ 57ˈ؛䆒㾖ᆳ㗙ԡѢऩܗ䚼Ϩ䴶ᇍ 'ABC ˈḍϸ⾡ᮍḜЁ P1 P2 ǃ BP1 ˄ AP2 ˅ঞ AB 䖭 3 ᴵ㒓↉ᔶ៤ⱘᄫヺᔶ⢊ˈߚ߿ᔶ䈵ഄ⿄ᅗӀЎ S ൟߚ㾷 Z ൟߚ㾷2DŽ C
P1
C
P2
P1
A
P2
A B
B
˄a˅ S ൟߚ㾷
˄b˅ Z ൟߚ㾷
57 ϝ㾦ᔶⱘ S ൟߚ㾷 Z ൟߚ㾷
5.4 䖍⬠䖍ᘶ 5.4.1 Ḍᖗ᭄㒧ᵘ˖ㅵ䘧ܗ ㅵ䘧ܗܼሔऩܗ᭄㒘Ёⱘಯ䴶ԧऩܗᄬϔϔᇍᑨⱘ݇㋏ˈԚ㽕⊼ᛣϸ㗙 ⱘὖᗉᰃ᳝ᴀ䋼ऎ߿ⱘˈࠡ㗙ⴔ䞡ᦣ䗄ⱘᰃऩܗߚ㾷ᯊⱘ⢊ᗕ˗ৢ㗙ⴔ䞡ᦣ䗄 ⱘᰃऩⱘܗԩֵᙃᢧᠥֵᙃDŽ 䖍⬠䖍ᘶⱘ䖛ᅲ䋼Ϟህᰃ䗤Ͼߚ㾷ㅵ䘧ⱘܗ䖛ˈℸㅵ䘧ܗ᭄㒧ᵘ ⱘ䆒䅵ᰃ䖍⬠䖍ᘶㅫ⊩䆒䅵ⱘ݇䬂DŽᑣЁˈ៥Ӏᵘ䗴њϔϾ㣅᭛䆡 pipel˄pipe 2
᭛⤂[149]Ё⿄ Z ൟߚ㾷Ў N ൟߚ㾷ˈᴀ᭛㗙䅸Ў Z ൟߚ㾷Ўᔶ䈵DŽ
82
ԛ 5 Ⴣ Delaunay ฉٌಓюġΨ࠘؏
+ el˅ᴹᣛҷㅵ䘧ܗDŽㅵ䘧ܗ㒧ᵘⱘ C 䇁㿔ᅮНЎ˖ typedef struct Pipel { INTEGER iEle; int type; INTEGER iNod1, iNod2; int cod1, cod2; DecTets dectets; int nTets; } Pipel; iEle ඳᰃㅵ䘧ܗᇍᑨⱘಯ䴶ԧऩܗܼሔऩܗ᭄㒘Ёⱘ㋶ᓩ˗type ඳᷛᖫ њㅵ䘧㉏ⱘܗൟDŽㅵ䘧㉏ⱘܗൟᰃ⬅䘫༅䖍݊ⳌѸⱘϸϾѸ⚍ⱘ㉏ൟ݅ৠއᅮ ⱘDŽѸ⚍ⱘ㉏ൟ᳝ 4 ⾡ˈߚ߿ᅮНབϟ˖ enum {DEG = 0, NOD, EDG, FAC}; DEG 㸼⼎ϔ⾡䗔࣪ᚙᔶˈे≵᳝Ѹ⚍˗NOD 㸼⼎Ѹ⚍ᰃㅵ䘧ⱘܗ乊⚍˗EDG 㸼 ⼎Ѹ⚍ㅵ䘧ⱘܗϔᴵ䖍Ϟ˗FAC 㸼⼎Ѹ⚍ㅵ䘧ⱘܗϔϾ㸼䴶ݙDŽ⬅ℸㅵ䘧ܗ ⱘ㉏ൟ᳝ 11 ⾡˖ #define #define #define #define #define #define #define #define #define #define #define
NOD_NOD EDG_NOD FAC_NOD NOD_EDG EDG_EDG FAC_EDG NOD_FAC EDG_FAC FAC_FAC NOD_DEG EDG_DEG
(((NOD) (((NOD) (((NOD) (((EDG) (((EDG) (((EDG) (((FAC) (((FAC) (((FAC) (((DEG) (((DEG)