Математичне програмування

Размещено на /

Завдання 1


Зібраний врожай зерна трьох сільськогосподарських артілей повинен бути перевезений на три елеватори, а саме: елеватор А1 потужністю 100 тис. тонн, елеватор А2 – 80 тис. тонн; А3 – 90 тис. тонн. Визначити план перевезення зерна на елеватори, який мінімізує транспортні витрати.


С/г артіль Затрати на перевезення 1 т зерна на елеватори, грн.

Запас зерна,

тис. т


В1 В2 В3
А1 12,5 24,0 18,4 80
А2 28,3 14,5 25,7 90
А3 15,7 20,6 16,3 100
Потужність елеваторів 100 80 90

Розв’язок


Побудова математичної моделі. Нехай xij — кількість продукції, що перевозиться з і-го пункту виробництва до j-го споживача Математичне програмування.

Перевіримо необхідність і достатність умов розв'язання задачі:

Математичне програмування

Математичне програмування

Оскільки Математичне програмування, то умова балансу дотримується. Запаси рівні потребам. Отже, модель транспортної задачі є закритою.

Занесемо вихідні дані у таблицю.



В1 В2 В3 Запаси
А1 12,5 24,0 18,4 80
А2 28,3 14,5 25,7 90
А3 15,7 20,6 16,3 100
Потреби 100 80 90

Розпочинаємо будувати математичну модель даної задачі:

Математичне програмування

Економічний зміст записаних обмежень полягає в тому, що весь вантаж потрібно перевезти по пунктах повністю.

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

Математичне програмування

Загальні витрати, пов’язані з транспортуванням продукції, визначаються як сума добутків обсягів перевезеної продукції на вартості транспортування од. продукції до відповідного замовника і за умовою задачі мають бути мінімальними. Тому формально це можна записати так:

minZ=12,5x11+24x12+18,4x13+28,3x21+14,5x22+25,7x23+15,7x31+20,6x32+16,3x33.

Загалом математична модель сформульованої задачі має вигляд:

minZ=12,5x11+24x12+18,4x13+28,3x21+14,5x22+25,7x23+15,7x31+20,6x32+16,3x33.

за умов:

Математичне програмування

Математичне програмування

Запишемо умови задачі у вигляді транспортної таблиці та складемо її перший опорний план у цій таблиці методом «північно-західного кута».

Ai Bj ui

b1 = 100 b2 = 80 b3 = 90
а1 = 80

12,5

80

24,0 18,4 u1 = 0
а2 = 90

28,3

[-]20

14,5

[+]70

25,7 u2 = 15,8
а3 = 100

15,7

[+]

20,6

[-]20

16,3

80

u3 = 21,9
vj v1 =12,5 v2 =-1,3 v3 =-5,6

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

Підрахуємо число зайнятих клітин таблиці, їх 5, а має бути m+n-1=5. Отже, опорний план є не виродженим.

Перевіримо оптимальність опорного плану. Знайдемо потенціали ui, vi. по зайнятих клітинам таблиці, в яких ui + vi = cij, вважаючи, що u1 = 0:

u1=0, u2=15,8, u3=21,9, v1=12,5, v2=-1,3, v3=-5,6. Ці значення потенціалів першого опорного плану записуємо у транспортну таблицю.

Потім згідно з алгоритмом методу потенціалів перевіряємо виконання другої умови оптимальності ui + vj ≤ cij(для порожніх клітинок таблиці).

Опорний план не є оптимальним, тому що існують оцінки вільних клітин для яких ui + vi>cij

(3;1): 21.9 + 12.5 > 15.7; ∆31 = 21.9 + 12.5 - 15.7 = 18.7

Тому від нього необхідно перейти до другого плану, змінивши співвідношення заповнених і порожніх клітинок таблиці. Вибираємо максимальну оцінку вільної клітини (3;1): 15.7. Для цього в перспективну клітку (3;1) поставимо знак «+», а в інших вершинах багатокутника чергуються знаки «-», «+», «-». Цикл наведено в таблиці.

