Подход к систематическому выбору и обоснованию алгоритмов | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 мая, печатный экземпляр отправим 8 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №6 (17) июнь 2010 г.

Статья просмотрена: 63 раза

Библиографическое описание:

Мусман, А. Э. Подход к систематическому выбору и обоснованию алгоритмов / А. Э. Мусман. — Текст : непосредственный // Молодой ученый. — 2010. — № 6 (17). — С. 59-61. — URL: https://moluch.ru/archive/17/1703/ (дата обращения: 25.04.2024).

Введение

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

Представление класса алгоритмов

Предлагается представлять класс алгоритмов в виде дерева вариантов алгоритма (ДВА) – И-ИЛИ дерева [2,4] с дополнительными вершинами, представляющими собой некоторые параметры, используемые в алгоритме. Решение на ДВА соответствует некоторому алгоритму из этого класса и представляет собой такое поддерево, в котором в каждом ИЛИ-узле выбран ровно один дочерний И-узел, а в каждом параметрическом узле – определено значение параметра. Для множества алгоритмов, заданных таким образом, требуется задать также функцию оценки приспособленности алгоритма. Для поиска оптимального варианта алгоритма необходимо найти такой вариант алгоритма, который обеспечивает глобальный экстремум целевой функции.

Эволюционное программирование на основе ДВА

Для поиска наиболее подходящего варианта алгоритма на ДВА предлагается использовать метод эволюционного программирования (ЭП), который основан на аналогии с естественными процессами селекции и генетическими преобразованиями, протекающими в природе.

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

 

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

Особями являются варианты алгоритма – решения на ДВА. Для применения метода ЭП требуется определить операции репродукции, мутации и скрещивания на множестве вариантов алгоритма. Предлагается следующее определение этих операций:

Мутация. Производится случайный выбор некоторой ИЛИ-вершины либо параметрической вершины. Для ИЛИ-вершины происходит случайный выбор другой И-вершины из дочерних вершин, а для параметрической вершины – мутация внутреннего представления параметра.

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

Репродукция. Выбираемый способ репродукции зависит от класса алгоритмов, к которому применяется данный метод.

Автоматизированная система синтеза вариантов алгоритма

Для реализации предложенного подхода разработана тестовая версия программной системы, диаграмма классов которой в нотации UML представлена на рисунке 1.

Рисунок 1 – Диаграмма классов «Автоматизированной системы синтеза вариантов алгоритма»

Модуль UI реализует графический интерфейс пользователя и разработан на основе библиотеки wxPython. Данное решение обусловлено переносимостью и гибкостью выбранной библиотеки.

Модуль Domain включает в себя основные классы, реализующие описанную модель представления класса алгоритмов в виде ДВА.

Модуль Infrastructure содержит классы, используемые для ввода-вывода данных:

- сохранение и загрузка проекта,

- считывание ДВА из исходного кода программы, описывающей дерево вариантов,

- запись исходных кодов вариантов.

Модуль Evolution включает в себя реализацию алгоритма ЭП и основан на использовании библиотеки pyevolve. Для реализации метода ЭП в этом модуле реализованы операции мутации и скрещивания, определенные ранее.

 

Рисунок 2 – Экранная форма главного окна «Автоматизированной системы синтеза вариантов алгоритма»

При работе с системой пользователю необходимо создать проект, в котором задать следующие входные данные:

- файлы, содержащие исходные коды программной реализации алгоритмов;

- скрипт, производящий сборку программы по заданных файлам исходных кодов;

- настройки проекта (такие, как численность особей, путь к корневому каталогу проекта и т.п.)

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

Расчет оценок пригодности программ особей может осуществляться разными способами. Наиболее простой способ – программа особи выводит на поток стандартного вывода некоторое число, которое считается оценкой её пригодности. Возможна реализация других способов оценки, для чего необходимо, в соответствии с рисунком 1, реализовать интерфейс Evaluator.

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

Заключение.

В результате проделанной работы получены следующие основные результаты:

- разработана модель представления класса алгоритмов, позволяющая проводить эволюцию вариантов алгоритма;

- с целью применения метода эволюционного программирования для синтеза алгоритмов на основе данной модели определены операции мутации и скрещивания вариантов алгоритма;

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

В дальнейшем предполагается проведение экспериментов на различных классах алгоритмов.

Литература

1.    Божко А. Н., Толпаров А.Ч. Структурный синтез на элементах с ограниченной сочетаемостью. - Электронный журнал «Наука и образование», 2004

