пятница, 3 декабря 2010 г.

Автоматизация Решения Экстремальных Задач Линейного Программирования

Способы линейного программирования оказались очень эффективными для решения задач из всевозможных областей человеческой деятельности. Только лишь важное значение покупает использование таких способов и средств при решении задач подходящего проектирования, в которых нужно будет учитывать несчетное количество сдерживающих факторов, собственно связано с большим размером вычислений. В связи с этим учащимся технических институтов, обучающихся по направлению «Информатика и вычислительная техника», очень важно как знание возможностей использования математических способов и ЭВМ, так и сознание тех проблем, которые встают при их использовании.

Созданный программный ансамбль позволяет решать последующие задачи:

• порождение изначального базисного разрешенного решения;

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

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

• розыск оптимального проекта и экстремума частично целочисленной задачи линейного программирования;   Исходные коды на Delphi, скажем саму программу, вы можете даром скачать на странице http://plagiata.net.ru/?p=68.   В ряде практических задач на контролируемые переменные помимо ограничений накладываются дополнительные обстоятельства, такие как притязании целочисленности (например, число выпускаемой продукции при более эффективном использовании урезанных ресурсов в финансовых задачах оптимизации) или же задание интервала вероятных значений (оптимизация распределения массивов по уровням памяти ЭВМ). Причем достаточно часто это затронет не всех переменных, а только каких-либо из них.

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

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

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

Рассмотрим специфика функционирования программного ансамбля. Для организации диалога с юзером применяется типовой графический интерфейс Windows, построенный на основе библиотеки зрительных компонентов VCL (Visual Component Library), поставляемой сообща с пакетом Delphi. При исследованию программы применялась MDI-технология (Multiple Document Interface – многодокументный пользовательский интерфейс), что разрешает пользователю работать разом с несколькими задачами линейного программирования. В программе реализована активная конфигурация диалога, позволяющая подбирать режимы: расчет, просмотр и редактирование информации, получение справки и т.д. Основное меню содержит последующие пункты: файл, правка, вид, вычисления, окошко, справка. Все пункты главного рацион вызывают подменю. В первых числах работы программы какие-либо пункты запрещены и становятся разрешенными лишь по мере выбора других пунктов рационов (например, рационах «Правка», «Вычисления» и т. д.).

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

Комментариев нет:

Отправить комментарий