Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть1.DOC
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
359.42 Кб
Скачать

4.2 Опис алгоритму програми

ПОДВІЙНА ЗАДАЧА ЛІНІЙНОГО

ПРОГРАМУВАННЯ

Для будь-якої моделі існує поняття подвійної задачі - це перетворення задачі в одних змінних та запис – в інших.

Якщо задача має розмірність m*n ,її можна записати та розв’язати як n*m.

Математична модель для даного методу має вигляд

=

Основні визначення для подвійної задачі

Теорема 1

Значення цільової функції і подвійної задачі співпадають, знаки - ні.

Якщо в прямій задачі Z  max , то в оберненій задачі

(подвійній) Z  min.

Якщо в прямій задачі функція необмежена зверху, то в подвійній – вона необмежена знизу.

Теорема 2

Пряма та подвійна задачі взаємопов’язані між собою.

П одвійна задача (ПЗ): Пряма задача (ПРЗ):

Правила переведення до ПЗ :

Кожному обмеженню виду “=” ПРЗ відповідає змінна ПЗ .

Кожній змінній ПРЗ відповідає обмеження виду ( чи ) ПЗ .

Коефіцієнт цільової функції ПЗ дорівнює правій частині ПЗ .

Якщо в ПРЗ умова невід’ємності обов’язкова, то в ПЗ ця умова відсутня.

Цільва функція змінює знак з max на min чи навпаки.

Обмеження ПЗ мають знак “”,якщо в ПРЗ ЦФmax.

Існує взаємозв’язок між змінними ПРЗ та ПР.

(a11x1+a12x2+…+a1nxn-a10)y1=0 (a11y1+a21y2+…+am1yn-c1)x1=0

. . . . . .

(am1x1+am2x2+…+amnxn-am0)ym=0 ; (a1ny1+a2ny2+…+amnyncn)xn=0;

Отримавши рішення (результат) ,на підставі ПЗ,завжди можна ,за допомогою вище описаної системи,знайти .

Для розв’зання ПРЗ ( - ? ) необхідно :

Перейти від прямої моделі до подвійної : ;

Розв’язати ПЗ ( - ? ) ;

На підставі системи (7) знайти .

Приклад.

-24x1+2x3+6x4max

- 3x1+x2+x3+3x4=4 y1

2x1+2x2+x3+x4=6 y2

x1,…,x40

4 y1+6y2 min A : y1+2y2=0

-3y1+2y2-24 y1+y2 = 2

y1+2y20

y1+y22 Y = ( 4 ; -2 )

3 y1+y26 Z = 4

На підставі теореми 2 : Вирішимо дану систему рівнянь методом

(-3y1+2y2+24)x1=0 підбору. Y=(4 ; -2)

(y1+2y2)x2=0

(y1+y2-2)x3=0

(3y1+y2-6)x4=0

Підставивши в систему знайдені значення Y , отримаємо :

X = ( 0 , 2 , 2 , 0)

Z = 4 .

Доцільність використовування ПЗ :

Використовується з метою зниження розмірності задачі .

Зменшення кількості змінних .

Використовується в інших задачах (Подвійний симплекс метод) .

ПОДВІЙНИЙ СИМПЛЕКС МЕТОД

Даний метод оснований на постійному поліпшенні неприпустимості рішень.

Якщо в ПРЗ симплекс методу основана на постійному поліпшенні значень ЦФ :

k+1 k

0 0 , то в ПЗ Xбазисне : Xn х B ; Xn  0.

Мета : Xnmax.

ВІДЗНАКА ПОДВІЙНОГО симплекс методу (ПСМ) від ПРЯМОГО (ПРСМ)

Вибір направляючого елементу (спочатку визначається рядок :

min( Xi0  Xi0  0 ) , а потім стовпець : ;

Канонічна форма ПСМ повинна мати рівність та одиничний базис .

Для приведення до канонічного виду необхідно розрахувати псевдоплан . Псевдоплан – це нова модель , що містить в собі одиничний базис (сопряжённый базис) та неприпустиме опорне рішення .

Примітка : існують типові моделі , для яких псевдоплан можна записати відразу (наприклад, Задача змінно-добового планування ) .

Якщо в ПРСМ повинна бути хоча б одна Ітерація , то в ПСМ рішення може бути отримане відразу після перерахунку псевдоплану .

Всі останні Подвійні симплекс-перетворення аналогічні ПРСМ .

Приклад .

4x1+3x2+10x3+5x4min 3 * 10 розмірність симплекс задачі.

3x1+2x2-x3+5x48 3 * 7 розмірність подвійної СЗ .

x2-3x3+6x44

2x1+x3-x40

x1, … , x40

необхідно привести до max та до рівностей (канонічний вигляд):

-4x1-3x2-10x3-5x4max

3 x1+2x2-x3+5x4-x5=8 y1

-x2-3x3+6x4-x6=4 y2

2x1+x3-x4-x7=0 y3

формуємо подвійну модель , щоб вибрати “сопряжённый” базис.

8 y1+4y2min A0

3y1+2y3-4 A1

2y1-y2-3 A2

-y1-3y2+y3-10 A3

5y1+6y2-y3-5 A4

-y10 A5

-y20 A6

-y30 A7

3) На підставі рядків ПЗ будуємо подвійні вектори А0 , А1 , А2 , А3 , А4 , А5 , А6 , А7 .

8 3 2 -1

А0 = 4 А1 = 0 А2 = -1 А3 = -3

0 2 0 1