Тепер необхідно перемістити продукцію в межах побудованого циклу. З вантажів хij що стоять в мінусових клітинах, вибираємо найменше, тобто у = min (3, 2) = 20. Додаємо 20 до обсягів вантажів, що стоять в плюсових клітинах і віднімаємо 20 з хij, що стоять в мінусових клітинах. В результаті отримаємо новий опорний план.

Усі інші заповнені клітинки першої таблиці, які не входили до циклу, переписуємо у другу таблицю без змін. Кількість заповнених клітинок у новій таблиці також має відповідати умові невиродженості плану, тобто дорівнювати (n + m – 1).

Отже, другий опорний план транспортної задачі матиме такий вигляд:


Ai Bj ui

b1 = 100 b2 = 80 b3 = 90
а1 = 80

12,5

80

24,0 18,4 u1 = 0
а2 = 90

28,3

[-] 0

14,5

90

25,7

[+]

u2 = 15,8
а3 = 100

15,7

[+] 20

20,6


16,3

[-]80

u3 = 3,2
vj v1 =12,5 v2 =-1,3 v3 =13,1

Перевіримо оптимальність опорного плану. Знайдемо потенціали ui, vi. по зайнятих клітинам таблиці, в яких ui + vi = cij, вважаючи, що u1 = 0.

Опорний план не є оптимальним, тому що існують оцінки вільних клітин для яких ui + vi>cij

(2;3): 15.8 + 13.1 > 25.7; ∆23 = 15.8 + 13.1 - 25.7 = 3.2

Вибираємо максимальну оцінку вільної клітини (2;3): 25.7

Для цього в перспективну клітку (2;3) поставимо знак «+», а в інших вершинах багатокутника чергуються знаки «-», «+», «-». Цикл наведено в таблиці.

З вантажів хij що стоять в мінусових клітинах, вибираємо найменше, тобто у = min (2, 1) = 0. Додаємо 0 до обсягів вантажів, що стоять в плюсових клітинах і віднімаємо 0 з Хij, що стоять в мінусових клітинах. В результаті отримаємо новий опорний план.

Ai Bj ui

b1 = 100 b2 = 80 b3 = 90
а1 = 80

12,5

80

24,0 18,4 u1 = 0
а2 = 90

28,3


14,5

90

25,7

0

u2 = 12,6
а3 = 100

15,7

20

20,6


16,3

80

u3 = 3,2
vj v1 =12,5 v2 =1,9 v3 =13,1

Перевіримо оптимальність опорного плану, тобто повторюємо описані раніше дії.

Знайдемо потенціали ui, vi. по зайнятих клітинам таблиці, в яких ui + vi = cij, вважаючи, що u1 = 0.

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

Розрахуємо значення цільової функції відповідно до другого опорного плану задачі:

F(x) = 12.5*80 + 14.5*90 + 15.7*20 + 16.3*80 = 3923

За оптимальним планом перевезень загальна вартість перевезень всієї продукції є найменшою і становить 3923 грн.


Завдання 2

математична модель екстремум транспортна задача

Записати двоїсту задачу до поставленої задачі лінійного програмування. Розв’язати одну із задач симплексним методом і визначити оптимальний план іншої задачі. Оптимальні результати перевірити графічно.

Математичне програмування

Математичне програмування

Розв’язок

Розв’яжемо задачу лінійного програмування симплексним методом.

Визначимо максимальне значення цільової функції F(X) = 3x1+x2 за таких умов-обмежень.

-2x1+6x2≤2

4x1-3x2≤12

x1-x2≥3

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

-2x1 + 6x2 + 1x3 + 0x4 + 0x5 = 2

4x1-3x2 + 0x3 + 1x4 + 0x5 = 12

1x1-1x2 + 0x3 + 0x4-1x5 = 3

Введемо штучні змінні x.

-2x1 + 6x2 + 1x3 + 0x4 + 0x5 + 0x6 = 2

