Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5ballov-39958.doc
Скачиваний:
9
Добавлен:
16.09.2019
Размер:
1.39 Mб
Скачать

1. Задача линейного программирования. Описание ситуации.

Требуется определить план выпуска 4 видов мороженного: рожок, брикет, в стаканчике и на палочке завода по производству полуфабрикатов глубокой заморозки. На изготовление расходуются трудовые ресурсы, сырье и финансы. Границы выпуска каждого вида продукции, а так же наличие и нормы расхода ресурсов, маржинальная прибыль на единицу продукции приведены в таблице 1:

Ресурсы

Продукт 1

Продукт 2

Продукт 3

Продукт 4

 Наличие

Прибыль

80

70

120

150

 

Труд

2

3

2

3

 35

Сырье

8

5

6

5

 85

Финансы

6

8

10

9

 130

нижн. гр.

1

1

2

3

 

верхн. гр.

6

 -

4

5

 

Таблица 1. Исходные данные.

Необходимо создать производственный план, обеспечивающий наибольшую прибыль, выполнить параметрический анализ при одновременном изменении нескольких а) коэффициентов, б) правых частей ограничений.

О бозначив количество выпускаемой продукции через x1, x2, x3, x4, а целевую функцию (валовую маржинальную прибыль) – через F, построим математическую модель задачи: F = 80x1 + 70x2 + 120x3 + 150x4 max,

Три неравенства – ограничения:

2 x1 + 3 x2 + 2 x3 + 3 x4 ≤ 35,

8 x1 + 5 x2 + 6 x3 + 5 x4 ≤ 85,

6 x1 + 8 x2 + 10 x3 + 9 x4 ≤ 130;

три неравенства – граничные условия:

1 ≤ x1 ≤ 6,

1 ≤ x2,

2 ≤ x3 ≤ 4,

2 ≤ x4 ≤ 5.

1.2 Решение с помощью пакета WinQsb. Запуск программы

Чтобы запустить программу для решения задачи линейного и целочисленного программирования, необходимо в главном меню (Пуск) выбрать программную группу WinQSB и выберите в ней программу Liner and Integer Programming.

Задание параметров задачи

Для ввода новой задачи нужно выбрать команду File, затем New Problem. В открывшемся окне задается:

В поле Problem Title – название задачи,

в поле Number of Variables – количество переменных,

в поле Number of Constrains – количество ограничений,

в поле Maximization/Minimization – вариант оптимизации,

Data Entry Format – форма задачи матричная (Spreadsheet Matrix Form) или стандартная (Normal Model Form)

т ип переменных – непрерывные неотрицательные (Nonnegative integer), целые неотрицательные (Nonnegative integer), двоичные (Binary (0,1)) или свободные, то есть произвольного знака (Unsigned/unrestricted).

Рис. 1. Ввод параметров решения задачи линейного программирования.

Ввод числовых данных

Е сли выбрана матричная форма задачи, откроется окно с таблицей для ввода данных: коэффициентов целевой функции и ограничений, правых частей ограничений, а так же выбора их знаков.

Рис. 2.Задание коэффициентов целевой функции и ограничений

В строке Variable — установленные по умолчанию имена переменных. В строке Maximize (или Minimize) вводятся коэффициенты целевой функции. Обозначения С1, С2, СЗ и т. д. — это установленные по умолчанию названия ограничений. В соответствующих строках вводятся коэффициенты этих ограничений, за которыми следуют их знаки (в столбце Direction) и правые части (в столбце R. H. S.). Ниже — две строки для задания граничных условий: LowerBound и UpperBound. В первой из них вводятся нижние границы переменных, а во второй — верхние. По умолчанию все нижние границы равны 0, а все верхние равны бесконечности, которая обозначается большой латинской буквой М. В строке Variable Туре указан заданный вами тип переменных: Continuous (Непрерывная), Integer (Целая), Binary (Двоичная) или Unrestricted (Свободная).

Примечание: при вводе чисел, имеющих дробную часть, используйте в качестве разделителя целой и дробной части точку, а не запятую.

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

Перемещаться по таблице — с помощью клавиши Tab или клавиш со стрелками.

Выбрать ячейку таблицы — щелчком этой ячейки.

  • Редактировать содержимое ячейки таблицы — после щелчка голубого поля над таблицей. При этом выбранная ячейка выделится цветом и можно редактировать ее содержимое.

  • Изменить знак ограничения — двойным щелчком знака. Если двойной щелчок выполнить несколько раз, знаки будут меняться циклически (<=, >=, =).

  • Изменить тип переменной — двойным щелчком слова, обозначающего тип этой переменной в строке Variable Type. При нескольких двойных щелчках названия типов будут меняться циклически (Continuous, Integer, Binary, Unrestricted).

С помощью указанных далее команд меню Edit можно изменить следующие параметры задачи:

  • Название задачи — Problem Name.

  • Имена переменных — Variable Names.

  • Названия ограничений — Constraint Names.

  • Вариант оптимизации целевой функции — Objective Function Criterion (максимизация меняется на минимизацию или наоборот).

  • Количество ограничений — Insert a Constraint или Delete a Constraint (ограничения добавляются или удаляются).

  • Количество переменных — Insert a Variable или Delete a Variable (переменные добавляются или удаляются).

Воспользуемся этими командами, чтобы в нашей задаче ввести русские названия переменных и ограничений (рис. 3).

Р ис. 3 Изменение названия переменных и ограничений.

С помощью перечисленных далее команд меню Format могут быть изменены:

  • Форма задачи — Switch to Normal Model Form или Switch to Matrix Form (перейти в стандартную или матричную форму). Выбрав любую форму задачи, вы можете построить задачу, двойственную к ней, с помощью команды Switch to Dual Form.

  • Формат чисел— Number.

  • Шрифт и цвет — Font.

  • Выравнивание—Alignment.

  • Высота строк — Row Height.

  • Ширина столбцов — Column Width.

Чтобы сохранить данные воспользуйтесь командой File, Save Problem As.