Metoda rychlého pochodu - Fast marching method
The metoda rychlého pochodu[1] je numerická metoda vytvořená pomocí James Sethian k řešení problémy s hraniční hodnotou z Eikonální rovnice:
Typicky takový problém popisuje vývoj uzavřeného povrchu jako funkci času s rychlostí v bodě v normálním směru na množícím se povrchu. Je určena funkce rychlosti a čas, kdy kontura protne bod se získá řešením rovnice. Alternativně, lze považovat za minimální čas potřebný k dosažení počínaje od bodu . Metoda rychlého pochodu to využívá optimální ovládání interpretace problému za účelem vytvoření řešení směrem ven počínaje „známou informací“, tj. hraničními hodnotami.
Algoritmus je podobný Dijkstrův algoritmus a využívá skutečnosti, že informace teče pouze ven z oblasti setí. Tento problém je zvláštním případem metody nastavení úrovní. Obecnější algoritmy existují ale obvykle jsou pomalejší.
Řešení rozšíření do plochých (trojúhelníkových) domén
pro povrch a , byly představeny Ron Kimmel a James Sethian.
Bludiště jako rychlostní funkce nejkratší cesta
Distanční mapa s více vzorci s náhodnými zdrojovými body
Algoritmus
Nejprve předpokládejme, že doména byla diskretizována do sítě. Mřížkové body budeme označovat jako uzly. Každý uzel má odpovídající hodnotu .
Algoritmus funguje stejně jako Dijkstrův algoritmus, ale liší se ve způsobu výpočtu hodnot uzlů. V Dijkstraově algoritmu se hodnota uzlu vypočítává pomocí jediného ze sousedních uzlů. Při řešení PDE v mezi a sousedních uzlů Jsou používány.
Uzly jsou označeny jako daleko (dosud nenavštíveno), považováno (navštívená a předběžně přidělená hodnota) a přijato (navštíveno a hodnota trvale přiřazena).
- Přiřaďte každý uzel hodnota a označit je jako daleko; pro všechny uzly soubor a označit tak jako přijato.
- Pro každý vzdálený uzel , použijte Eikonal aktualizační vzorec pro výpočet nové hodnoty pro . Li pak nastavit a označit tak jako považováno.
- Nechat být považován za uzel s nejmenší hodnotou . Označení tak jako přijato.
- Pro každého souseda z to není přijato, vypočítejte předběžnou hodnotu .
- Li pak nastavit . Li byl označen jako daleko, aktualizovat štítek na považováno.
- Pokud existuje a považováno uzel, vraťte se ke kroku 3. V opačném případě ukončete.
Viz také
externí odkazy
- Dijkstra podobné metody pro eikonální rovnici J.N. Tsitsiklis, 1995
- Metoda rychlého pochodu a její aplikace James A. Sethian
- Metody rychlého pochodu s více vzorci
- Multi-Stencils Fast Marching Implementation Matlab
- Podrobnosti o implementaci metod rychlého pochodu
- Zobecněná metoda rychlého pochodu Forcadel et al. [2008] pro aplikace v segmentaci obrazu.
- Implementace metody rychlého pochodu v Pythonu
- Viz kapitola 8 v Návrh a optimalizace nanooptických prvků spojením výroby s optickým chováním