Контрольная работа: Программная реализация симплекс-метода

В программе предусмотрена обработка следующих исключительных ситуаций:

·загружен некорректный входной файл (Приложение 1, рис.4);

·целевая функция не ограничена на множестве допустимых решений (Приложение 1, рис.5).

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

В качестве среды разработки была выбрана NetBeansIDE, являющаяся средой разработки приложений на языке Java.

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

·SimplexApp – главный класс приложения, осуществляющий запуск приложения, создание и отображение главного окна приложения.

·SimplexView – класс главного окна приложения, инициализирует все компоненты интерфейса, осуществляет их настройку, а также обработку событий, вызванных пользователем.

·SimplexAboutBox– класс, инициализирующий окно «О программе».

·SimplexSolve – класс, реализующий выполнение симплекс-метода.

·ReadFile– класс для обработки входного файла.

·TableView – реализует вывод симплекс-таблицы.

·Help – реализует вывод подсказок о ходе выполнения решения и о работе программы.

Класс SimplexSolve содержит следующие методы:

staticvoidinitSolution(intvarCount) - создаёт вектор решения необходимой размерности.

staticfloat[][] Solve(float[][] matrix) - осуществляет решение задачи в автоматическом режиме. Получая на вход начальную симплекс-таблицу, возвращает преобразованную симплекс-таблицу с полученным решением.

staticbooleanuserChooseCol(float[][] matrix, JTabletableName)– выполняет выбор ведущего столбца и сравнивает полученный результат с выбором пользователя. Возвращает истину, если выбор был произведен верно, иначе ложь. В случае если результаты не совпали, выводит сообщение об ошибке.

staticbooleanuserChooseRow(float[][] matrix, JTabletableName) – проводит проверку ограниченности целевой функции на множестве допустимых решений, выполняет выбор ведущей строки и сравнивает полученный результат с выбором пользователя. Возвращает истину, если выбор был осуществлён верно, иначе ложь. В случае если результаты не совпали, сообщает пользователю об ошибке.

staticvoiduserBuildNewTable(float[][] matrix, JTabletableName)– перестраивает симплексную таблицу и обновляет вектор решения.

staticbooleancheckSolved(floatmatrix[][])– проверяет текущее решение на оптимальность. Возвращает истину, если решение оптимально, иначе ложь.

Класс ReadFile содержит следующие методы:

static float[][] read(String filename) throws IOException– осуществляетчтениевходногофайла. При отсутствии ошибок, возвращает начальную симплексную таблицу, иначе выдает сообщение об ошибке входных данных.

staticString[] doVarCol(), staticString[] doVarRow() – создают вспомогательные строку и столбец обозначения переменных для отображения симплекс-таблицы.

static int getVarCount() – возвращает количество свободных переменных.

static int getBvarCount() – возвращает количество базисных переменных.

static int getCondCount() – возвращает количество ограничений.

Класс TableViewсодержит следующие методы:

static void clearTable(JTable tableName) – очищаеттаблицу.

static void setNames (JTable tableName) – заполняетшапкутаблицы.

К-во Просмотров: 455
Бесплатно скачать Контрольная работа: Программная реализация симплекс-метода