خوارزمية مجلة فورتشن

خوارزمية فورتشن هي خوارزمية خط المسح لإنشاء مخطط فورونوي من مجموعة نقاط في مستوى ثنائي الأبعاد باستخدام زمن قدره O ( n log n ) ومساحة قدرها O( n ). [ 1 ] [ 2 ] نُشرت هذه الخوارزمية لأول مرة بواسطة ستيفن فورتشن عام 1986 في بحثه بعنوان "خوارزمية خط المسح لمخططات فورونوي". [ 3 ]
وصف الخوارزمية
تحافظ الخوارزمية على كلٍ من خط المسح وخط الشاطئ ، وكلاهما يتحرك عبر المستوى مع تقدم الخوارزمية. خط المسح هو خط مستقيم، ويمكننا اصطلاحًا افتراض أنه رأسي ويتحرك من اليسار إلى اليمين عبر المستوى. في أي لحظة أثناء الخوارزمية، تكون نقاط الإدخال الواقعة على يسار خط المسح قد أُدرجت في مخطط فورونوي، بينما لم تُؤخذ النقاط الواقعة على يمينه في الاعتبار بعد. أما خط الشاطئ، فهو ليس خطًا مستقيمًا، بل منحنى معقد ومتقطع إلى يسار خط المسح، ويتكون من أجزاء من قطع مكافئة ؛ وهو يفصل الجزء من المستوى الذي يمكن فيه معرفة مخطط فورونوي، بغض النظر عن النقاط الأخرى التي قد تقع على يمين خط المسح، عن بقية المستوى. لكل نقطة تقع على يسار خط المسح، يمكن تعريف قطع مكافئ من النقاط المتساوية البعد عن تلك النقطة وعن خط المسح؛ وخط الشاطئ هو حدود اتحاد هذه القطع المكافئة. مع تقدم خط المسح، ترسم رؤوس خط الشاطئ، حيث يتقاطع قطعان مكافئان، حواف مخطط فورونوي. يتقدم خط الشاطئ مع الحفاظ على قاعدة كل قطع مكافئ في منتصف المسافة تمامًا بين النقاط التي تم مسحها في البداية بخط المسح، والموضع الجديد لخط المسح. رياضيًا، يعني هذا أن كل قطع مكافئ يتشكل باستخدام خط المسح كدليل ونقطة الإدخال كبؤرة.
تعتمد الخوارزمية على بنية بيانات تتضمن شجرة بحث ثنائية تصف التركيب التوافقي لخط الشاطئ، وقائمة انتظار ذات أولوية تسرد الأحداث المستقبلية المحتملة التي قد تُغير بنية خط الشاطئ. تشمل هذه الأحداث إضافة قطع مكافئ آخر إلى خط الشاطئ (عندما يتقاطع خط المسح مع نقطة إدخال أخرى) وإزالة منحنى من خط الشاطئ (عندما يصبح خط المسح مماسًا لدائرة تمر بثلاث نقاط إدخال تشكل قطعها المكافئة أجزاءً متتالية من خط الشاطئ). يمكن تحديد أولوية كل حدث من هذه الأحداث بناءً على الإحداثي السيني لخط المسح عند نقطة وقوع الحدث. تتألف الخوارزمية من إزالة الحدث التالي من قائمة الانتظار ذات الأولوية بشكل متكرر، وإيجاد التغييرات التي يُحدثها الحدث في خط الشاطئ، وتحديث بنية البيانات.
بما أن هناك O( n ) حدثًا للمعالجة (كل منها مرتبط بميزة معينة من مخطط فورونوي) و O(log n ) وقتًا لمعالجة حدث واحد (يتكون كل منها من عدد ثابت من عمليات شجرة البحث الثنائية وقائمة الانتظار ذات الأولوية) فإن إجمالي الوقت هو O( n log n ).
الشفرة الزائفة
وصف الخوارزمية باستخدام الشفرة الزائفة . [ 4 ]
يترككن أنت التحول، أينهي المسافة الإقليدية بين z وأقرب موقع، ولتكن T هي "خط الشاطئ" .لتكن المنطقة التي يغطيها الموقع p . ليكن شعاع الحدود بين الموقعين p و q . لنفترض أن لدينا مجموعة من المواقع التي سيتم تطبيق هذه الخوارزمية عليها. لتكن المواقع المستخرجة من S ذات الإحداثي y الأدنى ، مرتبة حسب الإحداثي x . ولتكن DeleteMin( X ) عملية إزالة الموقع الأدنى والأيسر من X (يتم الترتيب حسب y إلا إذا كانا متطابقين، وفي هذه الحالة يتم الترتيب حسب x). ولتكن V خريطة فورونوي لـ S التي سيتم إنشاؤها بواسطة هذه الخوارزمية. إنشاء أشعة حدودية رأسية أوليةبينما لا تكون قائمة Q فارغة ، قم بتنفيذ ما يلي : p ← DeleteMin( Q ) في حالة p ، إذا كان p موقعًا في: ابحث عن وجود منطقةفي T التي تحتوي على p ، محصور بينعلى اليسار وعلى اليمين، أنشئ أشعة حدودية جديدةو مع استبدال القواعد pمعفي T، احذف من Q أي تقاطع بينوأدخل في Q أي تقاطع بينوأدخل في Q أي تقاطع بينوp هو رأس فورونوي فيليكن p هو تقاطععلى اليسار وعلى اليمين يساركن الجار الأيسر لـودع كن الجار المناسب لـفي T إذاأنشئ شعاعًا حدوديًا جديدًاأما إذا كان p يقع على يمين القيمة الأعلى بين q و s ، فأنشئوإلا قم بإنشاءendif استبدالمع إنشاء جديدفي T، احذف من Q أي تقاطع بينواحذف من Q أي تقاطع بينوأدخل في Q أي تقاطع بينوأدخل في Q أي تقاطع بينو سجل p كأعلى قمةووقاعدة إخراج أجزاء الحدودوendcase endwhile قم بإخراج أشعة الحدود المتبقية في T
المواقع والأقراص الموزونة
المواقع الموزونة بشكل تراكمي
كما يوضح فورتشن في المرجع [ 1 ]، يمكن استخدام نسخة معدلة من خوارزمية خط المسح لإنشاء مخطط فورونوي مرجح جمعيًا ، حيث يتم تعويض المسافة إلى كل موقع بوزن ذلك الموقع؛ ويمكن اعتبار هذا المخطط بمثابة مخطط فورونوي لمجموعة من الأقراص، متمركزة عند المواقع بنصف قطر يساوي وزن الموقع. وقد وُجد أن الخوارزمية تتمتع بـالتعقيد الزمني حيث n هو عدد المواقع وفقًا للمرجع [ 1 ]
يمكن استخدام المواقع الموزونة للتحكم في مساحات خلايا فورونوي عند استخدام مخططات فورونوي لإنشاء خرائط شجرية . في مخطط فورونوي الموزون جمعيًا، يكون منصف الخط بين المواقع عادةً قطعًا زائدًا، على عكس مخططات فورونوي غير الموزونة ومخططات القوى للأقراص حيث يكون خطًا مستقيمًا.
مراجع
- 1 2 3 دي بيرج, مارك ; فان كريفيلد, مارك ; أوفرمارس, مارك ; شوارزكوف ، أوتفريد (2000)، الهندسة الحسابية (الطبعة الثانية المنقحة )، Springer-Verlag ، ISBN 3-540-65620-0القسم 7.2: حساب مخطط فورونوي: الصفحات 151 - 160.
- ↑ أوستن، ديفيد، مخططات فورونوي ويوم على الشاطئ ، عمود مميز، الجمعية الرياضية الأمريكية.
- ↑ ستيفن فورتشن. خوارزمية خط المسح لمخططات فورونوي. وقائع الندوة السنوية الثانية حول الهندسة الحسابية . يوركتاون هايتس، نيويورك، الولايات المتحدة، الصفحات 313-322 . 1986. ISBN 0-89791-194-6مكتبة ACM الرقمية SpringerLink
- ↑ كيني وونغ، هاوسي أ. مولر ، تطبيق فعال لخوارزمية مسح المستوى لفورتشن لمخططات فورونوي ، CiteSeerX 10.1.1.83.5571 .
روابط خارجية
- تطبيق ستيفن فورتشن بلغة C
- خوارزمية فورونوي الخاصة بفورتشن مُطبقة بلغة C++
- تمت أرشفة خوارزمية Fortune المطبقة بلغة JavaScript على GitHub اعتبارًا من أغسطس 2015
- تم حظر الوصول إلى عرض خوارزمية مجلة فورتشن اعتبارًا من عام 2025
- الخوارزميات الهندسية
