خوارزمية تشان

في الهندسة الحسابية ، تُعد خوارزمية تشان ، [ 1 ] التي سُميت نسبةً إلى تيموثي إم. تشان ، خوارزمية مثالية حساسة للمخرجات لحساب الغلاف المحدب لمجموعةلنقاط، في فضاء ثنائي أو ثلاثي الأبعاد. تأخذ الخوارزميةالوقت، أينيمثل عدد رؤوس الناتج (الغلاف المحدب). في الحالة المستوية، تجمع الخوارزمية بينخوارزمية ( مثل مسح غراهام ) مع مسيرة جارفيس () من أجل الحصول على الأمثليُعدّ خوارزمية تشان جديرة بالذكر لبساطتها مقارنةً بخوارزمية كيركباتريك-سيدل ، وقدرتها على التوسع بشكل طبيعي لتشمل الفضاء ثلاثي الأبعاد. وقد طوّر فرانك نيلسن هذا النموذج [ 2 ] بشكل مستقل في أطروحته للدكتوراه. [ 3 ]
الخوارزمية
ملخص
تتطلب عملية تمرير واحدة للخوارزمية معلمةوالتي تقع بين 0 و(عدد نقاط مجموعتنا)). من الناحية المثالية،لكنعدد الرؤوس في الغلاف المحدب الناتج غير معروف في البداية. يتم إجراء عدة تمريرات بقيم متزايدة لـيتم إنجازها، ثم تنتهي عندماانظر أدناه حول اختيار المعلمة.
تبدأ الخوارزمية بتقسيم مجموعة النقاط بشكل عشوائيداخلالمجموعات الفرعيةمع أقصى حدلكل نقطة؛ لاحظ أن.
لكل مجموعة فرعية، حيث يقوم بحساب الغلاف المحدب،باستخدامخوارزمية (على سبيل المثال، مسح غراهام )، حيثيمثل عدد النقاط في المجموعة الفرعية. حيث يوجدمجموعات فرعية منكل نقطة، هذه المرحلة تستغرقوقت.
خلال المرحلة الثانية، يتم تنفيذ مسيرة جارفيس ، باستخدام الأغلفة المحدبة (الصغيرة) المحسوبة مسبقًا.في كل خطوة من خطوات خوارزمية مسيرة جارفيس هذه، لدينا نقطةفي الغلاف المحدب (في البداية،ربما تكون هذه هي النقطة فيبأقل إحداثي y، والذي يضمن وجوده في الغلاف المحدب لـ)، ويحتاجون إلى إيجاد نقطةبحيث تكون جميع النقاط الأخرىتقع على يمين الخط، حيث الترميزيعني ذلك ببساطة أن النقطة التالية هييتم تحديدها كدالة لـوالغلاف المحدب للمجموعة،، وهو معروف ويحتوي على الأكثرالنقاط (المدرجة بترتيب مع عقارب الساعة أو عكس عقارب الساعة)، مما يسمح بحسابفيالوقت باستخدام البحث الثنائي . ومن ثم، حسابلكليمكن إجراء المجموعات الفرعية فيالوقت. عندها، يمكننا تحديدباستخدام نفس الأسلوب المستخدم عادةً في مسيرة جارفيس، ولكن مع مراعاة النقاط فقط(أي النقاط الموجودة في الأغلفة المحدبة المصغرة) بدلاً من المجموعة بأكملهابالنسبة لتلك النقاط، فإن إحدى نسخ مسيرة جارفيس هيوهو أمر ضئيل مقارنةً بالحسابات الخاصة بجميع المجموعات الفرعية. تكتمل مسيرة جارفيس عند تكرار العملية.مرات (لأن، بحسب طريقة عمل مسيرة جارفيس، بعد أكثر منتكرارات حلقتها الخارجية، حيثيمثل عدد النقاط في الغلاف المحدب لـ، لا بد أننا وجدنا الغلاف المحدب)، ومن ثم تبدأ المرحلة الثانيةالوقت، المكافئ لـالوقت إذاقريب من(انظر أدناه وصفًا لاستراتيجية للاختيار)بحيث يكون هذا هو الحال).
من خلال تنفيذ المرحلتين الموصوفتين أعلاه، يتم الحصول على الغلاف المحدب لـيتم حساب النقاط فيوقت.
اختيار المعامل m
إذا تم اختيار قيمة عشوائية لـقد يحدث أنفي هذه الحالة، بعدفي المرحلة الثانية، نوقف مسيرة جارفيس لأن إكمالها حتى النهاية سيستغرق وقتاً طويلاً. في تلك اللحظة،سيكون الوقت قد انقضى، ولن يتم حساب الغلاف المحدب.
الفكرة هي إجراء عدة دورات للخوارزمية بقيم متزايدة لـتنتهي كل محاولة (بنجاح أو بفشل) فيالوقت. إذاإذا زادت القيمة ببطء شديد بين الدورات، فقد يكون عدد التكرارات كبيرًا؛ من ناحية أخرى، إذا ارتفعت بسرعة كبيرة، فإن الدورة الأولىقد تكون القيم التي تنتهي عندها الخوارزمية بنجاح أكبر بكثير منوتنتج تعقيدًا.
استراتيجية التربيع
تتمثل إحدى الاستراتيجيات الممكنة في تربيع قيمةفي كل تكرار، حتى قيمة قصوى لـ(المقابلة لتقسيم في مجموعات أحادية). [ 4 ] بدءًا من القيمة 2، في التكرار،يتم اختياره. في هذه الحالة،يتم إجراء التكرارات، مع الأخذ في الاعتبار أن الخوارزمية تنتهي بمجرد أن نحصل على
مع أخذ اللوغاريتم في الأساس، وإجمالي وقت تشغيل الخوارزمية هو
في ثلاثة أبعاد
ولتعميم هذا البناء على الحالة ثلاثية الأبعاد،ينبغي استخدام خوارزمية بريباراتا وهونغ لحساب الغلاف المحدب ثلاثي الأبعاد بدلاً من مسح غراهام، كما يجب استخدام نسخة ثلاثية الأبعاد من مسيرة جارفيس. ويبقى التعقيد الزمني كما هو.[ 1 ]
الشفرة الزائفة
في الشفرة الزائفة التالية ، تُعتبر النصوص بين قوسين والمكتوبة بخط مائل تعليقات. لفهم الشفرة الزائفة التالية فهمًا كاملًا، يُنصح بأن يكون القارئ على دراية مسبقة بخوارزميات مسح غراهام وجارفيس لحساب الغلاف المحدب.، لمجموعة من النقاط، .
- الإدخال: ضبطمعنقاط.
- الناتج: مجموعةمعالنقاط، الغلاف المحدب لـ.
- (اختر نقطة منوهو أمر مضمون أن يكون في(على سبيل المثال، النقطة ذات الإحداثي y الأدنى.)
- (تستغرق هذه العمليةالوقت: على سبيل المثال، يمكننا ببساطة التكرار من خلال.)
- (يُستخدم في جزء مسيرة جارفيس من خوارزمية تشان هذه،
- وبالتالي لحساب النقطة الثانية،، في الغلاف المحدب لـ.)
- (ملحوظة:ليست نقطة من.)
- (للمزيد من المعلومات، انظر التعليقات القريبة من الجزء المقابل من خوارزمية تشان.)
- (ملحوظة:، عدد النقاط في الغلاف المحدب النهائي لـ( غير معروف.)
- (هذه هي التكرارات اللازمة لاكتشاف قيمةوهو تقدير لـ.)
- (هذا مطلوب لخوارزمية تشان لإيجاد الغلاف المحدب لـ.)
- (وبشكل أكثر تحديدًا، نريدحتى لا يتم إجراء الكثير من التكرارات غير الضرورية
- وبالتالي فإن التعقيد الزمني لخوارزمية تشان هذه هو.)
- (كما هو موضح أعلاه في هذه المقالة، يتم استخدام استراتيجية حيث يكون الحد الأقصىيلزم إجراء تكرارات للعثور على.)
- (ملاحظة: النهائي)قد لا يكون مساوياً لـلكنها لا تكون أصغر من ذلك أبداًوأكبر من.)
- (ومع ذلك، تتوقف خوارزمية تشان هذه بمجرديتم تنفيذ تكرارات الحلقة الخارجية،
- أي حتى لولا يؤدي الغرض المطلوبتكرارات الحلقة الخارجية.)
- (للمزيد من المعلومات، انظر إلى جزء مسيرة جارفيس من هذه الخوارزمية أدناه، حيثيتم إرجاعها إذا.)
- ليفعل
- (ضبط المعلمة)بالنسبة للتكرار الحالي. يتم استخدام "مخطط التربيع" كما هو موضح أعلاه في هذه المقالة.
- توجد مخططات أخرى: على سبيل المثال، "مخطط المضاعفة"، حيث، ل.
- أما إذا تم استخدام "مخطط المضاعفة"، فإن التعقيد الزمني الناتج لخوارزمية تشان هذه هو.)
- (قم بتهيئة قائمة (أو مصفوفة) فارغة لتخزين نقاط الغلاف المحدب لـ(كما يتم العثور عليها.)
- (مجموعة نقاط مقسمة بشكل عشوائي)داخلمجموعات فرعية من تقريبًاكل عنصر من العناصر.)
- (احسب الغلاف المحدب لجميعمجموعات فرعية من النقاط،.)
- (فإنه يأخذوقت.)
- لوإذن، يكون التعقيد الزمني هو.)
- ليفعل
- (احسب الغلاف المحدب للمجموعة الجزئية)،باستخدام مسح غراهام، الذي يأخذوقت.)
- (هو الغلاف المحدب لمجموعة النقاط الفرعية.)
- (عند هذه النقطة، الأغلفة المحدبةمن مجموعات النقاط الفرعية على التوالي(تم حسابها.)
- (الآن، استخدم نسخة معدلة من خوارزمية مسيرة جارفيس لحساب الغلاف المحدب لـ.)
- (يؤدي جارفيس مارش عرضه فيالوقت، أينيمثل عدد نقاط الإدخال و(عدد النقاط في الغلاف المحدب.)
- (نظرًا لأن خوارزمية جارفيس مارش حساسة للمخرجات ، فإن وقت تشغيلها يعتمد على حجم الغلاف المحدب،.)
- (عمليًا، هذا يعني أن مسيرة جارفيس تؤديتكرارات الحلقة الخارجية.
- في كل تكرار من هذه التكرارات، يكون أداؤه على الأكثرتكرارات الحلقة الداخلية الخاصة بها.)
- (نريد)لذلك لا نريد أن نؤدي أكثر من(تكرارات في الحلقة الخارجية التالية.)
- (إذا كان التيارأصغر من، أي، الغلاف المحدب لـ(لا يمكن العثور عليه.)
- (في هذه النسخة المعدلة من مسيرة جارفيس، نقوم بتنفيذ عملية داخل الحلقة الداخلية التي تأخذوقت.
- وبالتالي، فإن التعقيد الزمني الإجمالي لهذه النسخة المعدلة هو
- لوإذن، يكون التعقيد الزمني هو.)
- ليفعل
- (ملاحظة: هنا، نقطة في الغلاف المحدب لـهذا أمر معروف بالفعل، أي.)
- (في حلقة التكرار الداخلية هذه ،النقاط التالية المحتملة التي يجب أن تكون على الغلاف المحدب لـ،(يتم حسابها.)
- (كل من هؤلاءالنقاط المحتملة التالية تأتي من منظور مختلف:
- إنه،هي نقطة محتملة تالية على الغلاف المحدب لـوهو جزء من الغلاف المحدب لـ.)
- (ملحوظة:يعتمد علىأي، لكل تكرار، هناكالنقاط التالية المحتملة التي يجب أن تكون على الغلاف المحدب لـ.)
- (ملاحظة: في كل تكرار)، وهي واحدة فقط من النقاط بينتُضاف إلى الغلاف المحدب لـ.)
- ليفعل
- (يجد النقطةبحيث تكون الزاويةيتم تحقيق أقصى قدر من الكفاءة ،
- أينالزاوية بين المتجهينو. هذهيتم تخزينها في.)
- (لا يلزم حساب الزوايا مباشرة: يمكن استخدام اختبار التوجيه .)
- (يمكن تنفيذه فيوقت .)
- (ملاحظة: في التكرار،ومعروفة وهي نقطة في الغلاف المحدب لـ:
- في هذه الحالة، تكمن الفكرة في(مع أدنى قيمة للإحداثي y.)
- (اختر النقطة)مما يزيد الزاوية إلى أقصى حدلتكون النقطة التالية على الغلاف المحدب لـ.)
- (تنتهي مسيرة جارفيس عند النقطة المحددة التالية على الهيكل المحدب،، هي النقطة الابتدائية،.)
- لو
- (أعد الغلاف المحدب لـوالذي يحتوينقاط.)
- (ملاحظة: بالطبع، لا داعي للعودة)وهو ما يساوي.)
- يعود
- آخر
- (إفستان)تكرارات نقطةلم يتم العثور عليه، لذلك، ثم.)
- (نحتاج إلى البدء من جديد بقيمة أعلى لـ.)
تطبيق
تتضمن ورقة تشان عدة اقتراحات قد تُحسّن الأداء العملي للخوارزمية، على سبيل المثال:
- عند حساب الأغلفة المحدبة للمجموعات الفرعية، قم بإزالة النقاط التي لا تقع في الغلاف المحدب من الاعتبار في عمليات التنفيذ اللاحقة.
- يمكن الحصول على الأغلفة المحدبة لمجموعات النقاط الأكبر حجماً عن طريق دمج الأغلفة المحدبة المحسوبة مسبقاً، بدلاً من إعادة الحساب من الصفر.
- بناءً على الفكرة المذكورة أعلاه، تكمن التكلفة الرئيسية للخوارزمية في المعالجة المسبقة، أي حساب الأغلفة المحدبة للمجموعات. ولتقليل هذه التكلفة، يمكننا إعادة استخدام الأغلفة المحسوبة من التكرار السابق ودمجها مع زيادة حجم المجموعة.
الإضافات
تتضمن ورقة تشان بعض المشكلات الأخرى التي يمكن جعل خوارزمياتها المعروفة حساسة للإخراج الأمثل باستخدام أسلوبه، على سبيل المثال:
- حساب الغلاف السفليمن مجموعةلالقطع المستقيمة، والتي تُعرف بأنها الحد السفلي لشبه المنحرف غير المحدود الذي يتكون من التقاطعات.
- قدم هيرشبرغر [ 5 ]خوارزمية يمكن تسريعها إلىحيث يمثل h عدد الحواف في الغلاف
- بناء خوارزميات حساسة للمخرجات للأغلفة المحدبة ذات الأبعاد الأعلى. باستخدام تجميع النقاط واستخدام هياكل بيانات فعالة،يمكن تحقيق التعقيد بشرط أن يكون h من رتبة متعددة الحدود في.
انظر أيضاً
مراجع
- 1 2 تشان، تيموثي م. (1996). "خوارزميات الغلاف المحدب الأمثل الحساسة للمخرجات في بعدين وثلاثة أبعاد" . الهندسة المنفصلة والحسابية . 16 (4): 361-368 . doi : 10.1007/BF02712873 .
- ↑ نيلسن، فرانك (2000). "التجميع والاستعلام: نموذج للحصول على خوارزميات حساسة للمخرجات". الهندسة المنفصلة والحسابية . سلسلة محاضرات في علوم الحاسوب. المجلد 1763. الصفحات 250-257 . doi : 10.1007/978-3-540-46515-7_21 . ISBN 978-3-540-67181-7.
- ↑ فرانك نيلسن. " الهندسة الحسابية التكيفية ". أطروحة دكتوراه، INRIA ، 1996.
- ↑ شازيل، برنارد ؛ ماتوشيك، جيري (1995). "إزالة العشوائية من خوارزمية الغلاف المحدب الحساسة للمخرجات في ثلاثة أبعاد" . الهندسة الحسابية . 5 : 27-32 . doi : 10.1016/0925-7721(94)00018-Q .
- ↑ هيرشبرغر، جون (1989). "إيجاد الغلاف العلوي لـ n قطعة مستقيمة في زمن O(n log n)". رسائل معالجة المعلومات . 33 (4): 169-174 . doi : 10.1016/0020-0190(89)90136-1 .
- خوارزميات الغلاف المحدب
