هندسه محاسباتی
هندسه محاسباتی یکی از شاخه‌های علوم کامپیوتر است. هندسه محاسباتی علم حل مسائل هندسی به روش الگوریتمی و با استفاده از ساختمان داده‌ها (Data Structures) می‌باشد. بعضی از مسائل کاملاً هندسی، برآمده از مطالعهٔ الگوریتم‌های هندسهٔ محاسباتی است و مطالعه این‌گونه مسائل نیز به عنوان بخشی از هندسه محاسباتی به حساب می‌آید.
انگیزهٔ اصلی برای قلمداد کردن هندسه محاسباتی به عنوان یک رشتهٔ علمی، پیشرفت در گرافیک کامپیوتری، طراحی و تولیدات با کمک رایانه (به وسیلهٔ نرم‌افزارهایی مانند کد/کم) بود؛ ولی طبیعتاً بسیاری از مسائل در هندسه محاسباتی، قدیمی هستند.
کاربردهای مهم دیگر هندسه محاسباتی در دانش روباتیک (برنامه‌ریزی حرکتی)، سیستم‌های اطلاعات جغرافیایی(جستجو و مکان‌یابی هندسی، نقشه‌کشی راه‌ها)، طراحی مدار مجتمع(طراحی و بازبینی هندسی مدارهای مجتمع) و مهندسی با کمک رایانه (برنامه‌ریزی ماشین‌های کنترل عددی) می‌باشد.
شاخه‌های اصلی هندسه محاسباتی عبارتند از:
هدف اصلی از پژوهش در زمینهٔ هندسه محاسباتی ترکیبیاتی این است که، برای حل مسائلی که در زمینه اشیای پایه هندسی (نقاط، خط‌ها، چند ضلعی‌ها، چند وجهی‌ها و...) مطرح می‌شوند، الگوریتم‌ها و ساختارهای داده ی مناسبی تولید شود.
برخی از این مسائل به قدری آسان به نظر می‌رسند که تا زمان پیدایش رایانه‌ها مشکل به حساب نمی‌آمدند. برای مثال به مسئلهٔ نزدیک‌ترین زوج توجه کنید: می‌توان فاصله بین جفت نقطه‌ها، که تعدادشان معلوم هست را پیدا کرد و بعد کوچک‌ترین عدد را انتخاب کرد. این الگوریتم از مرتبهٔ "n" است. منظور این است که زمان اجرایش به مربع تعداد نقاط بستگی دارد. یک نتیجهٔ کلاسیک در هندسهٔ محاسباتی ایجاد الگوریتمی بود که از مرتبهٔ "n log n" زمان بگیرد. الگوریتم‌های تصادفی که از مرتبهٔ "n" زمان می‌برند، علاوه بر الگوریتم‌های تعیین‌کننده‌ای که از مرتبهٔ "n log n" زمان می‌برند نیز کشف شده‌اند.
برای "GIS جدید"، گرافیک کامپیوتری و سیستم‌های طراحی مدارهای مجتمع که روزانه ده‌ها و صدها میلیون نقطه را به کار می‌گیرند، تفاوت بین مرتبهٔ "n"و مرتبهٔ "n log n" می‌تواند تفاوت بین روزها و ثانیه‌ها محاسبه، باشد. به همین دلیل است که در هندسه محاسباتی تأکید زیادی روی پیچیدگی محاسباتی شده‌است.
مسائل اساسی در هندسه محاسباتی را می‌توان با در نظر گرفتن معیارهای گوناگون، به روش‌های گوناگونی طبقه‌بندی کرد. یکی از این رده‌بندی‌ها در زیر آمده‌است.
در این گروه ازمسائل، نوعی ورودی داده می‌شود و خروجی متناسب باید به دست بیاید یا پیدا شود. برخی مسائل اساسی این نوع عبارتند از: پیچیدگی محاسباتی برای این دسته از مسائل براساس زمان و فضای (حافظهٔ کامپیوتری) لازم برای حل مسئله تقریب زده می‌شود.
در مسائل جستجوی هندسی ورودی از دو قسمت تشکیل شده‌است: قسمت فضای جستجو و قسمت جستجو، که در هر مسئله تغییر می‌کند. قسمت فضای جستجو باید به گونه‌ای پیش پردازش شود که بتواند به نحو مطلوبی به سوالات متعدد جواب دهد.
برخی مسائل اساسی جستجوی هندسی عبارتند از: اگر فضای جستجو ثابت باشد، پیچیدگی محاسباتی برای این دسته از مسائل بر اساس مطالب زیر تخمین زده می‌شود:
برای حالتی که فضای جستجو تغییر می‌کند، به مسائل پویا رجوع کنید.
یکی دیگر از گروه‌های اصلی مسائل، مسائل پویا هستند که در آن‌ها هدف، یافتن الگوریتمی مناسب برای یافتن راه حلی است که بعد از هر تغییر دادهٔ ورودی (اضافه یا حذف کردن عناصر هندسی) تکرار شود. الگوریتم‌های این نوع مسائل اغلب شامل ساختارهای دادهٔ پویا است. هر کدام از مسائل هندسه محاسباتی را می‌توان به مسئلهٔ پویا تبدیل کرد. برای مثال، مسئلهٔ جستجوی محدوده را می‌توان با اضافه کردن امکان اضافه یا حذف کردن نقطه‌ها به مسئلهٔ جستجوی پویای محدوده تبدیل کرد. مسئلهٔ پوستهٔ محدب پویا همان کار مسئلهٔ پوستهٔ محدب را برای مجموعهٔ نقاطی که به‌طور پویا تغییر می‌کنند انجام می‌دهد.
پیچیدگی محاسباتی این دسته از مسائل با توجه به عوامل زیر تخمین زده می‌شود:
می‌توان با برخی داده‌ها به گونه‌ای برخورد کرد که با توجه به محتوایشان جزو هر کدام از گروه‌های معرفی شده قرار گیرند. برای مثال، مسئله زیر را در نظر بگیرید: نقطه در چند ضلعی: مشخص کنید که یک نقطهٔ مورد نظر داخل چند ضلعی است یا خارج آن. در بسیاری از موارد با این مسئله به عنوان یک "تک تیر" برخورد می‌شود، یعنی اینکه مربوط به گروه اول است. برای مثال، در بسیاری از نمونه‌های گرافیک کامپیوتری یک مسئلهٔ رایج این است که مشخص کند کدام ناحیه از صفحه توسط نشانه‌گر ماوس کلیک شده‌است. اما در برخی موارد چند ضلعی مورد نظر تغییر ناپذیر است در حالی که نقطه مورد جستجو را به نمایش می‌گذارد. برای مثال، چند ضلعی وارد شده می‌تواند نمایندهٔ مرز یک کشور باشد و نقطه، مکان یک هواپیما و مسئله تعیین کردن این است که آیا هواپیما از مرز عبور کرده‌است یا نه. در نهایت، در مثال‌های بیان شده در گرافیک کامپیوتری ورودی‌های متغیر درساختارهای دادهٔ پویا ذخیره می‌شوند، تا به حل سوالاتی که مربوط به نقاط داخل چند ضلعی است، سرعت بخشد.
این شاخه به مدل‌سازی هندسی و "طراحی هندسی با کمک کامپیوتر" نیز معروف است و اغلب تحت کلیدواژه‌ی منحنی‌ها و سطح‌ها دیده می‌شود. مسئله‌های اصلی در این نوع از هندسهٔ محاسباتی، مدل‌سازی و ارائهٔ منحنی و سطح می‌باشد. در اینجا مهم‌ترین ابزارها، منحنی‌های پارامتری و سطح‌های پارامتری هستند، مانند خم‌های بزیر، خم‌ها و سطح‌های نواری. از مهم‌ترین روش‌های غیر پارامتری، روش تنظیم رده است. از نخستین و مهم‌ترین کاربردهای هندسهٔ محاسباتی عددی، کاربرد در کشتی سازی، هواپیماسازی و صنایع ماشین آلات می‌باشد. اما امروزه، به دلیل حضور گستردهٔ رایانه‌ها و پیشرفته‌تر شدن آن‌ها حتا جعبه‌های عطر و شامپو نیز با تکنیک‌هایی که برای کشتی‌سازان دهه‌ی۱۹۶۰ ناشناخته بود طراحی می‌شوند.
در پیوند زیر:
مجلات در زمینهٔ الگوریتم‌های هندسی
لیستی از مجله‌های معتبر که در زمینه الگوریتم‌های هندسی، پژوهش‌هایی را چاپ کرده‌اند، آمده‌است. توجه کنید که با آمدن مجله‌هایی که به هندسه محاسباتی اختصاص یافته‌اند، سهم انتشارات هندسی در مجله‌های علوم کامپیوتر با هدف عمومی و مجله‌های گرافیک کامپیوتری کاهش یافت. لیست مجلات در زمینهٔ مدلسازی هندسی
1. M. de Berg, O. Cheong, M. van Kreveld, M. Overmars, Computational Geometry: Algorithms and Applications, 3rd edition, Springer, 2008.
2. .2011,Satyan L. Devadoss, Joseph O'Rourke, Discrete and Computational Geometry, Princeton University
3. J. O'Rourke, Computational Geometry in C, 2nd edition, Cambridge University Press, 1998
1. هندسه محاسباتی: الگوریتم‌ها و کاربردها (ویراست سوم)- تألیف: مارک دی برگ، اوتفرید چیونگ، مارک وان کریولد، مارک اُورمارس- ترجمه: مهدی ایمان پرست- انتشارات دانش نگار- تهران- چاپ اول- 1394.