Двойственные задачи в линейном программировании. Симметричные и несимметричные двойственные задачи. Связь исходной и двойственной задач. Анализ моделируемой ситуации (моделируемого объекта). Реализация двойственности на Visual Basic for Application.
Аннотация к работе
Содержание двойственности состоит в сопоставлении исходной задаче C другой задачи С*, формируемой по определенным правилам и называемой двойственной. Эти задачи связаны математически содержательными соотношениями, позволяющими, например, получить оценки критериальной эффективности всех параметров, формирующих задачу C, свести решение оптимизационной задачи к решению некоторой системы неравенств, сформировать в изящной форме условия оптимальности, оценить скорость сходимости итерационных процессов для задачи C. Если задача в математическом и линейном программировании - результат моделирования конкретной экономической (производственной) ситуации, то двойственность и та информация, которую двойственность порождает, позволяют провести глубокий анализ моделируемой ситуации (моделируемого объекта), выявить узкие места, тенденции динамики объекта, выразив эти факторы в количественной форме. Найти вектор Y =(y1, y2, …, yn), который удовлетворяет ограничениям: yj ? 0 (j =1,2, ..., n), и доставляет минимальное значение функции: f = b1y1 b2y2 … bmym>min Рассмотренные исходная и двойственная задачи могут быть экономически интерпретированы следующим образом. После окончания ввода происходит построение целевой функции двойственной задачи и ее вывод на лист Excel (рисунок А.9): p = 0 k = 1 For i = 1 To m p = p 2 k = k 2 b = InputBox(Ввод свободных членов & & i & уравнения) Cells(m 7, p).HorizontalAlignment = xlCenter Cells(m 7, k).HorizontalAlignment = xlCenter построение функции двойственной задачи Cells(m 7, p) = b Cells(m 7, k) = y & i Next i Далее выполняется построение системы ограничений двойственной задачи: k = 0 s = 1 For j = 1 To n k = 0 For i = 1 To m k = k 1 Cells(m 9 s, k) = Cells(i 2, j 3) Cells(m 9 s, k).HorizontalAlignment = xlCenter Next i s = s 1 Next j прорисовка надписей For i = 1 To m Cells(m 9, i) = y & i Next i После окончания ввода и построения двойственной задачи необходимо нажать кнопку Podschet для начала решения исходной задачи симплекс методом, которое происходит в прцедуре Private Sub CommandButton2_Click().