4x1-3x2 + 0x3 + 1x4 + 0x5 + 0x6 = 12

1x1-1x2 + 0x3 + 0x4-1x5 + 1x6 = 3

Для постановки завдання на максимум цільову функцію запишемо так:

F(X) = 3x1+x2 - Mx6 =>max

Отриманий базис називається штучним, а метод рішення називається методом штучного базису.

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

З рівнянь висловлюємо штучні змінні:

x6 = 3-x1+x2+x5

які підставимо в цільову функцію:

F(X) = 3x1 + x2 - M(3-x1+x2+x5) =>max

або

F(X) = (3+1M)x1+(1-1M)x2+(-1M)x5+(-3M) =>max

Матриця коефіцієнтів A = a(ij) цієї системи рівнянь має вигляд:


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

Вирішимо систему рівнянь відносно базисних змінних:

x3, x4, x6,

Вважаючи, що вільні змінні рівні 0, отримаємо перші опорний план:

X1 = (0,0,2,12,0,3)


План Базис В x1 x2 x3 x4 x5 x6
0 x3 2 -2 6 1 0 0 0

x4 12 4 -3 0 1 0 0

x6 3 1 -1 0 0 -1 1
Індексний рядок F(X0) -3M -3-1M -1+1M 0 0 1M 0

Переходимо до основного алгоритму симплекс-методу.


План Базис В x1 x2 x3 x4 x5 x6 min
1 x3 2 -2 6 1 0 0 0 0

x4 12

4

-3 0 1 0 0

3


x6 3 1 -1 0 0 -1 1 3
Індексна рядок F(X1) -3M

-3-1M

-1+1M 0 0 1M 0 0

Оскільки, в індексному рядку знаходяться негативні коефіцієнти, поточний опорний план неоптимальний, тому будуємо новий план. У якості ведучого виберемо елемент у стовбці х1, оскільки значення коефіцієнта за модулем найбільше.


План Базис В x1 x2 x3 x4 x5 x6
2 x3 8 0 4.5 1 0.5 0 0

x1 3 1 -0.75 0 0.25 0 0

x6 0 0 -0.25 0 -0.25 -1 1
Індексна рядок F(X2) 9 0 -3.25+0.25M 0 0.75+0.25M 1M 0

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

Оптимальний план можна записати так:

x3 = 8

x1 = 3

x6 = 0

F(X) = 3*3 = 9

Складемо двоїсту задачу до прямої задачі.

-2y1+4y2+y3≥3

6y1-3y2-y3≥1

2y1+12y2+3y3 =>min

y1 ≥ 0

y2 ≥ 0

y3 ≤ 0

Рішення двоїстої задачі дає оптимальну систему оцінок ресурсів.

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

З першої теореми двоїстості випливає, що Y = C*A-1.

Складемо матрицю A з компонентів векторів, що входять в оптимальний базис.


Визначивши зворотну матрицю А-1 через алгебраїчні доповнення, отримаємо:


Як видно з останнього плану симплексного таблиці, зворотна матриця A-1 розташована в стовпцях додаткових змінних .

Тоді Y = C*A-1 =

Оптимальний план двоїстої задачі дорівнює:

y1 = 0

y2 = 0.75

y3 = 0

Z(Y) = 2*0+12*0.75+3*0 = 9


Завдання 3


Розв’язати транспортну задачу.


1 4 7 9 1 250
2 3 1 2 4 300
2 1 3 1 4 150
110 80 100 90 70

Розв’язок

Побудова математичної моделі. Нехай xij — кількість продукції, що перевозиться з і-го пункту виробництва до j-го споживача Математичне програмування. Оскільки Математичне програмування, то задачу треба закрити, тобто збалансувати (зрівняти) поставки й потреби:

Математичне програмування

Математичне програмування

Математичне програмуванняУ нашому випадку робиться це введенням фіктивного постачальника, оскільки Математичне програмування. З уведенням фіктивного споживача транспортній таблиці додатково заявляється n робочих клітинок.

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

