Knowledge

Fast marching method

Source đź“ť

520: 508: 636:
The algorithm works just like Dijkstra's algorithm but differs in how the nodes' values are calculated. In Dijkstra's algorithm, a node's value is calculated using a single one of the neighboring nodes. However, in solving the
130: 183: 631: 834: 440: 1294: 1003: 1336: 1045: 668: 318: 794: 1249: 1220: 1157: 1108: 961: 519: 867: 491: 1363: 1191: 1072: 928: 894: 758: 560: 295: 1128: 708: 688: 465: 338: 266: 246: 226: 206: 1493: 1452: 1475:
J.A. Sethian. A Fast Marching Level Set Method for Monotonically Advancing Fronts, Proc. Natl. Acad. Sci., 93, 4, pp.1591--1595, 1996.
344:
interpretation of the problem in order to build a solution outwards starting from the "known information", i.e. the boundary values.
56: 1422: 507: 136: 638: 1400: 565: 535:
First, assume that the domain has been discretized into a mesh. We will refer to meshpoints as nodes. Each node
803: 370: 351:
and uses the fact that information only flows outward from the seeding area. This problem is a special case of
248:
on the propagating surface. The speed function is specified, and the time at which the contour crosses a point
348: 1257: 966: 1476: 1432: 43: 1299: 1008: 644: 300: 1395: 763: 1449: 1225: 1196: 1133: 1084: 937: 839: 1450:
Design and Optimization of Nano-Optical Elements by Coupling Fabrication to Optical Behavior
1437: 1427: 1390: 931: 711: 470: 356: 352: 188:
Typically, such a problem describes the evolution of a closed surface as a function of time
47: 35: 1341: 1169: 1050: 906: 872: 736: 538: 1456: 341: 271: 1113: 693: 673: 450: 323: 251: 231: 211: 191: 1487: 498: 39: 494: 17: 1443: 1412: 297:
can be thought of as the minimum amount of time it would take to reach
1417: 27:
Algorithm for solving boundary value problems of the Eikonal equation
1413:
Dijkstra-like Methods for the Eikonal Equation J.N. Tsitsiklis, 1995
1418:
The Fast Marching Method and its Applications by James A. Sethian
125:{\displaystyle |\nabla u(x)|=1/f(x){\text{ for }}x\in \Omega } 1440:
by Forcadel et al. for applications in image segmentation.
178:{\displaystyle u(x)=0{\text{ for }}x\in \partial \Omega } 362:
Extensions to non-flat (triangulated) domains solving
1344: 1302: 1260: 1228: 1199: 1172: 1136: 1116: 1087: 1053: 1011: 969: 940: 909: 875: 842: 806: 766: 739: 696: 676: 647: 568: 541: 525:
Distance map multi-stencils with random source points
473: 453: 373: 326: 303: 274: 254: 234: 214: 194: 139: 59: 268:
is obtained by solving the equation. Alternatively,
1433:
Implementation Details of the Fast Marching Methods
340:. The fast marching method takes advantage of this 1428:Multi-Stencils Fast Marching Matlab Implementation 1357: 1330: 1288: 1243: 1222:that is not-accepted, calculate a tentative value 1214: 1185: 1151: 1122: 1102: 1066: 1039: 997: 955: 922: 888: 861: 828: 788: 752: 702: 682: 662: 625: 554: 485: 459: 434: 332: 312: 289: 260: 240: 220: 200: 177: 124: 1444:Python Implementation of the Fast Marching Method 1110:be the considered node with the smallest value 725:(visited and value tentatively assigned), and 626:{\displaystyle U_{i}=U(x_{i})\approx u(x_{i})} 1380:node, return to step 3. Otherwise, terminate. 8: 729:(visited and value permanently assigned). 1349: 1343: 1317: 1316: 1307: 1301: 1280: 1262: 1261: 1259: 1230: 1229: 1227: 1201: 1200: 1198: 1177: 1171: 1138: 1137: 1135: 1115: 1089: 1088: 1086: 1058: 1052: 1026: 1025: 1016: 1010: 989: 971: 970: 968: 942: 941: 939: 914: 908: 880: 874: 847: 841: 829:{\displaystyle x_{i}\in \partial \Omega } 811: 805: 771: 765: 744: 738: 695: 675: 654: 650: 649: 646: 614: 592: 573: 567: 546: 540: 472: 452: 435:{\displaystyle |\nabla _{S}u(x)|=1/f(x),} 412: 401: 383: 374: 372: 325: 302: 273: 253: 233: 213: 193: 158: 138: 108: 91: 80: 60: 58: 1468: 503: 1289:{\displaystyle {\tilde {U}}<U_{i}} 998:{\displaystyle {\tilde {U}}<U_{i}} 7: 1423:Multi-Stencils Fast Marching Methods 513:Maze as speed function shortest path 228:in the normal direction at a point 1331:{\displaystyle U_{i}={\tilde {U}}} 1040:{\displaystyle U_{i}={\tilde {U}}} 823: 820: 783: 380: 307: 304: 172: 169: 119: 65: 25: 1494:Numerical differential equations 1438:Generalized Fast Marching method 663:{\displaystyle \mathbb {R} ^{n}} 518: 506: 313:{\displaystyle \partial \Omega } 1322: 1267: 1235: 1206: 1143: 1094: 1031: 976: 947: 789:{\displaystyle U_{i}=+\infty } 620: 607: 598: 585: 426: 420: 402: 398: 392: 375: 284: 278: 149: 143: 105: 99: 81: 77: 71: 61: 1: 934:to calculate a new value for 357:More general algorithms exist 1244:{\displaystyle {\tilde {U}}} 1215:{\displaystyle {\tilde {x}}} 1152:{\displaystyle {\tilde {x}}} 1103:{\displaystyle {\tilde {x}}} 956:{\displaystyle {\tilde {U}}} 347:The algorithm is similar to 1510: 562:has a corresponding value 710:of the neighboring nodes 359:but are normally slower. 320:starting from the point 862:{\displaystyle U_{i}=0} 44:boundary value problems 1401:Bellman–Ford algorithm 1369:, update the label to 1359: 1332: 1290: 1245: 1216: 1187: 1153: 1124: 1104: 1068: 1041: 999: 957: 932:Eikonal update formula 924: 890: 863: 830: 790: 754: 704: 684: 664: 627: 556: 487: 486:{\displaystyle x\in S} 461: 436: 334: 314: 291: 262: 242: 222: 202: 179: 126: 1360: 1358:{\displaystyle x_{i}} 1333: 1291: 1246: 1217: 1188: 1186:{\displaystyle x_{i}} 1154: 1125: 1105: 1069: 1067:{\displaystyle x_{i}} 1042: 1000: 958: 925: 923:{\displaystyle x_{i}} 891: 889:{\displaystyle x_{i}} 864: 831: 791: 755: 753:{\displaystyle x_{i}} 717:Nodes are labeled as 705: 685: 665: 628: 557: 555:{\displaystyle x_{i}} 493:, were introduced by 488: 462: 437: 335: 315: 292: 263: 243: 223: 203: 180: 127: 1396:Fast sweeping method 1342: 1300: 1258: 1226: 1197: 1170: 1134: 1114: 1085: 1051: 1009: 967: 938: 907: 873: 840: 804: 764: 737: 694: 674: 645: 566: 539: 471: 451: 371: 349:Dijkstra's algorithm 324: 301: 290:{\displaystyle u(x)} 272: 252: 232: 212: 192: 137: 57: 32:fast marching method 1166:For every neighbor 903:For every far node 721:(not yet visited), 1455:2013-08-20 at the 1376:If there exists a 1355: 1328: 1286: 1241: 1212: 1183: 1149: 1120: 1100: 1064: 1037: 995: 953: 920: 886: 859: 826: 796:and label them as 786: 750: 733:Assign every node 700: 680: 660: 623: 552: 483: 457: 432: 330: 310: 287: 258: 238: 218: 198: 175: 122: 1448:See Chapter 8 in 1325: 1270: 1238: 1209: 1146: 1123:{\displaystyle U} 1097: 1034: 979: 950: 703:{\displaystyle n} 683:{\displaystyle 1} 460:{\displaystyle S} 353:level-set methods 333:{\displaystyle x} 261:{\displaystyle x} 241:{\displaystyle x} 221:{\displaystyle f} 201:{\displaystyle u} 161: 111: 16:(Redirected from 1501: 1478: 1473: 1391:Level-set method 1364: 1362: 1361: 1356: 1354: 1353: 1337: 1335: 1334: 1329: 1327: 1326: 1318: 1312: 1311: 1295: 1293: 1292: 1287: 1285: 1284: 1272: 1271: 1263: 1250: 1248: 1247: 1242: 1240: 1239: 1231: 1221: 1219: 1218: 1213: 1211: 1210: 1202: 1192: 1190: 1189: 1184: 1182: 1181: 1158: 1156: 1155: 1150: 1148: 1147: 1139: 1129: 1127: 1126: 1121: 1109: 1107: 1106: 1101: 1099: 1098: 1090: 1073: 1071: 1070: 1065: 1063: 1062: 1046: 1044: 1043: 1038: 1036: 1035: 1027: 1021: 1020: 1004: 1002: 1001: 996: 994: 993: 981: 980: 972: 962: 960: 959: 954: 952: 951: 943: 929: 927: 926: 921: 919: 918: 895: 893: 892: 887: 885: 884: 868: 866: 865: 860: 852: 851: 835: 833: 832: 827: 816: 815: 800:; for all nodes 795: 793: 792: 787: 776: 775: 759: 757: 756: 751: 749: 748: 709: 707: 706: 701: 689: 687: 686: 681: 669: 667: 666: 661: 659: 658: 653: 632: 630: 629: 624: 619: 618: 597: 596: 578: 577: 561: 559: 558: 553: 551: 550: 522: 510: 492: 490: 489: 484: 466: 464: 463: 458: 447:for the surface 441: 439: 438: 433: 416: 405: 388: 387: 378: 339: 337: 336: 331: 319: 317: 316: 311: 296: 294: 293: 288: 267: 265: 264: 259: 247: 245: 244: 239: 227: 225: 224: 219: 207: 205: 204: 199: 184: 182: 181: 176: 162: 159: 131: 129: 128: 123: 112: 109: 95: 84: 64: 48:Eikonal equation 36:numerical method 21: 1509: 1508: 1504: 1503: 1502: 1500: 1499: 1498: 1484: 1483: 1482: 1481: 1474: 1470: 1465: 1457:Wayback Machine 1409: 1387: 1365:was labeled as 1345: 1340: 1339: 1303: 1298: 1297: 1276: 1256: 1255: 1224: 1223: 1195: 1194: 1173: 1168: 1167: 1132: 1131: 1112: 1111: 1083: 1082: 1054: 1049: 1048: 1012: 1007: 1006: 985: 965: 964: 936: 935: 910: 905: 904: 876: 871: 870: 843: 838: 837: 807: 802: 801: 767: 762: 761: 740: 735: 734: 692: 691: 672: 671: 648: 643: 642: 610: 588: 569: 564: 563: 542: 537: 536: 533: 526: 523: 514: 511: 469: 468: 449: 448: 379: 369: 368: 342:optimal control 322: 321: 299: 298: 270: 269: 250: 249: 230: 229: 210: 209: 190: 189: 160: for  135: 134: 110: for  55: 54: 28: 23: 22: 15: 12: 11: 5: 1507: 1505: 1497: 1496: 1486: 1485: 1480: 1479: 1467: 1466: 1464: 1461: 1460: 1459: 1446: 1441: 1435: 1430: 1425: 1420: 1415: 1408: 1407:External links 1405: 1404: 1403: 1398: 1393: 1386: 1383: 1382: 1381: 1374: 1352: 1348: 1324: 1321: 1315: 1310: 1306: 1283: 1279: 1275: 1269: 1266: 1252: 1237: 1234: 1208: 1205: 1180: 1176: 1164: 1145: 1142: 1119: 1096: 1093: 1079: 1061: 1057: 1033: 1030: 1024: 1019: 1015: 992: 988: 984: 978: 975: 949: 946: 917: 913: 901: 883: 879: 858: 855: 850: 846: 825: 822: 819: 814: 810: 785: 782: 779: 774: 770: 747: 743: 699: 679: 657: 652: 622: 617: 613: 609: 606: 603: 600: 595: 591: 587: 584: 581: 576: 572: 549: 545: 532: 529: 528: 527: 524: 517: 515: 512: 505: 482: 479: 476: 456: 445: 444: 443: 442: 431: 428: 425: 422: 419: 415: 411: 408: 404: 400: 397: 394: 391: 386: 382: 377: 329: 309: 306: 286: 283: 280: 277: 257: 237: 217: 197: 186: 185: 174: 171: 168: 165: 157: 154: 151: 148: 145: 142: 132: 121: 118: 115: 107: 104: 101: 98: 94: 90: 87: 83: 79: 76: 73: 70: 67: 63: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 1506: 1495: 1492: 1491: 1489: 1477: 1472: 1469: 1462: 1458: 1454: 1451: 1447: 1445: 1442: 1439: 1436: 1434: 1431: 1429: 1426: 1424: 1421: 1419: 1416: 1414: 1411: 1410: 1406: 1402: 1399: 1397: 1394: 1392: 1389: 1388: 1384: 1379: 1375: 1372: 1368: 1350: 1346: 1319: 1313: 1308: 1304: 1281: 1277: 1273: 1264: 1253: 1232: 1203: 1178: 1174: 1165: 1162: 1140: 1117: 1091: 1080: 1077: 1059: 1055: 1028: 1022: 1017: 1013: 990: 986: 982: 973: 944: 933: 915: 911: 902: 899: 881: 877: 856: 853: 848: 844: 817: 812: 808: 799: 780: 777: 772: 768: 760:the value of 745: 741: 732: 731: 730: 728: 724: 720: 715: 713: 697: 677: 655: 640: 634: 615: 611: 604: 601: 593: 589: 582: 579: 574: 570: 547: 543: 530: 521: 516: 509: 504: 502: 500: 499:James Sethian 496: 480: 477: 474: 454: 429: 423: 417: 413: 409: 406: 395: 389: 384: 367: 366: 365: 364: 363: 360: 358: 354: 350: 345: 343: 327: 281: 275: 255: 235: 215: 195: 166: 163: 155: 152: 146: 140: 133: 116: 113: 102: 96: 92: 88: 85: 74: 68: 53: 52: 51: 49: 45: 41: 40:James Sethian 37: 33: 19: 18:Fast marching 1471: 1377: 1370: 1366: 1160: 1075: 897: 797: 726: 722: 718: 716: 635: 534: 446: 361: 346: 187: 42:for solving 31: 29: 208:with speed 38:created by 1378:considered 1371:considered 1076:considered 1047:and label 930:, use the 869:and label 723:considered 670:, between 495:Ron Kimmel 1323:~ 1296:then set 1268:~ 1236:~ 1207:~ 1144:~ 1095:~ 1032:~ 1005:then set 977:~ 948:~ 824:Ω 821:∂ 818:∈ 784:∞ 602:≈ 531:Algorithm 478:∈ 381:∇ 308:Ω 305:∂ 173:Ω 170:∂ 167:∈ 120:Ω 117:∈ 66:∇ 1488:Category 1453:Archived 1385:See also 1161:accepted 1130:. Label 898:accepted 727:accepted 712:are used 46:of the 1463:Notes 1338:. If 963:. If 34:is a 1274:< 1081:Let 983:< 836:set 690:and 497:and 467:and 30:The 1367:far 1254:If 1193:of 1159:as 1074:as 896:as 798:far 719:far 641:in 639:PDE 1490:: 714:. 633:. 501:. 355:. 50:: 1373:. 1351:i 1347:x 1320:U 1314:= 1309:i 1305:U 1282:i 1278:U 1265:U 1251:. 1233:U 1204:x 1179:i 1175:x 1163:. 1141:x 1118:U 1092:x 1078:. 1060:i 1056:x 1029:U 1023:= 1018:i 1014:U 991:i 987:U 974:U 945:U 916:i 912:x 900:. 882:i 878:x 857:0 854:= 849:i 845:U 813:i 809:x 781:+ 778:= 773:i 769:U 746:i 742:x 698:n 678:1 656:n 651:R 621:) 616:i 612:x 608:( 605:u 599:) 594:i 590:x 586:( 583:U 580:= 575:i 571:U 548:i 544:x 481:S 475:x 455:S 430:, 427:) 424:x 421:( 418:f 414:/ 410:1 407:= 403:| 399:) 396:x 393:( 390:u 385:S 376:| 328:x 285:) 282:x 279:( 276:u 256:x 236:x 216:f 196:u 164:x 156:0 153:= 150:) 147:x 144:( 141:u 114:x 106:) 103:x 100:( 97:f 93:/ 89:1 86:= 82:| 78:) 75:x 72:( 69:u 62:| 20:)

Index

Fast marching
numerical method
James Sethian
boundary value problems
Eikonal equation
optimal control
Dijkstra's algorithm
level-set methods
More general algorithms exist
Ron Kimmel
James Sethian
Maze as speed function shortest path
Distance map multi-stencils with random source points
PDE
are used
Eikonal update formula
Level-set method
Fast sweeping method
Bellman–Ford algorithm
Dijkstra-like Methods for the Eikonal Equation J.N. Tsitsiklis, 1995
The Fast Marching Method and its Applications by James A. Sethian
Multi-Stencils Fast Marching Methods
Multi-Stencils Fast Marching Matlab Implementation
Implementation Details of the Fast Marching Methods
Generalized Fast Marching method
Python Implementation of the Fast Marching Method
Design and Optimization of Nano-Optical Elements by Coupling Fabrication to Optical Behavior
Archived
Wayback Machine

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