Metoda de mers rapid - Fast marching method

Metoda marsaluind rapidă este o metodă numerică creată de James Sethian pentru rezolvarea problemelor de valoare limită ale ecuației Eikonal :

De obicei, o astfel de problemă descrie evoluția unei suprafețe închise în funcție de timp cu viteza în direcția normală într-un punct de pe suprafața de propagare. Funcția de viteză este specificată, iar timpul la care conturul traversează un punct este obținut prin rezolvarea ecuației. Alternativ, poate fi considerat ca timpul minim necesar pentru a ajunge, începând de la punctul respectiv . Metoda de marșare rapidă profită de această interpretare optimă de control a problemei pentru a construi o soluție spre exterior pornind de la „informațiile cunoscute”, adică valorile la graniță.

Algoritmul este similar algoritmului lui Dijkstra și folosește faptul că informațiile curg doar în afară din zona de însămânțare. Această problemă este un caz special al metodelor de nivelare . Există algoritmi mai generali, dar în mod normal sunt mai încet.

Extensii la rezolvarea domeniilor non-plate (triunghiulate)

pentru suprafață și , au fost introduse de Ron Kimmel și James Sethian .

Algoritm

În primul rând, presupuneți că domeniul a fost discretizat într-o rețea. Ne vom referi la punctele de rețea ca noduri. Fiecare nod are o valoare corespunzătoare .

Algoritmul funcționează la fel ca algoritmul lui Dijkstra, dar diferă în modul în care sunt calculate valorile nodurilor. În algoritmul lui Dijkstra, valoarea unui nod este calculată folosind unul dintre nodurile vecine. Cu toate acestea, în rezolvarea PDE în , între și dintre nodurile vecine sunt utilizate .

Nodurile sunt etichetate până acum (nu au fost încă vizitate), sunt considerate (vizitate și valoare atribuită provizoriu) și acceptate (vizitate și valoare atribuită permanent).

  1. Alocați fiecărui nod valoarea și etichetați-le până acum ; pentru toate nodurile setate și etichetate ca acceptate .
  2. Pentru fiecare nod îndepărtat , utilizați formula de actualizare Eikonal pentru a calcula o nouă valoare pentru . Dacă apoi setați și etichetați în considerare .
  3. Fie nodul considerat cu cea mai mică valoare . Eticheta este acceptată .
  4. Pentru fiecare vecin de care nu este acceptat, se calculează o valoare tentativă .
  5. Dacă apoi setați . Dacă a fost etichetat până acum , actualizați eticheta la considerat .
  6. Dacă există un nod considerat , reveniți la pasul 3. În caz contrar, terminați.

Vezi si

linkuri externe

Note