Занесемо вихідні дані у таблицю.



В1 В2 В3 В4 В5 В6 Запаси
А1 1 4 7 9 1 0 250
А2 2 3 1 2 4 0 300
А3 2 1 3 1 4 0 150
Потреби 110 80 100 90 70 250

Забезпечивши закритість розв'язуваної задачі, розпочинаємо будувати математичну модель даної задачі:

Математичне програмування

Економічний зміст записаних обмежень полягає в тому, що весь вантаж потрібно перевезти по пунктах повністю.

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

Математичне програмування

Загальні витрати, пов’язані з транспортуванням продукції, визначаються як сума добутків обсягів перевезеної продукції на вартості транспортування од. продукції до відповідного замовника і за умовою задачі мають бути мінімальними. Тому формально це можна записати так:

minZ=1x11+4x12+7x13+9x14+1x15+0x16+2x21+3x22+1x23+2x24+4x25+0x26+2x31+1x32+3x33+1x34+ +4x35+0x36.

Загалом математична модель сформульованої задачі має вигляд:

minZ=1x11+4x12+7x13+9x14+1x15+0x16+2x21+3x22+1x23+2x24+4x25+0x26+2x31+1x32+3x33+1x34+ +4x35+0x36.

за умов:

Математичне програмування

Математичне програмування


Запишемо умови задачі у вигляді транспортної таблиці та складемо її перший опорний план у цій таблиці методом «північно-західного кута».


Ai Bj ui

b1 = 110 b2 = 80 b3 = 100 b4=90 b5=70 b6=250
а1 = 250

1

110

4

80

7

[-] 60

9

1

[+]

0 u1 = 0
а2 = 300 2 3

1

[+] 40

2

90

4

[-] 70

0

100

u2 = -6
а3 = 150 2 1 3 1 4

0

150

u3 = -6
vj v1 = 1 v2 = 4 v3 = 7 v4 = 8 v5 = 10 v6 = 6

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

Підрахуємо число зайнятих клітин таблиці, їх 8, а має бути m+n-1=8. Отже, опорний план є не виродженим.

Перевіримо оптимальність опорного плану. Знайдемо потенціали ui, vi. по зайнятих клітинам таблиці, в яких ui + vi = cij, вважаючи, що u1 = 0:

u1 + v1 = 1; 0 + v1 = 1; v1 = 1

u1 + v2 = 4; 0 + v2 = 4; v2 = 4

u1 + v3 = 7; 0 + v3 = 7; v3 = 7

u2 + v3 = 1; 7 + u2 = 1; u2 = -6

u2 + v4 = 2; -6 + v4 = 2; v4 = 8

u2 + v5 = 4; -6 + v5 = 4; v5 = 10

u2 + v6 = 0; -6 + v6 = 0; v6 = 6

u3 + v6 = 0; 6 + u3 = 0; u3 = -6

Ці значення потенціалів першого опорного плану записуємо у транспортну таблицю.

Потім згідно з алгоритмом методу потенціалів перевіряємо виконання другої умови оптимальності ui + vj ≤ cij(для порожніх клітинок таблиці).

Опорний план не є оптимальним, тому що існують оцінки вільних клітин для яких ui + vi>cij

(1;5): 0 + 10 > 1; ∆15 = 0 + 10 - 1 = 9

(1;6): 0 + 6 > 0; ∆16 = 0 + 6 - 0 = 6

(3;4): -6 + 8 > 1; ∆34 = -6 + 8 - 1 = 1

Тому від нього необхідно перейти до другого плану, змінивши співвідношення заповнених і порожніх клітинок таблиці. Вибираємо максимальну оцінку вільної клітини (1;5): 1. Для цього в перспективну клітку (1;5) поставимо знак «+», а в інших вершинах багатокутника чергуються знаки «-», «+», «-». Цикл наведено в таблиці.

