Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Реалізація алгоритму симплекс-методу з довільними вільними членами

Реферат Реалізація алгоритму симплекс-методу з довільними вільними членами





f_x.str (); lt; lt; І система обмежень: n lt; lt; endl;

std :: stringstream math_sys; :: string math_sign; (i=0; i lt; num_l; i ++) {(j=0; j lt; num_v; j ++) {(! j) _sys lt; lt; system [i] [j] lt; lt; x lt; lt; j + 1 lt; lt; raquo ;; (system [i] [j] == 1) (! j) _sys lt; lt; x lt; lt; j + 1 lt; lt; raquo ;; _ sys lt; lt; + x lt; lt; j + 1 lt; lt; raquo ;; (system [i] [j] == - 1) (! j) _sys lt; lt; -x lt; lt; j + 1 lt; lt; raquo ;; _ sys lt; lt; - x lt; lt; j + 1 lt; lt; raquo ;; {(system [i] [j] lt; 0) _sys lt; lt; - lt; lt; fabs (system [i] [j]) lt; lt; x lt; lt; j + 1 lt; lt; raquo ;; _ sys lt; lt; + lt; lt; system [i] [j] lt; lt; x lt; lt; i + 1 lt; lt; raquo ;; (! sign [i]) _ sign= lt;= raquo ;; (sign [i] == 1) _sign== raquo ;; (sign [i] == 2) _sign= gt;= raquo ;;

}

}

_ sys lt; lt; math_sign lt; lt; lt; lt; fm [i]; _ sys lt; lt; endl;

} :: string min_or_max; (way) _or_max= максимум raquo ;; _ or_max= мінімум raquo ;; lt; lt; math_sys.str () lt; lt; endl;

table lt; lt; Вирішимо дану задачу на lt; lt; min_or_max lt; lt; " Методом

симплексних таблиць. nПостроім першого опорний план: n" lt; lt; endl;

} (i=0; i lt; num_l; i ++) {

lt; lt; x lt; lt; bv [i] [0] + 1 lt; lt; t lt; lt; bv [i] [1] lt; lt; t raquo ;; (j=0; j lt; num_v * 2; j ++) lt; lt; sv [i] [j] lt; lt; t raquo ;; (! plane_is_valid ()) lt; lt; th [i]; lt; lt; n lt; lt; endl;

} lt; lt; f (x) t lt; lt; func lt; lt; t raquo ;; (i=0; i lt; num_v * 2; i ++) lt; lt; istr [i] lt; lt; t raquo ;; lt; lt; n raquo ;; (plane_is_valid ()) {(plane_is_valid () amp; amp; function_is_undefined ())

table lt; lt; " nДанний план є оптимальним і не вимагає

поліпшення. Рішення знайдено. Laquo; lt; lt; endl; :: ofstream outfile ( table.txt" ); lt; lt; table.str ();

} {:: string ln_or_gn; (way) _or_gn= недодатні raquo ;; _ or_gn= позитивні raquo ;; :: stringstream num_of_plane; (! it_num) _of_plane lt; lt; Перший опор?? ий план raquo ;; _ of_plane lt; lt; it_num + 1 lt; lt; -й план також raquo ;;

table lt; lt; n lt; lt; num_of_plane.str () lt; lt; " Не є оптимальним,

оскільки nв індексному рядку присутні lt; lt; ln_or_gn lt; lt;

елементи. nErо необхідно поліпшити. n" lt; lt; endl;

}


}


Спочатку виконується ініціалізація перший опорного плану. Цим займається функція-член init () класу simplex.

Значення функції-цілі в першому опорному плані завжди дорівнює нулю, тому в init () виконується ініціалізація змінної-члена func класу simplex саме нулем.

Потім виділяється пам'ять під матрицю коефіцієнтів sv. І проводиться її заповнення. Перша частина даної матриці заповнюється коефіцієнтами системи обмежень вихідної задачі, друга частина є одиничною матрицею, у разі рішення задачі на максимум, якщо ж вирішується завдання на мінімум, одиниці в даній матриці змінюють свій знак.

Після заповнення sv виробляється виділення пам'яті під одновимірний масив istr і ініцалізація цього масиву (індексного рядка перший опорного плану). Перша її частина заповнюється коефіцієнтами цільової функції зі зворотним знаком, друга її половина инициализируется нулями.

Потім обчислюється індекс ведучого шпальти перший опорного плану задачі. Даний індекс відповідає індексу максимального по модулю негативного елемента індексного рядка.

Далі виділяється пам'ять під масив th і проводиться його ініціалізація. Елементи цього масиву обчислюються шляхом розподілу значень базисних змінних поточного плану на соответвует значення коефіцієнтів ведучого шпальти.

Після обчислення колонки th виробляється обчислення індексу провідного рядка, який відповідає індексу мінімального значення стовпці th.

Дозволяє елемент плану знаходиться на перетині ведучого шпальти і ведучою рядка поточного плану. Після його обчислення здійснюється виклик функції print_result_to_file (), яка заносить таблицю для початкового опорного плану в об'єкт table класу std :: stringstream, який також є змінна-членом класу simplex.

Після шикування першого опорного плану необхідно вичіліть оптимальний план вихідної задачі. ...


Назад | сторінка 5 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Знаходження оптимального плану транспортної задачі розподільчим методом
  • Реферат на тему: National features of cuisine and table manners
  • Реферат на тему: Розрахунок основних розділів поточного плану підприємства
  • Реферат на тему: Розробка поточного плану підприємства на прикладі ХФ ВАТ &Ростелеком&
  • Реферат на тему: Значення бізнес-плану в процесі корпоративного планування