Курсовая работа: Системы принятия решений
Число
Число
Число
Базисная переменная m
Число
Число
Число
Число
Число
Число
Об оптимальности решения судят по значению коэффициентов в уравнении целевой функции. Решение оптимально только когда все значению коэффициентов в уравнении целевой функции не положительные.
Чтобы найти оптимальное решение необходимо переходить к новому базису так, чтобы коэффициентов в уравнении целевой функции стали отрицательными или нулевыми.
Переход к новому базису осуществляют по правилу прямоугольника по средствам разрешающего столбца и разрешающей строки. Разрешающий столбец берут тот, в котором коэффициентов в уравнении целевой функции больше нуля. Разрешающею строкой берут ту, в которой отношение свободного члена к числу в соответствующей строке и разрешающем столбце минимально и не отрицательно.
В итоге после нескольких переходов к новому базису мы приходим к оптимальному решению: все свободные переменные равны нулю, все базисные переменные и целевая функция равны свободным членам.
2.4 Описание программы
2.4.1 Абстрактный класс симплекс таблицы
Программа имеет на главной форме таблицу. Она предназначена только для ввода начальных условий задачи, а все вычисления проводятся в специальном созданном классе TSimplex, который интегрирует в себе как данные о состоянии таблицы, так и методы для обработки этих данных. Таким образом, все вычисления выполняются в пределах данного класса и чтобы описать принцип и алгоритм работы программы надо описать этот класс.
2.4.2 Свойства класс TSimplex
Класс TSimplex имеет следующие свойства:
– n, m: integer – соответственно число свободных и число базисных переменных;
– w, b:array of extended – массивы, содержащие соответственно свободные члены и коэффициенты целевой функции;
– wb: extended – свободный член целевой функции;
– FTit, BTit: array of string – соответственно названия свободных и базисных переменых;
– a: array of array of extended – матрица коэффициентов линейных функций базисных переменых;
– result: TNextResult – результат последней операции;
– ir, jr: integer – соответственно разрешающая строка и разрешающий столбец;
– history: TStack – история о предыдущих операциях, позволяет вернуться назад.
Для полной ячности надо описять тип TNextResult и класс TStack.
Тип TNextResult описывает результат последней операции.