Тепер необхідно перемістити продукцію в межах побудованого циклу. З вантажів хij що стоять в мінусових клітинах, вибираємо найменше, тобто у = min (1, 3) = 60. Додаємо 60 до обсягів вантажів, що стоять в плюсових клітинах і віднімаємо 60 з хij, що стоять в мінусових клітинах. В результаті отримаємо новий опорний план.

Для цього у порожню клітинку (1;5) переносимо менше з чисел хij, які розміщені в клітинках зі знаком «–». Одночасно це саме число хij додаємо до відповідних чисел, що розміщені в клітинках зі знаком «+», та віднімаємо від чисел, що розміщені в клітинках, позначених знаком «–».

Усі інші заповнені клітинки першої таблиці, які не входили до циклу, переписуємо у другу таблицю без змін. Кількість заповнених клітинок у новій таблиці також має відповідати умові невиродженості плану, тобто дорівнювати (n + m – 1).

Отже, другий опорний план транспортної задачі матиме такий вигляд:


Ai Bj ui

b1 = 110 b2 = 80 b3 = 100 b4=90 b5=70 b6=250
а1 = 250

1

110

4

[-] 80

7


9

1

[+] 60

0 u1 = 0
а2 = 300 2 3

1

100

2

90

4

[-] 10

0

[+] 100

u2 = 3
а3 = 150 2

1

[+]

3 1 4

0

[-] 150

u3 = 3
vj v1 = 1 v2 = 4 v3 = -2 v4 = -1 v5 = 1 v6 = -3

Перевіримо оптимальність опорного плану. Знайдемо потенціали ui, vi. по зайнятих клітинам таблиці, в яких ui + vi = cij, вважаючи, що u1 = 0.

Опорний план не є оптимальним, тому що існують оцінки вільних клітин для яких ui + vi>cij

(2;1): 3 + 1 > 2; ∆21 = 3 + 1 - 2 = 2

(2;2): 3 + 4 > 3; ∆22 = 3 + 4 - 3 = 4

(3;1): 3 + 1 > 2; ∆31 = 3 + 1 - 2 = 2

(3;2): 3 + 4 > 1; ∆32 = 3 + 4 - 1 = 6

(3;4): 3 + -1 > 1; ∆34 = 3 + -1 - 1 = 1

Вибираємо максимальну оцінку вільної клітини (3;2): 1

Для цього в перспективну клітку (3;2) поставимо знак «+», а в інших вершинах багатокутника чергуються знаки «-», «+», «-». Цикл наведено в таблиці.

З вантажів хij що стоять в мінусових клітинах, вибираємо найменше, тобто у = min (2, 5) = 10. Додаємо 10 до обсягів вантажів, що стоять в плюсових клітинах і віднімаємо 10 з Хij, що стоять в мінусових клітинах. В результаті отримаємо новий опорний план.


Ai Bj ui

b1 = 110 b2 = 80 b3 = 100 b4=90 b5=70 b6=250
а1 = 250

1

110

4

[-] 70

7


9

1

70

0

[+]

u1 = 0
а2 = 300 2 3

1

100

2

90

4


0

110

u2 = -3
а3 = 150 2

1

[+] 10

3 1 4

0

[-] 140

u3 = -3
vj v1 = 1 v2 = 4 v3 = 4 v4 = 5 v5 = 1 v6 = 3

Перевіримо оптимальність опорного плану. Знайдемо потенціали ui, vi. по зайнятих клітинам таблиці, в яких ui + vi = cij, вважаючи, що u1 = 0.

Опорний план не є оптимальним, тому що існують оцінки вільних клітин для яких ui + vi>cij

(1;6): 0 + 3 > 0; ∆16 = 0 + 3 - 0 = 3

(3;4): -3 + 5 > 1; ∆34 = -3 + 5 - 1 = 1

Вибираємо максимальну оцінку вільної клітини (1;6): 0

Для цього в перспективну клітку (1;6) поставимо знак «+», а в інших вершинах багатокутника чергуються знаки «-», «+», «-». Цикл наведено в таблиці.

