Сравнительный анализ алгоритмов реализации булевых операций над полигонами

Для нашего исследования наиболее важными являются содержательный блок (представляющий базис для формирования информационной системы оценки), а также оценочный и результативный блоки, которые являются неотъемлемыми взаимосвязанными частями разрабатываемой инновационной интерактивной информационной системы оценки качества подготовки студентов.

В соответствии с представленной моделью рассмотрим этапы разработки и внедрения информационной системы оценки качества подготовки студентов вузов:

1. Обоснование необходимости разработки ИСОКП студентов, определение методологических основ создания, актуализации и развития инновационной интерактивной системы балльно-рейтингового контроля знаний студентов; создание и обоснование технологии обучения и контроля знаний студентов на балльно -рейтинговой основе;

2. Создание дидактической модели организации самостоятельной работы студентов, включающей постановку целей и задач, определение принципов, методов, форм, средств организации самостоятельной работы студентов, на основе системы балльно-рейтин-гового контроля знаний;

3. Формирование информационного комплекса электронных дидактических материалов для обеспечения поддержки учебного процесса на основе балльно-рейтинговой технологии обучения;

4. Создание банка электронных ранжированных тестовых заданий, соответствующих требованиям бал-

льно-рейтинговой системы обучения и контроля знаний в условиях модульного обучения; формирование вариантов банка ранжированных тестовых заданий с учетом специфики направлений профессиональной подготовки;

5. Проектирование, разработка, апробация и коррекция соответствующего программного продукта, его адаптация к требованиям информационного комплекса дидактического обеспечения и балльно -рейтинговой педагогической технологии

дальнейшая эксплуатация информационной тестирующей системы предусматривает создание сетевой версии, а также подготовку нормативных и методических материалов, обеспечивающих эффективное использование данной системы оценки качества подготовки студентов в учебном процессе.

Таким образом, разработка и внедрение информационной системы оценивания качества подготовки студентов на основе балльно-рейтинговой оценки в учебный процесс позволит обеспечить высокий уровень автоматизации рутинных операций формирования базы данных успеваемости и анализа статистики успеваемости студентов.

список литературы

1. О проведении эксперимента по введению рейтинговой системы оценки успеваемости студентов вузов. Министерство образования России. Приказ № 2654. 11.07.2002.

УДК 519.688

сравнительный анализ алгоритмов реализации булевых операций над полигонами

В. и. ГОРБАЧЕНКО, М. О. ЯРЕМКО Пензенский государственный педагогический университет им. В. Г. Белинского кафедра вычислительных систем и моделирования

Проводится обзор алгоритмов пересечения, объединения и разности многоугольников и сравнение их по ряду таких параметров, как вычислительная устойчивость, трудоемкость, скорость работы, простота программной реализации. В результате анализа делаются выводы о выборе оптимального алгоритма для применения на практике.

Во многих приложениях вычислительной гео- гонами и выбор оптимального для применения на

метрии основные объекты описываются с помощью плоских многоугольников. Операции построения объединения, пересечения или разности полигонов, несмотря на внешнюю простоту постановки, обладают большой сложностью в реализации.

Многие существующие алгоритмы реализации обладают существенными недостатками для использования на практике. Основная проблема связана с потерей вычислительной точности при вычислениях, что приводит к некорректной работе алгоритмов. Во многих алгоритмах устранение такого рода проблем с точностью приводит к существенному усложнению реализации алгоритма [2, 3].

Целью данной работы является анализ алгоритмов реализации булевых операций над поли-

практике.

Под выполнением некоторой булевой операции над многоугольниками Л и В понимается выполнение операции над описываемыми ими областями и получение множества многоугольников, описывающего полученную область.

Алгоритм Сазерленда-Ходжмана

Алгоритм Сазерленда-Ходжмана является одним из самых первых и простых алгоритмов отсечения многоугольников [8]. Этот алгоритм рассекает исходный общий многоугольник любым выпуклым многоугольником. Отсекающий многоугольник обычно называют отсекающим окном. Суть алгоритма заключается в том, что отсекаемый многоугольник последова-

ИЗВЕСТИЯ ПГПУ • Физико-математические и технические науки « № 8 (12) 2008 г.

