Використання комп’ютера в процесі навчання розв’язування деяких задач оптимізації

Знайомство з головними методами розв’язування оптимізаційних задач з окремих розділів математичного програмування. Загальна характеристика сучасних програмних засобів: Excel, MatLab, Maple, MathCad. Розгляд особливостей використання алгоритму Дейкстри.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык украинский
Дата добавления 07.04.2018
Размер файла 4,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Використання комп'ютера в процесі навчання розв'язування деяких задач оптимізації

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

Ключові слова: теорія оптимізації; екстремальна задача; функція цілі; математична модель.

Задачі на знаходження екстремумів відіграють важливу роль в розвитку математики. Проблеми відшукання найкращого серед деякої множини варіантів люди розв'язують майже завжди. Такий найкращий варіант називають оптимальним (від. лат. optimus - найкращий). Пошук реального оптимального розв'язку є, як правило, складною задачею і відноситься до екстремальних задач, в яких необхідно знайти максимум чи мінімум певних функцій від аргументів, що задовольняють наперед задані обмеження. Обидва ці поняття - максимум (maximum) і мінімум (minimum) об'єднуються єдиним терміном «екстремум» (лат. extremum - крайній). Якщо на аргументи функції накладаються певні обмеження - умови, які повинні задовільняти аргументи, тоді екстремум (екстремальне значення функції) називають умовним. Якщо ж на аргументи функції не накладаються ніякі обмеження, тоді екстремум називають безумовним. Задачі на відшукання максимуму чи мінімуму певних функцій називають екстремальними задачами.

Напрям прикладної математики, предметом якого є теорія та методи розв'язування екстремальних задач за заданих додаткових умов, називають математичним програмуванням.

На сучасному етапі математичне програмування включає в себе широке коло задач з відповідними методами розв'язування. Існує класифікація задач математичного програмування:

• Задачі лінійного програмування (задачі на знаходження мінімуму чи максимуму лінійної цільової функції на множині розв'язків системи лінійних нерівностей або лінійних рівнянь);

• Задачі дробово-лінійного програмування (задачі на знаходження мінімуму чи максимуму дробово-лінійної цільової функції (відношення двох лінійних функцій) на множині розв'язків системи лінійних нерівностей або лінійних рівнянь);

• Задачі нелінійного програмування (задачі на знаходження мінімуму чи максимуму цільової функції на множині розв'язків системи нерівностей або рівнянь, в яких цільова функція й (або) множина розв'язків системи нерівностей або рівнянь є нелінійними функціями);

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

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

• Задачі квадратичного програмування (задачі на знаходження мінімуму чи максимуму квадратичної цільової функції на множині розв'язків системи лінійних нерівностей або лінійних рівнянь);

• Задачі динамічного програмування (багатокрокові оптимізаційні задачі, які в процесі розв'язування змінюються так, що на кожному кроці відшукується розв'язок деякої часткової задачі, породженої початковою);

• Задачі стохастичного програмування (оптимізаційні задачі з випадковими аргументами в цільовій функції або в функціях, за якими визначається множина допустимих розв'язків);

• Задачі цілочисельного програмування (задачі на знаходження мінімуму чи максимуму цільової функції на множині розв'язків системи нерівностей або рівнянь, де змінні мають набувати цілих значень);

• Задачі теорії ігор (задачі на знаходження оптимальної стратегії, яка за умови багатократного повторення гри забезпечує певному гравцеві максимально можливий середній виграш) [4, с. 423].

Серед прикладних задач оптимізації важливе місце займають задачі дискретного програмування (дискретної оптимізації).

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

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

Значний внесок у розвиток теорії оптимізації зробили вчені: Л. В. Канторович [8], Т. Ч. Купманс, Дж. Данціг (задачі лінійного програмування), Г. Кун і А. Таккер [12] (задачі нелінійного програмування), Р. Белман [5], Л. С. Понтрягін, В. Г. Болтянский, Р. В. Гамкрелідзе, Є. Ф. Міщенко [10] (задачі динамічного програмування), Ю. М. Єрмольєв [7], Д. Б. Юдін [11] (задачі стохастичного програмування).

Для того, щоб знайти оптимальний розв'язок оптимізаційної задачі, потрібно дотримуватися певних правил, зокрема [2, с. 20-21]:

1. Здійснити постановку задачі. Під час постановки будь-якої задачі її потрібно сформулювати в термінах певної предметної галузі, де задача виникла, в результаті чого повинно бути чітко визначено мету, яку потрібно досягти в результаті розв'язування задачі.

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

3. Визначити тип отриманої математичної моделі. Після побудови математичної моделі потрібно визначити, до якого типу моделей вона відноситься, і обрати відповідно метод розв'язування задачі. В іншому випадку, коли задача не належить до жодного з відомих типів задач математичного програмування, потрібно: дослідити властивості цільової функції (на неперервність і диференційовність); визначити умови існування розв'язків задачі за заданих обмежень; встановити необхідні і достатні умови глобального або локального екстремуму; розробити аналітичні або чисельні методи відшукання розв'язку задачі.

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

5. Провести обчислення (комп'ютерний експеримент), здійснити аналіз одержаних результатів. Під час побудови математичних моделей для задач математичного програмування потрібно дотримуватися таких вимог: наочність побудови; видимість основних властивостей і відношень; доступність моделі для дослідження або відтворення; простота дослідження, відтворення; збереження даних, що пов'язані з оригіналом, та одержання нових даних на основі досліджень.

Для розв'язування задач оптимізації широко використовують сучасні програмні засоби Excel, MatLab, Maple, MathCad, Mathematika, Sage, Maxima, Графоаналізатор 1.3.

Приклад 1. Потрібно завантажити літак вантажністю 30 т трьома типами речей, причому вага одиниці першого типу речей рівна 7 тонн, другого типу речей - 9 тонн, третього типу - 12 тонн. Вартість перевезення одиниці кожного типу речей рівна 3 тис. гр. од., 4 тис. гр. од., 5 тис. гр. од. відповідно. Очевидно, максимальна кількість речей кожного типу, яку можна помістити в літак відповідно дорівнює 4 одиниці, 3 одиниці, 2 одиниці. Яку кількість кожного типу речей потрібно завантажити, щоб вартість перевезення речей була максимальна [3, с. 160]?

Розв'язування. Нехай x1,x23 - кількість речей кожного типу відповідно.

Тоді цільова функція матиме вигляд:

Z(x, x2, х)= 3xj + 4х + 5х ^ max

Обмеження на змінні x1, x2, х3 матимуть вигляд:

Дану задачу можна розв'язати за допомогою програмного засобу MS Excel. Спочатку визначимо місце в електронній таблиці для виразів обмежень та цільової функції.

До клітинки B8 запишемо формулу для підрахунку значень цільової функції: =B3*D3+B4*D4+B5*D5 (рис. 1).

Вирази обмежень задачі записуються в клітинки B10:B13, куди вводяться вирази функцій, які відповідають виразам обмежень на змінні.

Рис.1

Рис. 2

Рис.3

Рис.4

В полі "Оптимізувати цільову функцію" вкажемо адресу клітинки, де міститимуться результати обчислення значень цільової функції. В розглянутому випадку це клітина B8.

В полі "До": вибираємо перемикач "Максимум". В полі "Змінюючи значення змінних в клітинках" вказуємо діапазон клітин $В$3:$В$5 - їх вмісти можуть змінюватися в процесі пошуку розв'язку.

Отже, щоб максимально завантажити літак з дотриманням вказаних вимог, потрібно взяти 3 одиниці речей 1-го типу і 1 одиницю речей 2-го типу. Загальна вартість перевезення в такому разі становитиме 13 тис. гр. од.

Приклад 2. Розглянемо задачу на знаходження найкоротшого шляху в дорожній мережі, через яку з'єднуються 8 населених пунктів в деякому географічному районі. Мережа доріг задана у вигляді схеми (зв'язного графа), яка складається з 8 вершин і 15 дуг. Довжина дороги (км) між двома сусідніми населеними пунктами рівна для кожної дуги значенню, яке вказано поряд із цією дугою на графі [1, с. 13].

Потрібно знайти найкоротший шлях від початкового пункту 1, якому відповідає вершина vx, до кінцевого пункту 8, якому відповідає вершина v8.

Змінними математичної моделі даної задачі про найкоротший шлях є 15 змінних: X12 ' X13' Х14' X24' X25 ' X34' X36 ' X45 ' X46 ' X47 ' X57 ' X58' X67 ' X68 ' X78 , де Xj -- ознака включення в шуканий шлях ділянки шляху від населеного пункту vi до населеного пункту Vj , і є 1, 8, j є 1, 8 .

Рис.5

Кожна із змінних х^ набуває значення 1, якщо дуга vtv ¦ входить у вибраний шлях, і значення 0 -- в протилежному випадку (якщо дуги, наприклад vxv5 і т.п. не існує, тоді природно, що х15 буде дорівнювати нулеві (за матрицею зв'язності). Якщо = 0 через те, що не існує ребра v;vy, то в цільову функцію така змінна хі2 не входить). В розглядуваному випадку цільова функція матиме вигляд:

Z (х-) = 7 х12 + 11х13 +18х14 + 6х24 + 14х25 + 4х34 +13х36 + + 7 х45 + 5х46 + 10х47 + 2х57 + 15х58 + 3х67 +12 х68 + 9х78.

Складемо та опишемо обмеження на значення шуканих змінних.

З населеним пунктом v1 межують три населені пункти v2, v3, v4 . Тому, лише одна із ланок дороги (v1v2, v1v3, v4v4) буде належати до найкоротшого шляху дорожньої мережі. Отже, одна із змінних х12, х13, х14 набуває значення 1, інші дві набувають значень 0. Звідси, маємо рівняння х12 + х13 + х14 = 1. Аналогічно, лише одна із ланок дороги (v5v8, v6v8, v7v8) належатиме до найкоротшого шляху. Тому х58 + х68 + х78 = 1.

Якщо припустити, що ланка (ребро) vlv2 належить до найкоротшого шляху, тобто х12 = 1, оскільки з населеним пунктом v2 межують v , v , то лише одна із доріг v2v4 , v2v5 буде належати тому, х12 - (х24 + х25) = 0. Так само якщо дуга vv належить до найкоротшого шляху, тобто х13 = 1, тоді v3 межує з v4, v6. Отже, лише одна із ланок дороги v3v4, v3v6 буде належати до найкоротшого шляху в дорожній мережі. Тому х13 - (х34 + х36 ) = 0 .

В населений пункту v є можливість потрапити з трьох населених пунктів v , v , v . Звідси - одна із ланок дороги v^v4, v2v4, v3v4 буде належати до найкоротшого шляху в дорожній мережі (одна із змінних х14, х24, х34 набуває значення 1, інші - 0). Щоб виїхати з даного населеного пункту v4, існує також три шляхи: v v , v v , v v , один з яких буде належати до найкоротшого шляху дорожньої мережі (одна із змінних х45, х46, х47 набуває значення 1, інші - 0). Тому х14 + х24 + х34 - (х45 + х46 + х47) = 0 .

В населений пункту v є можливість потрапити з двох населених пунктів v , v . Звідси - одна із ланок дороги v v , v v буде належати до найкоротшого шляху в дорожній мережі (одна із змінних х25, х45 набуває значення 1, інша - 0). Щоб виїхати з даного населеного пункту v5, існує також два шляхи: v v , v v , один з яких буде належати до найкоротшого шляху в дорожній мережі (одна із змінних х57, х58 набуває значення 1, інша - 0). Тому х25 + х45 - (х57 + х58) = 0 .

В населений пункту v6 є можливість потрапити з двох населених пунктів v2, v4 . Звідси - одна із ланок дороги v v , v v буде належати до найкоротшого шляху в дорожній мережі (одна із змінних набуває значення 1, інша - 0). Щоб виїхати з даного населеного пункту v6, існує також два шляхи: v6v7, v6v8, один з яких буде належати до найкоротшого шляху в дорожній мережі (одна із змінних х67, х68 набуває значення 1, інша - 0). Тому х36 + х46 - (х67 + х68) = 0 .

В населений пункту v7 є можливість потрапити з трьох населених пунктів v4, v5, v6. Звідси, одна із ланок дороги v4 v7, v5 v7, v6 v7 буде належати до найкоротшого шляху в дорожній мережі (одна із змінних х , х , х набуває значення 1, інші - 0). Виїхати з даного населеного пункту v можливо лише одним шляхом - v v , тому він буде належати до найкоротшого шляху в дорожній мережі

(змінна x1S набуває значення 1). Маємо рівняння: х47 + х57 + х67 х78 = 0 .

Таким чином, обмеження на змінні в даній задачі матимуть вигляд:

Задачу розв'язуватимемо за допомогою програмного засобу MS Excel:

0. В клітинки А2:А16 введемо індекси початкових вершин, а в клітинки В2:В16 - індекси кінцевих вершин всіх можливих дуг дорожньої мережі.

1. В клітинки С2:С16 введемо значення коефіцієнтів цільової функції.

2. В клітинку F2 введемо вираз цільової функції: =CYMMnPOH3B(C2:C16;D2:D16) - сума добутків довжин дуг та значень змінних xtj.

3. В клітинки Е2:Е9 вводимо обмеження: =СУMM(D2:D4)

де, наприклад, СУММ (D2:D4) - сума чисел, вказаних в діапазоні клітинок від D2 до D4; СУMM(D4:D5;D7) - сума всіх чисел, вказаних в діапазоні клітинок від D4 до D5 та в клітинці D7.

Рис.6

Рис.7

Рис.8

Рис.9

Далі потрібно звернутися до послуг Сервіс/Пошук розв'язку, після чого з'явиться допоміжне вікно, в якому необхідно вказати наступне:

1. В полі "Оптимізувати значення цільової функції” вказати адресу клітинки, де міститимуться результати обчислення значень цільової функції - $F$2;

2. В полі "До": вибираємо перемикач "Мінімум";

В полі "Змінюючи значення змінних в клітинках" вказуємо діапазон клітин $D$2:$D$16 - їх

Рис.10

3. вмісти можуть змінюватися в процесі пошуку розв'язку (рис. 7);

4. Вводимо обмеження на значення змінних в розділі "У відповідності з обмеженнями". Для цього необхідно натиснути кнопку "Додати", після чого відкривається допоміжне вікно "Додавання обмеження" (рис. 8).

Після натискання кнопки "Знайти розв'язок ” (рис. 7) з'являються результати обчислень.

Рис.11

Тим самим знайдений найкоротший шлях із початкового населеного пункту v до кінцевого v8, за яким визначаються послідовні переходи між сусідніми населеними пунктами: від v до v , від v до v4, від v4 до v6, від v6 до v7, від v7 до v8 (рис. 10). В такому разі загальна довжина шляху буде мінімальна і дорівнюватиме ЗО км.

Приклад 3. Розглянемо іншу задачу на знаходження найкоротших шляхів в дорожній мережі від першої вершини до всіх інших вершин - населених пунктів в деякому географічному районі.

Мережа доріг в районі задана у вигляді схеми, яка складається з 8 вершин і 16 дуг. Довжина дороги (км) між двома сусідніми населеними пунктами рівна для кожної дуги значенню, яке вказано поряд із цією дугою.

Щоб розв'язати дану задачу, використаємо алгоритм Дейкстри. В процесі виконання даного алгоритму при переході від вершини і до вершини j використовується спеціальна процедура, за якою кожна вершина графа мітиться відповідною міткою. Мітки в алгоритмі Дейкстри можуть бути двох типів: тимчасові або постійні.

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

L (v.) - постійна мітка вершини vt,

L (v. ) - нова тимчасова мітка вершини v ,

L (v. ) - попередня тимчасова мітка вершини v,,

R. - довжина ребра, що з'єднує вершини v{ та vj .

Нову тимчасову мітку знайдемо за формулою

Рис.12

оптимізаційний задача математичний програмування

Дану задачу будемо розв'язувати за допомогою онлайн-сервісу для розв'язування задач оптимізації (http: //uchimatchast. ru/).

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

В результаті отримуємо:

Найкоротший шлях від вершини 1 до вершини 2 - d(2)=32. Згідно формули (1), це ребро (1,2), оскільки (див. формулу (1)):

d(3)=min{d(3) ; d(2)+a(2,3)}=min{85; 32+70}=85 d(4)=min{d(4) ; d(2)+a(2,4)}=min{75; 32+да}=75 d(5)=min{d(5) ; d(2)+a(2,5)}=min{57; 32+23}=55 d(6)=min{d(6) ; d(2)+a(2,6)}=min{®; 32+да}=да d(7)=min{d(7) ; d(2)+a(2,7)}=min{®; 32+да}=да d(8)=min{d(8) ; d(2)+a(2,8)}=min{®; 32+да}=да

Найкоротший шлях від вершини 1 (через ребро (1,2)) до вершини 5 - d(5)=55. Згідно формули (1), це ребро (2,5), оскільки

d(3)=min{d(3) ; d(5)+a(5,3)}=min{85; 55+да}=85 d(4)=min{d(4) ; d(5)+a(5,4)}=min{75; 55+10}=65 d(6)=min{d(6) ; d(5)+a(5,6)}=min{®; 55+11}=66 d(7)=min{d(7) ; d(5)+a(5,7)}=min{w; 55+20}=75 d(8)=min{d(8) ; d(5)+a(5,8)}=min{®; 55+да}=да

Найкоротший шлях від вершини 1 (через ребра (1,2), (2,5)) до вершини - 4 d(4)=65. Згідно формули (1), це ребро (5,4), оскільки

d(3)=min{d(3) ; d(4)+a(4,3)}=min{85; 65+18}=83 d(6)=min{d(6) ; d(4)+a(4,6)}=min{66; 65+да}=66 d(7)=min{d(7) ; d(4)+a(4,7)}=min{75; 65+да}=75 d(8)=min{d(8) ; d(4)+a(4,8)}=min{w; 65+да}=да

Найкоротший шлях від вершини 1 (через ребра (1,2), (2,5)) до вершини - 6 d(6)=66. Згідно формули (1), це ребро (5,6), оскільки

d(3)=min{d(3) ; d(6)+a(6,3)}=min{83; 66+да}=83 d(7)=min{d(7) ; d(6)+a(6,7)}=min{75; 66+7}=73 d(8)=min{d(8) ; d(6)+a(6,8)}=min{w; 66+да}=да

Найкоротший шлях від вершини 1 (через ребра (1,2), (2,5), (5,6) до вершини - 7 d(7)=73. Згідно формули (1), це ребро (6,7), оскільки

d(3)=min{d(3) ; d(7)+a(7,3)}=min{83; 73+да}=83 d(8)=min{d(8) ; d(7)+a(7,8)}=min{w; 73+12}=85

Найкоротший шлях від вершини 1(через ребра (1,2), (2,5), (5,4)) до вершини - 3 d(3)=83. Згідно формули (1), це ребро (4,3), оскільки

d(8)=min{d(8) ; d(3)+a(3,8)}=min{85; 83+да}=85

Найкоротший шлях від вершини 1 (через ребра (1,2), (2,5), (5,6), (6,7)) до вершини - 8 d(8)=85. Згідно формули (1), це ребро (7,8), оскільки мітки інших ребер задовільняють формулу (1).

Отже, отримано найкоротші шляхи в дорожній мережі від першої вершини до всіх інших вершин - населених пунктів в деякому географічному районі (для даного графа): d(1)=1 Довжина шляху L=0 d(2)=1-2 Довжина шляху L=32 d(3)=1-2-5-4-3 Довжина шляху L=83 d(4)=1-2-5-4 Довжина шляху L=65 d(5)=1-2-5 Довжина шляху L=55 d(6)=1-2-5-6 Довжина шляху L=66 d(7)=1-2-5-6-7 Довжина шляху L=73 d(8)=1-2-5-6-7-8 Довжина шляху L=85.

Приклад 4. Задача розрахунку траєкторії літака. Літак у точці S0 має швидкість V0 та висоту Н0. Він повинен піднятися на висоту Hk і набути швидкість Vk. Потрібно мінімізувати витрати палива, якщо відомі витрати палива на збільшення швидкості від V до V2 на висоті Н = const, та відомі витрати палива на збільшення висоти від Н1 до Н2 на швидкості v = const. Дані розрахунків показано на рис. 14.

Всі прямокутники спочатку порожні. Між прямокутниками вказані цифри витрат палива на збільшення висоти (вертикальні лінії) та на збільшення швидкості (горизонтальні лінії). Початкова точка позначена як S0, а кінцева - як Sk. Розрахунок починається з кінцевої точки Sk і переміщується у напрямку початкової точки S0.

Алгоритм розв'язування задачі:

В кінцевому прямокутнику записуємо витрати палива “0”.

Рис.13

1. В прямокутниках B1 та B2 записуємо витрати палива відповідно “11” та “8", що витрачаються для досягнення кінцевої точки Sk. Можлива оптимальна траєкторія позначається стрілками, а заборонені шляхи не помічаються стрілками.

2. В точки Bi, B2 можна попасти з точок С1, C2, С3. Із прямокутника С2 на кінцеву точку можна йти шляхом через точку B1 (з витратами палива 7 + 11 = 18) або через точку В2 (з витратами палива 9 + 8 =17). У прямокутнику С2 записуємо найменші витрати палива “17”. Аналогічно знаходимо витрати палива, якщо літак рухатиметься з Ci через точку Bi (найменші витрати палива становитимуть “17”) і з С3 через точку B2 (найменші витрати палива становитимуть “15”). Показуємо лише однією стрілкою можливу оптимальну траєкторію руху літака через точки С3 та B2. Стрілка на точку B1 не показується, бо на цьому шляху витрати палива більші.

В такий спосіб вказуються витрати палива у всіх інших прямокутниках, і отримується ряд можливих траєкторій, позначених стрілками. Оптимальна кількість палива отримується у стартовому прямокутнику S0 - цифра "37”.

Оптимальний шлях отримується переміщенням з початкової точки S0 відміченими шляхами у кінцеву точку Sk (оптимальний шлях показаний яскравішими стрілками).

Таким чином отримали кількість витраченого палива та оптимальний шлях.

У даній задачі визначені всі умови переміщення для початкової та кінцевої точки. Тому процес отримання оптимальної траєкторії можна було б почати з початку - з точки S0, позначаючи у прямокутниках мінімальну витрату палива за такого переміщення. Кінцевий результат (кількість витраченого палива та оптимальна траєкторія) в даному разі не змінюється.

Але розрахунки почато з кінця, бо це - найбільш поширений метод розрахунків в процесі розв'язування задач динамічного програмування.

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

Дану задачу можна розв'язати за допомогою програмного засобу Графоаналізатор 1.3.

Графоаналізатор - візуальне середовище для роботи з графами. Використання Графоаналізатора не тільки надає можливість створювати і опрацьовувати графи, але візуально відображати результати виконання дій за алгоритмами. В програмному засобі реалізовано велику кількість алгоритмів для опрацювання графів. Графоаналізатор є безкоштовним і вільнопоширюваним програмним засобом, який можна завантажити з офіційного сайту програми

оптимізаційний задача математичний програмування

Рис.14

Щоб створити граф, потрібно запустити програму на виконання. В результаті з'являється форма «Створення графа», де слід обрати «Навантажений граф» (граф, у якого кожній дузі приписана її вага - деяке дійсне число). Обираємо числову номерацію вершин графа.

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

Рис. 15

Рис.16

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

Рис.17

Рис.18

В результаті з'являється нова форма з графічно поданим розв'язком та результатами роботи за алгоритмом, де видно, що для того, щоб літак з точки S0 дістався до точки Sk оптимальною траєкторією, потрібно 37 одиниць палива.

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

Список використаних джерел

1.Динамічне та нелінійне програмування. Методичні вказівки до проведення практичних та самостійних занять з курсу“ Дослідження операцій” для студентів факультету кібернетики / [упорядн. В. I. Тюптя, В. I. Шевченко, В. К. Стрюк]. - К.: Електронне видання. Ел. бібліотека факультету кібернетики Київського національного університету імені Тараса Шевченка, 2003. - 30 с. Режим доступу: http://cyb.univ.kiev.ua/library/books/tiuptia-31.pdf

2.Жалдак М. І. Основи теорії і методів оптимізації: навчальний посібник / М. І. Жалдак, Ю. В. Триус. - Черкаси: Брама-Україна, 2005. - 608 с.

3.Кутковецький В. Я. Дослідження операцій: Навчальний посібник / В. Я Кутковецький. - Миколаїв: Вид-во МДГУ ім. П. Могили, 2003. - 260 с.

4.Наконечний С. І., Савіна С. С. Математичне програмування: навч. посіб. - К.: КНЕУ, 2003. - 452 с.

5.Беллман Р. Динамическое программирование / Р Беллман. - М.: Изд-во Иностранная литература, 1960. - 400 с.

6.Вентцель Е. С. Введение в исследование операций / Е. С. Вентцель. - М., Советское радио, 1964. - 390 с.

7.Ермольев Ю. М. Методы стохастического программирования / Ю. М. Ермольев. - М.: Наука, 1976. - 240 с.

8.Канторович Л. В. Математические методы в организации и планировании производства / Л. В. Канторович. - Л.: Изд-во ЛГУ, 1939. - 68 с.

9.Майзе Х. Иследование операций: в 2 т. / Х. Майзе, Н. Эйджин, Р. Тролл; [пер. с анг. под ред. Дж. Моудера, С. Элмагаби]. - М.: Мир, Т.1. - 1981. - 712. с.

10.Понтрягин Л. С. Математичечская теория оптимальных процесов / Л. С. Понтрягин, В. Г. Болтянський, Р. В. Гамкрелидзе, Е. Ф Мищенко. - 4-е изд. - М.: Наука, 1983. - 392 с.

11.Юдин Д. Б. Задачи и методы стохастического программирования / Д. Б. Юдин. - М.: Советское радио, 1979. - 392 с.

12.Kuhn H. W., Tucker A. W. Nonlinear Programming/ Proceedings of the Second Berkeley Symposium on Mathematical Statistics and Probability, Berkeley and Los Angeles, University of California Press, 1951. - р. 481-492.

Размещено на Allbest.ru

...

Подобные документы

  • Огляд переваг та недоліків мови Пролог, історія її створення. Числення предикатів як математична основа її функціонування. Порівняльна характеристика середовищ програмування Prolog. Алгоритми розв’язування математичних задач за допомогою цієї мови.

    курсовая работа [504,5 K], добавлен 23.12.2014

  • Початковий опорний план, перехід від одного до іншого. Оптимальний розв’язок, його головні критерії. Знаходження опорного плану задачі, складання симплексної таблиці. Приклад оформлення першої та другої таблиці для розв’язку задач лінійного програмування.

    лекция [479,7 K], добавлен 10.10.2013

  • Розв’язування задач оптимізації з використанням засобів табличного процесора Microsoft Excel. Визначення найдешевшого раціону харчування худоби, що містить необхідну кількість білків і жирів. Розробка та розміщення на хостингу сайту організації.

    отчет по практике [944,4 K], добавлен 15.05.2019

  • Алгоритми розв’язання задач у вигляді блок–схем. Використання мови програмування MS VisualBasic for Application для написання програм у ході вирішення задач на одномірний, двовимірний масив, порядок розв’язання задачі на використання символьних величин.

    контрольная работа [742,9 K], добавлен 27.04.2010

  • Використання встроених функцій елементарних перетворень пакету Maple. Зображення основних геометричних фігур. Використання функції RootOf для позначення будь-якого кореня виразу, заданого як її параметр. Оператор виділення повного квадрату в чисельнику.

    контрольная работа [2,8 M], добавлен 18.07.2010

  • Застосування симплекс-методу для розв’язання оптимізаційних задач лінійного програмування, що містять три змінні. Функції ітераційної обчислювальної процедури, що виконують приведення до зручного для розв’язання оптимального вигляду ЗЛП за кілька кроків.

    курсовая работа [359,5 K], добавлен 18.09.2013

  • Вибір стратегії розв`язування задачі. Загальна характеристика середовища програмування Lazarus. Робота з текстовими файлами для збереження навчального матеріалу і результатів тестування. Авторизація викладача. Підпрограми редагування навчання та тестів.

    курсовая работа [1,6 M], добавлен 10.09.2012

  • Види рівнянь та методи їх розв’язань. Чисельні методи уточнення коренів, постановка задачі. Рішення нелінійного рівняння методом простих та дотичних ітерацій. Використання програмних засобів. Алгоритми розв’язку задач. Програми мовою С++, їх тестування.

    курсовая работа [232,2 K], добавлен 12.02.2013

  • Виконання "ручного" розв'язування рівняння методом Ньоютона. Розробка програми на мові С#, яка реалізує введення вихідних даних, розв'язання заданого рівняння, виведення результатів у зручній формі на екран. Визначення початкового наближення кореня.

    лабораторная работа [120,9 K], добавлен 19.01.2022

  • Аналіз розроблення та програмування обчислювального процесу лінійної структури, налагодження програм. Вивчення правил запису констант, числових і символьних змінних, типів даних. Побудова алгоритму розв’язування завдання та креслення його блок-схеми.

    реферат [2,1 M], добавлен 22.04.2012

  • Лінійне програмування як один з найбільш популярних апаратів математичної теорії оптимального управління рішень. Опис існуючих методів розв’язку задач лінійного програмування. Завдання, основні принципи, алгоритми і головна мета лінійного програмування.

    курсовая работа [363,8 K], добавлен 03.12.2009

  • Програми, які виводять на екран характеристики комп'ютера. Розробка програми "Монітор використання ресурсів комп’ютера" на мові програмування ASM-86. Алгоритм програми та її реалізація. Системні вимоги, інструкція для користувача, лістинг програми.

    курсовая работа [22,2 K], добавлен 08.08.2009

  • Постановка задачі багатокритеріальної оптимізації та її та математична модель. Проблеми і класифікація методів вирішення таких задач, способи їх зведення до однокритеріальних. Метод послідовних поступок. Приклад розв'язування багатокритеріальної задачі.

    курсовая работа [207,3 K], добавлен 22.12.2013

  • Розробка автоматизованої інформаційно-довідкової системи "Шовкова фея". Область використання системи, визначення функцій, вибір програмних засобів для розв’язання задачі, її комп’ютерна реалізація. Вимоги до ПЗ. Аналіз вихідних даних засобами MS Excel.

    презентация [980,4 K], добавлен 09.09.2010

  • Загальні відомості та геометричний зміст розв'язання задачі Коші. Використання методу Ейлера для розв'язання звичайних диференціальних рівнянь першого порядку. Розробка блок-схеми та реалізація алгоритму в середовищі програмування Borland Delphi 7.0.

    курсовая работа [398,1 K], добавлен 14.10.2012

  • Розробка, налагоджування, тестування і документування програми на мові високого рівня С++ при рішенні на комп'ютері прикладної інженерної задачі. Використання принципів модульного і структурного програмування, зображення алгоритму у вигляді блок-схеми.

    курсовая работа [1,1 M], добавлен 07.08.2013

  • Метод розв’язків рівнянь більш високих порядків. Вибір методу розв'язання задачі Коші. Методи розв'язання крайових задач розглядаються на прикладі звичайного диференціального рівняння другого порядку. Вибір методу інструментальних засобів вирішення задач.

    курсовая работа [132,0 K], добавлен 03.12.2009

  • Использование таблиц Excel и математической программы Mathcad при решении инженерных задач. Сравнение принципов работы этих пакетов программ при решении одних и тех же задач, их достоинства и недостатки. Обоснование преимуществ Mathcad над Excel.

    курсовая работа [507,0 K], добавлен 15.12.2014

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

    контрольная работа [479,8 K], добавлен 18.09.2014

  • Web-браузери як програмне забезпечення для комп'ютера або іншого електронного пристрою. Загальна характеристика мови програмування Delphi, розгляд функцій. Аналіз етапів розробки браузера на основі Internet Explorer, знайомство з основаними особливостями.

    дипломная работа [2,1 M], добавлен 06.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.