З вантажів хij що стоять в мінусових клітинах, вибираємо найменше, тобто у = min (1, 2) = 70. Додаємо 70 до обсягів вантажів, що стоять в плюсових клітинах і віднімаємо 70 з Хij, що стоять в мінусових клітинах.

В результаті отримаємо новий опорний план.

Ai Bj ui

b1 = 110 b2 = 80 b3 = 100 b4=90 b5=70 b6=250
а1 = 250

1

110

4

7


9

1

70

0

70

u1 = 0
а2 = 300 2 3

1

100

2

[-] 90

4


0

[+] 110

u2 = 0
а3 = 150 2

1

80

3

1

[+]

4

0

[-] 70

u3 = 0
vj v1 = 1 v2 = 1 v3 = 1 v4 = 2 v5 = 1 v6 = 0

Перевіримо оптимальність опорного плану. Знайдемо потенціали ui, vi. по зайнятих клітинам таблиці, в яких ui + vi = cij, вважаючи, що u1 = 0.

Опорний план не є оптимальним, тому що існують оцінки вільних клітин для яких ui + vi>cij

(3;4): 0 + 2 > 1; ∆34 = 0 + 2 - 1 = 1

Вибираємо максимальну оцінку вільної клітини (3;4): 1

Для цього в перспективну клітку (3;4) поставимо знак «+», а в інших вершинах багатокутника чергуються знаки «-», «+», «-». Цикл наведено в таблиці.

З вантажів хij що стоять в мінусових клітинах, вибираємо найменше, тобто у = min (3, 6) = 70. Додаємо 70 до обсягів вантажів, що стоять в плюсових клітинах і віднімаємо 70 з Хij, що стоять в мінусових клітинах.

В результаті отримаємо новий опорний план.


Ai Bj ui

b1 = 110 b2 = 80 b3 = 100 b4=90 b5=70 b6=250
а1 = 250

1

110

4

7


9

1

70

0

70

u1 = 0
а2 = 300 2 3

1

100

2

20

4


0

180

u2 = 0
а3 = 150 2

1

80

3

1

70

4

0


u3 = -1
vj v1 = 1 v2 = 2 v3 = 1 v4 = 2 v5 = 1 v6 = 0

Перевіримо оптимальність опорного плану, тобто повторюємо описані раніше дії.

Знайдемо потенціали ui, vi. по зайнятих клітинам таблиці, в яких ui + vi = cij, вважаючи, що u1 = 0.

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

Мінімальні витрати складуть:

F(x) = 1*110 + 1*70 + 0*70 + 1*100 + 2*20 + 0*180 + 1*80 + 1*70 = 470

За оптимальним планом перевезень загальна вартість перевезень всієї продукції є найменшою і становить 470 грн.


Завдання 4


Знайти графічним методом екстремуми функцій в області, визначеній нерівностями.

Математичне програмування

Математичне програмування

Математичне програмування

Математичне програмування

Математичне програмування.


Розв’язок


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

Математичне програмування


Межі області


Математичне програмування


Цільова функція F(x) =>max

Розглянемо цільову функцію завдання F = 3X1+6X2 =>max.

Побудуємо пряму, що відповідає значенню функції F = 0: F = 3X1+6X2 = 0. Будемо рухати цю пряму паралельним чином. Оскільки нас цікавить максимальне рішення, тому рухався прямо до останнього торкання позначеної області. На графіку ця пряма позначена пунктирною лінією.


Математичне програмування


Рівний масштаб


Математичне програмування

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

Пряма F(x) = const перетинає область у точці B. Оскільки точка B отримана в результаті перетину прямих 1 i 5, то її координати задовольняють рівнянням цих прямих:

x1+x2≤6

x1=0

Вирішивши систему рівнянь, одержимо: x1 = 0, x2 = 6

Звідки знайдемо максимальне значення цільової функції:

F(X) = 3*0 + 6*6 = 36


Размещено на

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту

Похожие рефераты: