27/02/1400 - 12:55
هندسه محاسباتی چیست و چه کاربردی در رشته کامپیوتر دارد؟
همان‌گونه که می‌دانید ریاضیات پایه و اساس رشته کامپیوتر را شکل می‌دهند. به همین دلیل است که در مقاطع کارشناسی رشته‌های علوم کامپیوتر مباحث مختلفی از ریاضیات آموزش داده می‌شوند. به‌طور مثال، افراد در مقطع کارشناسی رشته‌های علوم کامپیوتری با درس ریاضیات گسسته، محاسبات عددی و غیره آشنا می‌شوند. دروسی که در گرایش‌های ارشد نظیر هوش مصنوعی کمک فراوانی به آن‌ها می‌کند. به بیان دقیق‌تر، کمتر فارغ‌التحصیل رشته هوش مصنوعی را پیدا می‌کنید که اطلاعی در مورد ریاضیات گسسته، برهان و قوانین این رشته نداشته باشد. با این‌حال هندسه محاسباتی نیز نقش مهمی در دنیای کامپیوترها دارد.

هندسه محاسباتی چیست؟

هندسه محاسباتی (Computational geometry) یکی از شاخه‌های علوم کامپیوتر است. هندسه محاسباتی علم حل مسائل هندسی به روش الگوریتمی و با استفاده از ساختمان داده‌ها (Data Structures) می‌باشد. بعضی از مسائل کاملاً هندسی، برآمده از مطالعه الگوریتم‌های هندسه محاسباتی است و مطالعه این‌گونه مسائل نیز به عنوان بخشی از هندسه محاسباتی به حساب می‌آید.

انگیزه اصلی برای توصیف هندسه محاسباتی به عنوان یک رشته علمی، پیشرفت در گرافیک کامپیوتری، طراحی و تولیدات با کمک رایانه بود، اما طبیعتاً بسیاری از مسائل در هندسه محاسباتی، قدیمی هستند. کاربردهای مهم دیگر هندسه محاسباتی در دانش روباتیک (برنامه‌ریزی حرکتی)، سیستم‌های اطلاعات جغرافیایی (جستجو و مکان‌یابی هندسی، نقشه‌کشی راه‌ها)، طراحی مدار مجتمع (طراحی و بازبینی هندسی مدارهای مجتمع) و مهندسی با کمک رایانه (برنامه‌ریزی ماشین‌های کنترل عددی) است. شاخه‌های اصلی هندسه محاسباتی به شرح زیر هستند:

هندسه محاسباتی ترکیبی (هندسه الگوریتمی): این هندسه محاسباتی اشیای هندسی را به عنوان موجودات گسسته در نظر می‌گیرد. براساس کتابی که توسط پرپاراتا  و شاموس نوشته شده ‌است، لفظ هندسه محاسباتی با این مفهوم، نخستین بار در سال ۱۹۷۵ بیان شده‌است.

هندسه محاسباتی عددی (هندسه ماشینی، طراحی هندسی با کمک رایانه یا مدل‌سازی هندسی): اساس کار این هندسه محاسباتی به این صورت است که اشیای دنیای واقعی را به صورت مناسبی برای محاسبات رایانه‌ای در سیستم‌های کد/کم در می‌آورد. این شاخه ممکن است به عنوان هندسه توصیفی پیشرفته در نظر گرفته شود و اغلب یکی از شاخه‌های گرافیک کامپیوتری یا کَد به حساب می‌آید. هندسه محاسباتی با این معنا، از سال ۱۹۷۱ مورد استفاده قرار گرفت.

هندسه محاسباتی ترکیبیاتی

هدف اصلی از پژوهش در زمینه هندسه محاسباتی ترکیبیاتی این است که، برای حل مسائلی که در زمینه اشیای پایه هندسی (نقاط، خط‌ها، چند ضلعی‌ها، چند وجهی‌ها  و...) مطرح می‌شوند، الگوریتم‌ها و ساختارهای داده مناسبی تولید شود. برخی از این مسائل به قدری آسان به نظر می‌رسند که تا زمان پیدایش رایانه‌ها مشکل به حساب نمی‌آمدند. برای مثال به مسئله نزدیک‌ترین زوج توجه کنید:

n نقطه در صفحه داریم. دو نقطه‌ای که کمترین فاصله را از یکدیگر دارند، پیدا کنید.

می‌توان فاصله بین جفت نقطه‌ها، که تعدادشان معلوم هست را پیدا کرد و بعد کوچک‌ترین عدد را انتخاب کرد. این الگوریتم از مرتبه n۲ است. منظور این است که زمان اجرایش به مربع تعداد نقاط بستگی دارد. یک نتیجه کلاسیک در هندسه محاسباتی ایجاد الگوریتمی بود که از مرتبه n log n زمان بگیرد. الگوریتم‌های تصادفی که از مرتبه n زمان می‌برند، علاوه بر الگوریتم‌های تعیین‌کننده‌ای که از مرتبه n log n زمان می‌برند نیز کشف شده‌اند.

برای GIS جدید، گرافیک کامپیوتری و سیستم‌های طراحی مدارهای مجتمع که روزانه ده‌ها و صدها میلیون نقطه را به کار می‌گیرند، تفاوت بین مرتبه n۲و مرتبه n log n می‌تواند تفاوت بین روزها و ثانیه‌ها محاسبه، باشد. به همین دلیل است که در هندسه محاسباتی تأکید زیادی روی پیچیدگی محاسباتی شده‌است.

انواع سؤالات

مسائل اساسی در هندسه محاسباتی را می‌توان با در نظر گرفتن معیارهای گوناگون، به روش‌های گوناگونی طبقه‌بندی کرد. یکی از این رده‌بندی‌ها در زیر آمده‌است.

مسائل ایستا

در این گروه از مسائل، نوعی ورودی داده می‌شود و خروجی متناسب باید به دست بیاید یا پیدا شود. برخی مسائل اساسی این نوع عبارتند از:

رویه محدب: تعدادی نقطه داریم، کوچک‌ترین چند ضلعی یا چند وجهی محدبی را پیدا کنید که در برگیرنده همه نقطه‌ها است.

تقاطع پاره خط‌ها: تقاطع‌های بین تعدادی پاره خط را پیدا کنید.

مثلث‌بندی دلونی

نمودارهای ورونوی: با دریافت مجموعه‌ای از نقاط، فضا را بر اساس نزدیک‌ترین نقطه تقسیم‌بندی کنید.

برنامه‌ریزی خطی: برنامه‌ریزی خطی، یا همان بهینه‌سازی خطی، روشی در ریاضیات است که به پیدا کردن مقدار کمینه یا بیشینه از یک تابع خطی روی یک چندضلعی محدب می‌پردازد.

نزدیک‌ترین زوج نقاط: با دریافت مجموعه‌ای از نقاط، دونقطه‌ای را بیابید که کم‌ترین فاصله را دارند.

کوتاه‌ترین مسیر اقلیدسی: دو نقطه را در فضای اقلیدسی (با یک مانع چند وجهی) با کوتاه‌ترین مسیر به هم وصل کنید.

مثلث‌بندی چندضلعی: با دریافت یک چند ضلعی، سطح داخل آن را به تعدادی مثلث تقسیم کنید.

پیچیدگی محاسباتی برای این دسته از مسائل براساس زمان و فضای (حافظهٔ کامپیوتری) لازم برای حل مسئله تقریب زده می‌شود.

مسائل جستجوی هندسی

در مسائل جستجوی هندسی ورودی از دو قسمت تشکیل شده‌است: قسمت فضای جستجو و قسمت جستجو، که در هر مسئله تغییر می‌کند. قسمت فضای جستجو باید به گونه‌ای پیش پردازش شود که بتواند به نحو مطلوبی به سوالات متعدد جواب دهد.