тельно отсекается каждой границей отсекающего окна. Алгоритм обрабатывает пересечение каждого ребра исходного многоугольника с каждым ребром отсека-теля, сохраняя вершины, находящиеся внутри ребра, и точки пересечения ребер. Далее алгоритм повторяется, на вход подаются полученный на предыдущем шаге временный многоугольник и другое ребро отсекателя.

К плюсам алгоритма стоит отнести его простоту, малую требовательность к памяти (всего два списка цепочек), к минусам - довольно высокую трудоемкость, пригодность только для выпуклых отсекателей, невозможность обобщения для построения объединения и разности многоугольников. Кроме этого, к недостаткам алгоритма можно отнести и то, что в результате могут образоваться вырожденные многоугольники, когда некоторые рёбра могут налагаться друг на друга, образуя «перешейки» нулевой ширины.

Алгоритм О'Рукка

Один из наиболее простых и элегантных алгоритмов пересечения выпуклых многоугольников был предложен О'Рурком [6].

Основная идея алгоритма О'Рурка состоит в следующем. допустим, даны два выпуклых много-

угольника Р с L вершинами и Q с Мвершинами. Предположим, что (р1, р2,..., рь) и (дг, qL) - это списки вершин Р и Q, упорядоченные при обходе их против часовой стрелки. для каждого многоугольника объявляются текущие вершины р1 и qJ, кроме этого, текущие ребра оканчиваются вершинами р 1 и q¡. Идея заключается в том, чтобы не двигаться по той границе (Р или Q), текущее ребро которой еще может содержать необнаруженную точку пересечения. Существует четыре возможных варианта взаимного расположения вершин р1 и q¡ и ребер р._1 р 1 и qJ_1qJ (остальные ситуации сводятся к указанным четырем путем замены ролей Р и Q). В одном из этих вариантов (рис. 1а) мы продвинемся по Р, так как текущее ребро qJ_1qJ из Q может содержать необнаруженную точку пересечения. По тем же причинам в случае (рис.1б) мы продвинемся по границе Q. Если все пересечения на текущем ребре из Р уже обнаружены, в то время как текущее ребро из Q все еще может содержать необнаруженное пересечение, мы продвигаемся вдоль Р (рис. 1в); кроме этого, здесь мы должны вычислить точку пересечения ребер р1_1 р ! и qJ_1qJ В последнем случае (рис. 1г) выбор произволен и можно выбрать, например, ^

Рис. 1. Варианты взаимного расположения текущих вершин и ребер в алгоритме О'Рурка

В целом, можно сказать, что алгоритм О'Рурка эффективен и прост в реализации, кроме этого, он может быть легко модифицирован для построения объединения и разности многоугольников.

Алгоритм Леонова

Практически все алгоритмы вычисления пересечения, объединения или разности многоугольников реализуют набор операций, не являющийся замкнутым, так как в результате их выполнения могут получаться контуры с самокасаниями, что неприемлемо в качестве исходных данных для всех алгоритмов, и с отверстиями, которые, например, не допускаются алгоритмом Шутте [7]. Кроме этого, многие из широко известных алгоритмов не позволяют корректно обрабатывать вершины, в которых сходится более двух ребер многоугольников. Алгоритм Леонова [1] лишен этих недостатков. В качестве исходных данных здесь могут быть

произвольные полигональные многосвязные области с отверстиями и неограниченной кратностью вершин. Результат, полученный с помощью алгоритма, удовлетворяет его же предусловию.

Алгоритм состоит из четырех этапов:

• Этап 1. Обработка пересечений ребер.

• Этап 2. Маркировка контуров и ребер.

• Этап 3. Получение результирующих контуров.

• Этап 4. Создание результирующего региона. Вычислительная трудоемкость алгоритма различается на разных этапах. В среднем она равна:

0((п1 + п2)\о^(пг + п2) + п0 + г\о^(пг + п2)),

где п1 + п2 - общее число вершин исходных регионов, 2 - общее число контуров исходных регионов, п0 -максимальное число новых вершин.

На сегодняшний день можно сделать вывод, что алгоритм леонова является одним из лучших по важ-

