أسلوب المسير السريع

طريقة المسير السريع [ 1 ] هي طريقة عددية ابتكرها جيمس سيثيان لحل مسائل القيم الحدية لمعادلة إيكونال :

|u(x)|=1/و(x) ل xΩ{\displaystyle |\nabla u(x)|=1/f(x){\text{ لـ }}x\in \Omega }
u(x)=0 ل xΩ{\displaystyle u(x)=0{\text{ for }}x\in \partial \Omega }

عادةً، تصف هذه المشكلة تطور سطح مغلق كدالة للزمن.u{\displaystyle u}مع التغليفو{\displaystyle f}في الاتجاه الطبيعي عند نقطةx{\displaystyle x}على السطح المنتشر. يتم تحديد دالة السرعة، والوقت الذي يعبر فيه الخط المحيطي نقطة ماx{\displaystyle x}يتم الحصول على النتيجة بحل المعادلة. أو بدلاً من ذلك،u(x){\displaystyle u(x)}يمكن اعتبارها الحد الأدنى من الوقت اللازم للوصولΩ{\displaystyle \partial \Omega }بدءاً من النقطةx{\displaystyle x}تستفيد طريقة المسير السريع من هذا التفسير الأمثل للتحكم في المشكلة من أجل بناء حل خارجي بدءًا من "المعلومات المعروفة"، أي القيم الحدية.

تشبه هذه الخوارزمية خوارزمية ديكسترا، وتعتمد على حقيقة أن المعلومات تتدفق للخارج فقط من منطقة التوزيع الأولي. تُعد هذه المسألة حالة خاصة من طرق مجموعة المستويات . توجد خوارزميات أكثر عمومية ، لكنها عادةً ما تكون أبطأ.

امتدادات لحل المجالات غير المستوية (المثلثة)

|Su(x)|=1/و(x)،{\displaystyle |\nabla _{S}u(x)|=1/f(x),}

للسطحS{\displaystyle S}وxS{\displaystyle x\in S}تم تقديمها من قبل رون كيميل وجيمس سيثيان .

الخوارزمية

أولاً، افترض أن المجال قد تم تقسيمه إلى شبكة. سنشير إلى نقاط الشبكة باسم العقد. كل عقدةxأنا{\displaystyle x_{i}}له قيمة مقابلةيوأنا=يو(xأنا)u(xأنا){\displaystyle U_{i}=U(x_{i})\approx u(x_{i})}.

تعمل الخوارزمية تمامًا مثل خوارزمية ديكسترا، لكنها تختلف في كيفية حساب قيم العقد. في خوارزمية ديكسترا، تُحسب قيمة العقدة باستخدام قيمة واحدة فقط من العقد المجاورة. ومع ذلك، عند حل المعادلة التفاضلية الجزئية فيRن{\displaystyle \mathbb {R} ^{n}}، بين1{\displaystyle 1}ون{\displaystyle n}يتم استخدام العقد المجاورة .

يتم تصنيف العقد على أنها بعيدة (لم تتم زيارتها بعد)، ومعتبرة (تمت زيارتها وتم تحديد قيمتها بشكل مؤقت)، ومقبولة (تمت زيارتها وتم تحديد قيمتها بشكل دائم).

  1. قم بتعيين كل عقدةxأنا{\displaystyle x_{i}}قيمةيوأنا=+{\displaystyle U_{i}=+\infty }وقم بتسميتها على أنها بعيدة ؛ لجميع العقدxأناΩ{\displaystyle x_{i}\in \partial \Omega }تعيينيوأنا=0{\displaystyle U_{i}=0}ووضع ملصقxأنا{\displaystyle x_{i}}كما هو مقبول .
  2. لكل عقدة بعيدةxأنا{\displaystyle x_{i}}استخدم صيغة تحديث إيكونال لحساب قيمة جديدة لـيو~{\displaystyle {\tilde {U}}}. لويو~<يوأنا{\displaystyle {\tilde {U}<U_{i}}ثم اضبطيوأنا=يو~{\displaystyle U_{i}={\tilde {U}}}ووضع ملصقxأنا{\displaystyle x_{i}}كما هو مُعتبر .
  3. يتركx~{\displaystyle {\tilde {x}}}كن العقدة المعتبرة ذات القيمة الأصغريو{\displaystyle U}. ملصقx~{\displaystyle {\tilde {x}}}كما هو مقبول .
  4. لكل جارxأنا{\displaystyle x_{i}}لx~{\displaystyle {\tilde {x}}}في حال عدم قبول ذلك، احسب قيمة مبدئيةيو~{\displaystyle {\tilde {U}}}.
  5. لويو~<يوأنا{\displaystyle {\tilde {U}<U_{i}}ثم اضبطيوأنا=يو~{\displaystyle U_{i}={\tilde {U}}}. لوxأنا{\displaystyle x_{i}}تم تصنيفها على أنها بعيدة ، قم بتحديث التصنيف إلى تم اعتبارها .
  6. إذا كانت هناك عقدة معينة ، فارجع إلى الخطوة 3. وإلا، فقم بالإنهاء.

انظر أيضاً

ملحوظات

  1. JA Sethian. A Fast Marching Level Set Method for monotonically Advancing Fronts, Proc. Natl. Acad. Sci., 93, 4, pp.1591-1595, 1996.