logo search
трололо

Разработка основных алгоритмов решения задачи

При разработке основного алгоритма решения применялись такие учебные пособия, как: “Математическое программирование. Теория алгоритмов” автор М. Муну, “Элементы динамического программирования” Е. С. Вентцель, “Введение в методы оптимизации” М. Аоки.

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

На первом этапе использования программы пользователь вводит первичные данные, то есть количество инвестируемых средств, после чего по нажатию кнопки “Применить параметры” генерируется таблица, куда пользователь должен ввести основные данные (показатель прироста прибыли в зависимости от вложенных средств).

После заполнения таблицы пользователю нужно нажать кнопку “Первичная обработка” после чего запустится проверка корректности введённых данных, которая протекает в три этапа.

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

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

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

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

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

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

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

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

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

После чего пользователь может рассчитать новый оптимальный план.

Описанный алгоритм можно более подробно рассмотреть в приложении А.