برخی مسائل اساسی جستجوی هندسی عبارتند از:

جستجوی محدوده: مجموعه‌ای از نقاط را پیش پردازش می‌کند برای اینکه در داخل محدوده مطلوب، تعداد نقاط را بشمارد.

محل یابی نقطه: با دریافت فضایی که تقسیم بندی شده، یک ساختار داده تولید می‌کند که به ما می‌گوید نقطه مورد نظر، در کدام قسمت قرار دارد.

نزدیک‌ترین همسایه: مجموعه‌ای از نقاط را به این منظور پیش پردازش می‌کند که تعیین کند کدام نقطه، به نقطه مورد نظر نزدیک‌تر است.

ردیابی پرتو: با دریافت مجموعه‌ای از اجسام در فضا، یک ساختار داده تولید می‌کند تا تعیین کند که پرتوی جستجوی مورد نظر، نخستین بار با کدام جسم برخورد می‌کند.

اگر فضای جستجو ثابت باشد، پیچیدگی محاسباتی برای این دسته از مسائل بر اساس مطالب زیر تخمین زده می‌شود:

زمان و حافظه لازم برای ساختن ساختار داده‌ای که باید در داخل آن جستجو شود.

زمان (و برخی مواقع یک حافظه اضافی) برای پاسخ به جستجوها.

برای حالتی که فضای جستجو تغییر می‌کند، به مسائل پویا رجوع کنید.

مسائل پویا

یکی دیگر از گروه‌های اصلی مسائل، مسائل پویا هستند که در آن‌ها هدف، یافتن الگوریتمی مناسب برای یافتن راه حلی است که بعد از هر تغییر داده ورودی (اضافه یا حذف کردن عناصر هندسی) تکرار شود. الگوریتم‌های این نوع مسائل اغلب شامل ساختارهای داده پویا است. هر کدام از مسائل هندسه محاسباتی را می‌توان به مسئله پویا تبدیل کرد. برای مثال، مسئله جستجوی محدوده را می‌توان با اضافه کردن امکان اضافه یا حذف کردن نقطه‌ها به مسئله جستجوی پویای محدوده تبدیل کرد. مسئله پوسته محدب پویا همان کار مسئله پوسته محدب را برای مجموعه نقاطی که به‌طور پویا تغییر می‌کنند انجام می‌دهد.

پیچیدگی محاسباتی این دسته از مسائل با توجه به عوامل زیر تخمین زده می‌شود:

زمان و حافظه لازم برای ساختن ساختار داده‌ای که باید در داخل آن جستجو شود.

زمان و حافظه لازم برای تغییر دادن ساختار داده مورد جستجو، بعد از یک تغییر در فضای جستجو.

زمان (و برخی مواقع یک حافظه اضافی) برای پاسخ به جستجوها.

هندسه محاسباتی عددی

این شاخه به مدل‌سازی هندسی و طراحی هندسی با کمک کامپیوتر نیز معروف است و اغلب تحت کلیدواژه‌ی منحنی‌ها و سطح‌ها دیده می‌شود. مسئله‌های اصلی در این نوع از هندسه محاسباتی، مدل‌سازی و ارائه منحنی و سطح می‌باشد. در اینجا مهم‌ترین ابزارها، منحنی‌های پارامتری و سطح‌های پارامتری هستند، مانند خم‌های بزیر، خم‌ها و سطح‌های نواری. از مهم‌ترین روش‌های غیر پارامتری، روش تنظیم رده است. از نخستین و مهم‌ترین کاربردهای هندسه محاسباتی عددی، کاربرد در کشتی سازی، هواپیماسازی و صنایع ماشین آلات می‌باشد. اما امروزه، به دلیل حضور گسترده رایانه‌ها و پیشرفته‌تر شدن آن‌ها حتا جعبه‌های عطر و شامپو نیز با تکنیک‌هایی که برای کشتی‌سازان دهه‌ی۱۹۶۰ ناشناخته بود طراحی می‌شوند.

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