2.    Дворянкин А.М., Половинкин А.И., Соболев А.Н. Методы синтеза технических решений.– М.: Наука. – 1977

3.    Емельянов В. В., Курейчик В. В., Курейчик В. М. Теория и практика эволюционного моделирования.- М.: ФИЗМАТЛИТ, 2003

4.    Половинкин А.И., Бобков Н.К., Буш Г.Я., Грудачев В.Г., Дворянкин А.М. и др. Автоматизация поискового конструирования (искусственный интеллект в машинном проектировании).– М.: Радио и связь. – 1981

 

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


Похожие статьи

Метод структурного и параметрического синтеза и анализа...

Термин структурный синтез определяет процесс создания составной алгоритмической

Для примера реализации метода структурного и параметрического синтеза и анализа была выбрана система DVIGwT [1, 3].

Определение варианта структурной схемы модели...

Матричный способ представления алгоритма | Статья в журнале...

вершины, определяющие логику (порядок) выполнения алгоритма

Разработка алгоритма работы системы автоматического выделения поврежденных секций.

Определение наилучших вероятностей мутации генетического алгоритма в сетях с двухфазной маршрутизацией.

Анализ эффективности алгоритмов сортировки и вcтроенных...

Ключевые слова: алгоритмы, сортировка, анализ алгоритмов, программирование, java, сортировка вставками, сортировка выбором, сортировка Шелла.

В теории алгоритмов существует множество вариантов реализации сортировки.

Анализ применения гомоморфных схем шифрования...

Общая схема работы алгоритма обучения по прецедентам над конфиденциальными данными состоит из

Но даже в этом случае работа таких алгоритмов будет относительно медленной и

Одним из предлагаемых решений проблемы увеличения размера шифротекста является...

Разработка эффективной реализации алгоритмов выполнения...

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

Анализ эффективности применения методов классификации

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

Random forest (случайный лес) — алгоритм машинного обучения...

Подход к моделированию процессов функционирования систем...

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

Разработка алгоритма сборки и анализа больших геномов

Предложенный алгоритм был реализован на языке программирования Python и был

Был применен алгоритм сжатия, который позволил удалить около 20000 вершин из 111277.

Разработка алгоритма работы системы автоматического выделения поврежденных секций.

Алгоритм интервального оценивания параметров нелинейных...

В рамках данного подхода разработан алгоритм и создана программа «GLSM» (Generalized Least Squares Method), рассмотрение которых является целью данной работы. I. Постановка и решение задачи.

Похожие статьи

Метод структурного и параметрического синтеза и анализа...

Термин структурный синтез определяет процесс создания составной алгоритмической

Для примера реализации метода структурного и параметрического синтеза и анализа была выбрана система DVIGwT [1, 3].

Определение варианта структурной схемы модели...

Матричный способ представления алгоритма | Статья в журнале...

вершины, определяющие логику (порядок) выполнения алгоритма

Разработка алгоритма работы системы автоматического выделения поврежденных секций.

Определение наилучших вероятностей мутации генетического алгоритма в сетях с двухфазной маршрутизацией.

Анализ эффективности алгоритмов сортировки и вcтроенных...

Ключевые слова: алгоритмы, сортировка, анализ алгоритмов, программирование, java, сортировка вставками, сортировка выбором, сортировка Шелла.

В теории алгоритмов существует множество вариантов реализации сортировки.

Анализ применения гомоморфных схем шифрования...

Общая схема работы алгоритма обучения по прецедентам над конфиденциальными данными состоит из

Но даже в этом случае работа таких алгоритмов будет относительно медленной и

Одним из предлагаемых решений проблемы увеличения размера шифротекста является...

Разработка эффективной реализации алгоритмов выполнения...

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

Анализ эффективности применения методов классификации

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

Random forest (случайный лес) — алгоритм машинного обучения...

Подход к моделированию процессов функционирования систем...

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

Разработка алгоритма сборки и анализа больших геномов

Предложенный алгоритм был реализован на языке программирования Python и был

Был применен алгоритм сжатия, который позволил удалить около 20000 вершин из 111277.

Разработка алгоритма работы системы автоматического выделения поврежденных секций.

Алгоритм интервального оценивания параметров нелинейных...

В рамках данного подхода разработан алгоритм и создана программа «GLSM» (Generalized Least Squares Method), рассмотрение которых является целью данной работы. I. Постановка и решение задачи.

Задать вопрос