5 -1 0 0

А4 = 6 А5 = 0 А6 = -1 А7 = 0

-1 0 0 -1

4) Вибір “сопряжённого” базису розміром m. Для цього необхідно:

свавільно вибрати m рівнянь (в даній задачі вибираємо рівняння (5,6,7) , тут =(0,0,0) ) ;

розв’язуємо цю систему з m рівнянь ;

підставляємо рішення в кожне з залишених (n-m) обмежень(в даній задачі це рівняння(2,3,4,5)) та перевіряємо , чи задовольняє “сопряжённый” базис.

Якщо так, то відбувається розрахунок симплекс таблиці, тобто псевдоплан.

Якщо ж ні, то даний варіант не задовольняє, тому слід перейти до наступного

“сопряжённого ”базису.

Отже маємо складену симплекс таблицю :

-4

-3

-10

-5

0

0

0

Bx

A0

A1

A2

A3

A4

A5

A6

A7

X5

-8

-3

-2

1

-5

1

0

0

X6

4

0

1

3

-6

0

1

0

X7

0

-2

0

-1

1

0

0

1

0

4

3

10

5

0

0

0

A0 = A5X50 + A6X60 + A7X70

8 = -1x50 + 0x60 + 0x70

4 = 0x50 - 1x60 + 0x70

0 = 0x50 + 0x60 – 1x70

Xb = ( -8 ; -4 ; 0 ).

Наступні розрахунки утворюються аналогічним чином.

Класифікація методів неперервного лінійного програмування

Симплекс метод використовується коли: ЦФmax, а обмеження  0.

Симплекс метод (М-задача) : обмеження  0, = 0 .

Подвійний симплекс метод без розрахунку псевдоплану,

цільова функціяmin , а всі обмеження  0 (задача змінно-добового планування).

Подвійний симплекс метод з розрахунком псевдоплану.

СПЕЦІАЛЬНІ ЗАДАЧІ ЛІНІЙНОГО ПРОГРАМУВАННЯ

Задача призначення.

- задача про розподілення обладнання

Потрібно розподілити 5 екскаваторів між 4 кар’єрами з метою максимізації виробітки.

K1

K2

K3

K4

1

5

-

7

-

2

7

8

8

-

3

4

4

12

10

4

8

7

10

11

5

10

-

-

14

5 5

5 -100 7 -100 0

j = 1,M 7 8 8 -100 0

4 4 12 10 0

I = 1,N 8 7 10 11 0

10 -100 -100 14 0

Xij  0 ;

Для приведення задачі до закритого вигляду , необхідно ввести (додати) фіктивне обладнання.

Задача про розклад.

Для кожної пари вирішується задача призначення потоку групи в аудиторії.

Критерієм є вмісткість аудиторії, розвантаження сходів(мінімізація хвилин переходу) .

Cij-хвилини переходу; і - номер групи; j-аудиторія.

j=1,M ; і=1,N ;

3)Розподілення користувачем в класі ЕОМ.

Задана кількість користувачів та кількість комп’ютерів. Кожен користувач вирішує свою задачу за окремою ЕОМ. Необхідно розподілити користувачів

по критерію мінімума.

4)Транспортна задача.

С клад Споживач

A B

- вміщення матеріалів на складі;

- заявка.

Сij - витрати

і=1,M ; j=1,N ;

  1. Задача планування будівельного майданчика.

ЗАДАЧА ПРИЗНАЧЕННЯ .

ВЕНГЕРСЬКИЙ МЕТОД

і=1,I ; j=1,I ;

АЛГОРИТМ ВЕНГЕРСЬКОГО МЕТОДУ

Приведення до канонічного вигляду. Задача повинна бути закритою.

Перед визначенням істотних нулів ( єдиний нуль в рядках та стовпцях),

1. Перерахунок по стовпцям (віднімання від максимального елемента )

2. Та по рядкам (віднімання мінімального елемента).

3. Формування по стовпцям істотних нулів (позначення стовпців).

4. Рішення знайдено (кількість позначок”+”повинна дорівнювати розмірності задачі (і)).Якщо рішення не знайдено :

Перевірка на зацикленість (кількість ітерацій “” чи “”).

5. Формування ланцюжка 0`0*…0` , де

0* - істотний нуль ;

0` - виділений нуль в рядку з 0*.

Побудова ланцюжка здійснюється від 0` в невиділеному стовпчику до 0* в рядку , потім прямуємо до 0` в стовпці,...,закінчуючи 0`.

При побудові ланцюжка необхідно відмічати рядки “+” та знімати позначення стовпців.

6. Якщо ланцюжок побудовано, то замінюємо : 0`0*.Переходимо до п.4.

7. Генерація нових нулів. Визначення h0 серед невиділених елементів.

Визначення мінімального з них.

8. Віднімання h від невиділених рядків та додавання h до виділених стовпців.

Перехід до п.3.

значення Z повинне дорівнювати значенню .

З метою програмування необхідно оголосити наступні файли :

C : array 1..M of real ;

A : array 1..N,0..M of real ;

D : array 0..M of real ;

K : longint ;

B : array 1..N of byte ;

ЗАДАЧА

Необхідно розподілити партію комп’ютерів (6) між підрозділами ВУЗу (8).

Відомо , що кожен комп’ютер має свою конфігурацію . Призначення кожного комп’ютера в підрозділ вимагає визначених затрат. Необхідно розподілити партію комп’ютерів.

max

1 і=1,6

1 j=1,8

  0 , 1 ;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]