нейшим из параметров (скорости, затратам на память, численной устойчивости, обработке вырожденных ситуаций).

Алгоритм Холверда

Входными данными алгоритма Холверда [4] являются два набора многоугольников. Один из наборов являетсяпервымоперандомбулевойоперации,другой-вторым операндом. основная идея состоит в том, чтобы разбить плоскость на секции, называемые закрытыми областями. Закрытые области - это области, которые могут быть описаны простыми многоугольниками (без самопересечений и самоперекрытий). Результат булевой операции может быть получен, если мы сможем выяснить принадлежность каждой из закрытых областей одному или обоим наборам многоугольников, для этого необходимо вычислить пересечения всех сегментов многоугольников.

Из недостатков алгоритма следует отметить то, что на входе нельзя использовать самопересекающиеся многоугольники. однако оригинальность, высокая скорость работы, корректное округление координат точек пересечения и довольно высокая вычислительная устойчивость позволяют выделить его из общего ряда.

Алгоритм Маргалита-Кнотта

А. Маргалит и Г. Кнотт, авторы одноименного алгоритма, обратили внимание на то, что многие алгоритмы пересечения, объединения и разности многоугольников не очень практичны, не способны обрабатывать сложные случаи, сложны в реализации и предложили свой алгоритм, ориентируясь, в первую очередь, на эффективность и простоту реализации [5]. Алгоритм делится на две основные стадии. Первая стадия - это классификация линейных сегментов входных многоугольников, а вторая - конструирование результирующих многоугольников. В первую очередь, алгоритм классифицирует оригинальные вершины каждого многоугольника на нахождение внутри, снаружи или на границе другого многоугольника. Затем ищутся все точки пересечения между многоугольниками. Для каждого многоугольника оригинальные вершины вместе с точками пересечения помещаются в такую структуру данных, что две соседние точки опре-

деляют оригинальное ребро или часть оригинального ребра результирующего многоугольника (или, иначе говоря, реберный фрагмент). Далее алгоритм классифицирует реберные фрагменты одного многоугольника на нахождение внутри, снаружи или на границе другого многоугольника.

Этот алгоритм относительно прост и практичен. При реализации можно использовать хэш-таблицы и другие простые структуры данных. Элементарные манипуляции с этими структурами данных производительны, следовательно, минимизируется время и требуемый объем памяти. В этом алгоритме не нужно обрабатывать большое число специальных случаев, и поэтому он может легко работать с любой парой вер-шинно-полных многоугольников.

Трудоемкость алгоритма составляет в худшем случае O(n2), однако на практике она может быть значительно улучшена в среднем до O(n log n).

Сравнительный анализ алгоритмов

К недостаткам большинства из рассмотренных алгоритмов стоит отнести недостаточно высокую вычислительную устойчивость, нерешенные численные проблемы, связанные с округлением. Многие алгоритмы реализуют набор операций, не являющийся замкнутым, так как в результате их выполнения могут получаться контуры с самокасаниями, что неприемлемо в качестве исходных данных.

Одним из наиболее простых алгоритмов можно признать алгоритм О'Рурка, однако он обрабатывает только выпуклые многоугольники. Можно выделить также алгоритм Леонова - наряду с устойчивой и быстрой работой, способностью обрабатывать общие многоугольники, в нем решены проблемы появления «посторонних пересечений», возникающих при округлении точек пересечения. Результаты сравнительного анализа алгоритмов представлены в таблице.

лучшие общие оценки имеют алгоритмы О'Рурка и Леонова, их можно порекомендовать для реализации в задачах, критичных к потерям точности в результате округления. однако из-за высокой скорости работы и простоты реализации для большинства алгоритмов рекомендуется использовать алгоритм Маргалита-кнотта.

Таблица

Анализ алгоритмов реализации булевых операций над полигонами

Алгоритм Поддерживаемые операции Типы полигонов Трудоемкость Устойчивость Общ. оценка

Сазерленда-Ходжмана и один выпуклый O(nn2 log n2) 3 3

О'Рурка U , п,/ оба выпуклые OO) 4 5

