Кіріспе

журналы
Компьютерлік ғылымның саласы
Компьютерлік геометрия — геометриялық терминдермен тұжырымдалған алгоритмдерді зерттейтін компьютерлік ғылымның саласы. Компьютерлік геометриялық алгоритмдерді зерттеу барысында туындайтын кейбір таза геометриялық мәселелер де компьютерлік геометрияның бір бөлігі саналады. Қазіргі заманғы компьютерлік геометрия жақында ғана дамығанмен, ол ежелгі заманға дейін созылатын тарихы бар ең көне есептеу салаларының бірі. Компьютерлік күрделілік компьютерлік геометрияның орталық мәселесі болып табылады, әсіресе алгоритмдер ондаған немесе жүздеген миллион нүктеден тұратын өте үлкен деректер жиынтығында қолданылғанда маңызды. Мұндай жиынтықтар үшін O(n²) мен O(n log n) арасындағы айырмашылық есептеу уақытының күндер мен секундтар арасындағы айырмашылықты білдіруі мүмкін. Компьютерлік геометрияның дамуына түрткіс болған негізгі фактор компьютерлік графика және компьютерлік көмекпен жобалау және өндіру (CAD/CAM) саласындағы жетістіктер болды, бірақ компьютерлік геометриядағы көптеген мәселелер классикалық сипатқа ие және математикалық визуализациядан туындауы мүмкін. Компьютерлік геометрияның маңызды қолданыс аймақтарына робототехника (қозғалыс жоспарлау және көріну мәселелері), географиялық ақпараттық жүйелер (ГИС) (геометриялық орналасу және іздеу, маршрутты жоспарлау), интегралды схемаларды жобалау (IC геометриясын жобалау және тексеру), компьютерлік көмекші инженерия (CAE) (тор генерациясы) және компьютерлік көру (3D реконструкция) жатады. Компьютерлік геометрияның негізгі салалары:

Комбинаторлық компьютерлік геометрия, сондай-ақ алгоритмдік геометрия деп аталады, ол геометриялық объектілерді дискретті бірліктер ретінде қарастырады. Preparata және Shamos-тың осы тақырыпқа арналған негізгі кітабы 1975 жылы «компьютерлік геометрия» терминін осы мағынада алғаш рет қолданғанын көрсетеді. Сандық компьютерлік геометрия, сондай-ақ машина геометриясы, компьютерлік көмекпен геометриялық жобалау (CAGD) немесе геометриялық модельдеу деп аталады, ол негізінен CAD/CAM жүйелерінде компьютерлік есептеулерге қолайлы формада нақты әлем объектілерін бейнелеумен айналысады. Бұл сала сипаттамалық геометрияның одан әрі дамуы ретінде қарастырылады және көбінесе компьютерлік графиканың немесе CAD саласы ретінде қарастырылады. Осы мағынадағы «компьютерлік геометрия» термині 1971 жылдан бері қолданыста. Көптеген компьютерлік геометрия алгоритмдері (және әзірленуде) электрондық компьютерлер үшін әзірленгенімен, кейбір алгоритмдер дәстүрлі емес компьютерлер үшін (мысалы, оптикалық компьютерлер) әзірленді.

Комбинаторлық есептеу геометриясы

Комбинаторлық есептеу геометриясындағы зерттеулердің негізгі мақсаты – негізгі геометриялық нысандар: нүктелер, сызық сегменттері, көпбұрыштар, полиэдрлер және т.б. арқылы қойылған мәселелерді шешу үшін тиімді алгоритмдер мен дерек құрылымдарын жасау. Осы мәселелердің кейбіреуі соншалықты қарапайым көрінеді, тіпті компьютерлер пайда болғанға дейін оларды мәселе деп санамаған. Мысалы, ең жақын жұп мәселесін қарастырайық: жазықтықта n нүкте берілген болса, бір-біріне ең жақын қашықтықта орналасқан екі нүктені табыңыз. Барлық нүктелер жұптары арасындағы қашықтықты есептеуге болады, мұндай жұптардың саны n(n-1)/2-ге тең, содан кейін ең кіші қашықтықтың жұбын таңдауға болады. Бұл қарапайым алгоритмге O(n²) уақыт кетеді, яғни оның орындалу уақыты нүктелер санының квадратына пропорционалды. Есептеу геометриясының классикалық нәтижесі – O(n log n) уақыт алатын алгоритмнің құрылуы. Сондай-ақ, O(n) күтілетін уақытты алатын кездейсоқ алгоритмдер және O(n log log n) уақытты алатын детерминистік алгоритмдер де ашылды.

Проблемалық кластар

Есептеу геометриясының негізгі мәселелері әртүрлі критерийлер бойынша әртүрлі тәсілдермен жіктелуі мүмкін. Келесі жалпы санаттарды бөліп қарастыруға болады.

Вариациялар

Кейбір проблемалар, контекстке байланысты, осы екі санаттың біріне жатуы мүмкін. Мысалы, келесі мәселені қарастырайық. Көпбұрыштағы нүкте: нүкте берілген көпбұрыштың ішінде ме, сыртында ма, анықтаңыз. Көптеген қолданбаларда бұл мәселе бір реттік, яғни бірінші классқа жататын мәселе ретінде қарастырылады. Мысалы, компьютерлік графиканың көптеген қолданбаларында экрандағы қай аймаққа көрсеткіш басылғанын табу – кең таралған мәселе. Дегенмен, кейбір қолданбаларда сөз болатын көпбұрыш өзгермейтін, ал нүкте сұранысты білдіреді. Мысалы, кіріс көпбұрыш бір елдің шекарасын көрсете алады, ал нүкте – ұшақтың орны, және мәселе ұшақтың шекараны бұзғанын анықтау болып табылады. Соңында, компьютерлік графиканың бұрын айтылған мысалында, CAD қолданбаларында өзгермелі кіріс деректері көбінесе динамикалық дерек құрылымдарында сақталады, оларды көпбұрыштағы нүктелерді анықтау сұраныстарын жылдамдату үшін пайдалануға болады. Сұраныс мәселелерінің кейбір контексттерінде сұраныстар тізбегі туралы негізді күтулер бар, оларды тиімді дерек құрылымдары немесе есептеу күрделігін бағалау үшін қолдануға болады. Мысалы, кейбір жағдайларда жалғыз сұранысқа емес, N сұраныстың барлық тізбегі үшін ең нашар жағдайды білу маңызды. Сондай-ақ "амортизациялық талдау" қараңыз.

Сандық есептеу геометриясы

Бұл сала геометриялық модельдеу және компьютерлік көмекпен геометриялық жобалау (ККГЖ) деп те аталады. Негізгі мәселелер – қисықтар мен беттерді модельдеу және бейнелеу. Мұндағы ең маңызды құралдар – Безиер қисықтары, сплайн қисықтары және беттері сияқты параметрлік қисықтар мен параметрлік беттер. Маңызды параметрлік емес тәсіл – деңгей жиыны әдісі. Есептеу геометриясының қолданылу салаларына кеме жасау, авиация және автомобиль өнеркәсібі жатады.