Леонова и, п,/ общие O((ni+ П2) ' log(n + П2)) 4 5

Холверда и, п,/ общие O(nilog n2) 3 4

Маргалита-Кнотта и, п,/ общие O(n) 4 5

ИЗВЕСТИЯ ПГПУ • Физико-математические и технические науки • № 8 (12) 2008 г.

список литературы

1. Леонов М. В., Никитин А. Г. Эффективный алгоритм, реализующий замкнутый набор булевых операций над множествами многоугольников на плоскости / Препринт Института систем информатики СО РАН 1997. № 46. 20 с.

2. Препарата Ф., Шеймос М. Вычислительная геометрия: Введение / Пер. с англ. М.: Мир, 1989. 478 с.

3. Foley D. J., van Dam A., Feiner S. K., Hughes J. F. Computer graphics. Principles and practice. N.Y.: Addisson-Westey, 1991.

4. Holwerda K. Complete Boolean Description

5. Margalit A., Knott G. D. An algorithm for computing the union, intersection or difference of two polygons //

Computers & Graphics. 1989. Vol. 13. №. 2. P. 167183.

6. O'Rourke J., Chien C.B., Olson T., Naddor D. A new linear algorithm for intersecting convex polygons // Computer Graphics and Image Processing. 1982. Vol.19. P. 384-391.

7. Schutte K. An edge labeling approach to concave polygon clipping // ACM Transactions on Graphics. 1995. P. 1-10.

8. Sutherland I. E., Hodgman G. W. Reentrant polygon clipping // CACM. 1983. Vol. 26. P. 868-877.

9. Weiler K., Atherton P. Hidden surface removing using polygon area sorting // Computer Graphics. 1977. Vol.11. P. 214-222.

10. Weiler K. Polygon comparison using graph representation // Computer Graphics. 1980. Vol. 14. P. 10-18.

УДК 681.322

нейросетевая реализация метода конечных элементов

В. и. ГОРБАЧЕНКО, Ю. Н. ЗЕМСКОВА Пензенский государственный педагогический университет им. В. Г. Белинского кафедра вычислительных систем и моделирования

Проанализировано применение нейронных сетей для решения дифференциальных уравнений в частных производных методом конечных элементов. Предложено использованиерадиально-базисных нейронных сетей для реализации метода конечных элементов.

Использование нейронных сетей для решения дифференциальных уравнений в частных производных основано на аппроксимационных и обобщающих свойствах нейронных сетей [7]. Можно выделить два основных подхода к использованию нейронных сетей в решении дифференциальных уравнений в частных производных [3].

Первый подход основан на совпадении нейросетевого вычислительного базиса с логическим базисом численных методов решения дифференциальных уравнений в частных производных, что обеспечивает эффективное распараллеливание вычислительного процесса. Следуя работе [1], назовем логическим базисом задачи основной набор операций, реализуемых в процессе выполнения алгоритма. Для разностных методов решения дифференциальных уравнений в частных производных таким базисом являются операции типа скалярного произведения: ^ а1х1 . Логическим базисом вычислительной системы является основная группа операций, реализуемых операционным устройством. В случае "классических" компьютеров, в том числе и суперкомпьютеров, логический базис вычислительной системы никак не связан с логическим базисом решаемых задач и требует применения сложного программного обеспечения. В случае нейрокомпьютеров логический базис вычислительной системы совпадает с логическим базисом численных методов решения дифференциальных уравнений в частных производных, что может обеспечить неалгоритмический характер процесса решения и максимальную производительность. Для решения дифференциальных уравнений в частных производных разностными методами наиболее перспективным представляется использование клеточных нейронных сетей [2]. Логический базис клеточных нейронных сетей совпадает с базисами различных методов решения систем линейных алгебраических уравнений. Большим достоинством клеточных сетей является учет разреженного характера матрицы решаемой системы алгебраических уравнений. Как правило, шаблон клеточной сети совпадает с конечно-разностным шаблоном, что упрощает сеть.

Второй подход основан на аппроксимации нейронной сетью решения краевой задачи как функции пространственных координат. Такой подход получил распространение при использовании радиально-базисных нейронных сетей [7] для решения дифференциальных уравнений в частных производных [4-5,10-11]. Подход основан на использовании в методе коллокаций радиально-базисных функций [8-9] и является бессеточным. Ра-