- •Передмова
- •1. Модель дохідності переробного плодово-овочевого підприємства
- •2. Модель дотацій при кредитуванні аграрного сектору
- •3. Модель державного боргу
- •4. Прогнозна модель дохідності пасажирських перевезень
- •5. Модель ціноутворення цукру
- •6. Модель валютної паніки
- •7. Модель фінансування інвестиційно-інноваційних проектів підприємства
- •8. Моделювання ціни міського житла
- •9. Модель оптимізації цін молочних продуктів
- •10. Модель оперативного планування роботи установи поштового зв’язку
- •11. Моделювання показників економічної діяльності спеціалізованого гірничого підприємства
- •12. Модель антикризового управління підприємством
- •13. Моделювання поступлень за спожитий газ
- •14. Моделювання тендерного проекту
- •15. Модель ціноутворення рекламного продуку
- •16. Моделювання перехідної сильно тонізованої економіки
- •17. Моделювання затрат на утилізацію побутових решток
- •18. Прогнозування надходження пенсійних коштів
- •19. Моделювання циклічності доходів туристичної фірми
- •20. Моделювання доходу від послуг зв’язку
- •21. Модель оптимізації розкладу роботи машиністів локомотивного депо
- •22. Побудова моделі вексельних операцій
- •23. Модель визначення верхньої межі овердрафту
21. Модель оптимізації розкладу роботи машиністів локомотивного депо
Співавтор: Радчук Іванна Миколаївна
Зроблено спробу звести задачу оптимізації розкладу роботи машиністів локомотивного депо до задачі про бродячого торговція з подальшим застосуванням для її розвязку методу генеричних алгоритмів.
Поставлено задачу – розробити математичну модель оптимізації графіку роботи машиністів (локомотивних бригад) локомотивного депо з урахуванням наявного графіку руху потягів, яка б довела оптимальну завантаженість машиністів у відповідності з нормативами робочого часу та була б рівномірною на тривалих проміжках часу – відрізках планування.
Розробка такої моделі дає інструмент підтримки прийняття рішень при проектуванні графіків роботи машиністів локомотивного депо.
Нижче викладений математичний опис такої моделі. Спершу розглянемо концептуальну основу моделі.
Робота окремого локомотивного депо не пов'язана з плануванням руху потягів, створенням графіку їх слідування станціями. Це завдання стосується залізниці загалом. Натомість для окремого локомотивного депо важливо так розпорядитися наявними локомотивами та локомотивними бригадами, щоб виконати заздалегідь задані рейси – перевезення потягів за вказаним графіком – в повному обсязі, вчасно та з найменшими витратами ресурсів.
Управління локомотивними тяговими ресурсами – задача, хоч і актуальна, але вона розв'язується лише при купівлі - списанні окремого локомотива, при плануванні технічного обслуговування локомотивів, тому її розв'язання стосується окремих моментів роботи залізниці. Тим часом – управління кадровим складом – локомотивними бригадами потребує неперервного оперативного планування, яка поєднана з роботою диспетчерських служб управління технічними засобами транспортування. Тому для окремого локомотивного депо особливо актуальною є задача автоматизованого проектування графіків роботи локомотивних бригад при відносно визначених, сталих графіків використання локомотивів. Далі продовжимо розгляд власне графіків роботи локомотивних бригад.
Завдання окремої локомотивної бригади полягає в тому, щоб переміщаючись окремою віткою, пройти, ведучи локомотив з потягом, вказані станції у визначений час, досягнути найбільш віддаленої станції, і повертаючись, ведучи локомотив з потягом, також пройти визначені станції у заданий час. На кожній з станцій локомотив деякий час стоїть. Рухаючись до найбільш віддаленої станції, локомотивна бригада віддаляється від своєї станції. Найвіддаленішу станцію називають станцією повернення. Рухаючись із станції повернення, локомотивна бригада повертається до своєї станції.
Після повернення з рейсу локомотивна бригада деякий час відпочиває, потім знову повторює рейс.
Рейси відбуваються різними вітками. Рух до станції повернення і від неї необов'язково проходить тими самими шляхами, тобто можливе переміщення «кількісними» траєкторіями.
Рейс обов'язково починається з своєї станції та закінчується на своїй станції.
Рис. 21.1. Схематичне зображення залізничної карти з рейсами локомотивних бригад.
На рисунку 21.1 схематично зображено основні моменти модельованого явища – наявність транспортної колійної мережі, станції, сполучених цією мережею, станції повернення, маршруту руху цими станціями.
За
таких умов елементом моделювання є рейс
– який має наступні складові елементи:
номер рейсу N;
кількість станцій, яким прослідує
локомотив m;
назви станції
;
час і дату прибуття
на і-ту станцію, час і дата відправлення
з
і
– тої станції.
При такій ідеалізації опускається з уваги, що локомотивна бригада рухається з окремим тяговим локомотивом, перевозить потяг, складений з вагонів. Структура вантажо- чи пасажиро- потягу, відноситься до явищ ширшого масштабу і в цій моделі не береться до уваги.
Визначення даних окремого рейсу також стосується ширшої задачі, тому в подальшому вважатимемо, що множина рейсів R є заздалегідь задане і для простоти припустимо, що рейси повторюються кожної доби. Нехай протягом доби відбувається М рейсів. Тоді роботу відділку залізниці описує множина рейсів
(21.1)
Всі елементи множини рейсів (21.1) відомі із зазделегіть заданого розкладу руху потягів.
Нехай n – кількість локомотивних бригад депо, L – кількість віток, якими прлягають рейки. На рис. 21.1 показано дві вітки.
Завдання
проектування графіку роботи бригад
локомотивного депо полягає в такому
виборі окремих їх кадрових складів, при
якому було б збережене безумовне
слідування локомотивів згідно маршрутів,
заданих в умові (21.1 ) та виконувалися
наступні вимоги: тривалість роботи всіх
локомотивних бригад протягом місяця
наближаються до нормативної тривалості
робочого часу
;
проміжки часу між рейсами, в які вирушає
локомотивна бригада були б приблизно
рівними протягом періоду планування.
Зауважимо, що на основі відомої тривалості кожного рейсу (21.1 ) та відомої кількості бригад n неважко оцінити загальний розхід робочого часу у депо в цілому. Вважатимемо, що ця задача розв'язана під час планування штатного розпису, тому надалі не шукатимемо оптимальної кількості локомотивних бригад через нормування тривалості їх робочого часу, а визначатимемо лише графік роботи, при якому всі бригади завантажені приблизно рівномірно.
Отже,
поставлена задача моделювання розподілу
завантаженості машиністів звелася до
задачі вибору дискретних альтернативів
між рейсами
,
що відповідають j
-му маршруту в k
-тий дннь,
де К
– кількість днів планування графіку.
Загальна кількість рейсів, взятих до
уваги при плануванні графіку дорівнює
М К.
Кількість можливих альтернатив дорівнює кількості комбінацій з М∙К по n. Оскільки ці величини мають значення відповідного порядку десятки тисяч і сотень, тому методом перебору розв'язати цю задачу неможливо.
Тому для оптимального розподілу завантаження бригад по рейсах (21.1) необхідно сконструювати асимптотично птимальний алгоритм, який зберігає поліноміально – зростаючу тривалість обчислень.
Крім того, зауважимо, що рух бригад окремими рейсами приносить їм неоднакову зарплату. Тому в поставлену задачу доцільно включити також такий критерій оптимальності – приблизно рівну величину заробітної плати.
Розглянемо рух окремого локомотива з потягом за одним рейсом в координатній площині, вздовж осі якої відкладено час t та відстань x від своєї станції до місця перебування локомотива. Рух локомотива відображений у формі «світової лінії» зображено схематично на рис.21.2
Рис. 21.2. Схематичне зображення руху локомотива.
Похилі
ділянки графіка на рис. 21.2 відображають
рух локомотива, горизонтальні – його
перебування на станціях. Тобто один
окремий рейс ( 21.1) графічно зображений
однією складною трапецією. Для руху за
графіком необхідно дотримуватися часу
проходження всіх проміжних станцій.
Проте, для планування роботи локомотивних
бригад достатньо брати до уваги лише
початковий час відправки з головної
станції
та
кінцевий час прибуття (повернення) на
головну станцію
.
Одна і та m бригада неможе обслуговувати рейси, якщо вони перериваються в часі. Умова хронологічної допустимості рейсу R відносно підмножини рейсів R*
(21.2)
Відображено співвідношенням
(21.3)
Умовна (21.3) означає, що рейс R за часом не перекривається з жодним з рейсів R*. Функція D(R, R*), згідно прийнятих позначень вказує кількість відрізків часу множини R*, з якими перекриваються тривалість рейсу R. Якщо D(R, R*) = 0, тоді рейс R є допустимим відносно рейсів R*.
За прийнятих позначень рух локомотивів відображений сотнями трапецевидних графіків, подібних до тих, що забражено на рис. 1. Задача оптимального управління зводиться до розфарбування цих графіків кількістю кольорів, яка дорівнює кількості локомотивних бригад з додатковими умовами щодо оптимальності, поставленими в задачі та щодо фізичної реалізовоності (21.3).
Для розв'язання поставленої задачі доцільно застосовувати алгоритм стохастичної оптимізації, побудований за методом генетичних алгоритмів.
Для побудови моделі стохастичної асимптотичної оптимізації за методом генетичних алгоритмів необхідно виконати наступні послідовні дії, – визначити особину популяції – метод зіставлення всіх бригад з множиною рейсів; згенерувати початкову популяцію (декілька випадково вибраних зіставлень всіх бригад з множиною рейсів); сконструювати хромосому – код, який однозначно відтворює ефективність особини за критеріями оптимізації; сконструювати функцію оптимізації, яка відповідає заданим критеріям; розробити процедуру схрещування особин; розробити процедуру вибору успішних особин для схрещування (тут успішна особина – графік всіх рейсів, близький до заданих критеріїв оптимальності). Розглянемо ці ланки побудови моделі детальніше.
Особина – це окремий розв'язок задачі вибору дискретних альтернатив, в якому М∙К рейсів розподілені між n бригадами з дотриманням умов часової сумісності (21.3).
Для
генерування початкової популяції
необхідно визначити Р – кількість
особин в популяції, і згенерувати Р
особин методом перебору рейсів за часом
відправлення
для n
бригад, посортованих Р разів у випадковому
порядку. Детальніше цей алгоритм описано
нижче.
Алгоритм 21.1 – Генерування початкової популяції.
1. Визначити число особин популяції Р .
2. Відсортувати бригади у випадковому порядку.
3. В
порядку випадкового сортування номерів
бригад вибирати рейси з загальної їх
множини
і
отримати n
наборів рейсів
,
для всіх локомотивних бригад, де
-
непротиречивий за часом набір рейсів
для q
– тої бригади.
4. Повторивши п.2 – 3 Р разів, отримати Р особин :
(21.4)
Хромосома
має однозначно відображати особину. В
нашому випадку R*
- список номерів рейсів
М∙К
– також список номерів рейсів. Отже,
хромосома має бути записана як
послідовність цілих чисел, які розбиті
на групи і в групі не повторюються.
Схематично хромосому зображено на рис.
21.2
Рис. 21.2. Структура хромосоми для дискретного зіставлення n бригад з всіма рейсами за К днів ( по М рейсів на добу ).
Структура хромосоми побудовано на основі максимальної економії коду, який дозволяє уникнути надлишковості в кодовому відображенні номерів маршрутів.
Зі структури хромосоми, зображеної на рисунку видно, що швидкість алгоритму суттєво залежить від кількості днів планування графіків роботи. Це дозволяє припускати, що оптимальним з точки зору економії обчислювальних ресурсів буде такий план, при якому кількість рейсів набагато перевищує кількість бригад.
Нехай відома процедура створення хромосоми X на основі однієї особини – непротиречивого розкладу – розподілу рейсів між n бригадами на деякому відрізку планування :
. (21.5)
де X – відома функція, що конструює хромосому, зображену на рисунку 21.2.
Критерій ефективності особини поєднує дві вимоги – близкість тривалості робочого часу бригади до нормативного T і приблизно рівну тривалість проміжків часу між рейсами, у якій їде бригада. Запишемо критерій ефективності як лінійну комбінацію:
(21.6)
де
-
деякі коефіцієнти, що відображають
пріоритетні критерії в ефективності,
-
відповідно функції ефективності для
нормативу часу та ефективності.
Ефективність графіку з точки зору нормативу часу залежить від різниці між тривалістю всіх рейсів та нормативом трудового часу
(21.7)
де Δti – тривалість одного рейсу :
i=1,…,K∙M. (21.8)
В загальному випадку критерій ефективності є функцією аргументу (21.7):
(21.9)
Зокрема,
доцільно опробувати в якості
лінійну та квадратичну функцію з різною
поведінкою при зміні знаку
Для оцінки рівномірності маршрутів спершу враховуємо тривалість вільного часу бригади між рейсами:
,
(21.10)
Середня тривалість вільного часу
(21.11)
Дисперсія (розкид) тривалості вільного часу :
(21.12)
Функція ефективності, що визначає рівномірність завантаження
.
(21.13)
Зокрема, доцільно покласти:
(21.14)
Для вибору переможних альтернатив застосуємо метод рулетки. Нехай на попередньому етапі генерування популяції утворено Р особин. Вирахуємо для них абсолютну ефективність
(21.15)
і відносну ефективність :
(21.16)
Далі
згенеруємо випадкове число
рівномірно розподілене на відрізку
[0,1]. Виберемо альтернативу q
з умови
(21.17)
яка відповідає «правилу рулетки».
Для генерування нової особини необхідно двічі повторити вибір успішної альтернативи за умовою (21.17).
Наступна операція генетичного алгоритму – схрещування. Щоб її виконати необхідно визначити бітову довжину хромосоми X, вирахованої за (21.5).
Нехай
L = L (X) (21.18)
бітова
довжина хромосоми. Згенерувавши випадкове
число
,
рівномірно розподілене на [0, L ] знаходимо
точку розриву хромосоми. Далі на цій
основі створюємо дві нові особини і
одночасно видаляємо дві найменш успішні
особини згідно критерію (21.15).
Під час мутації при схрещуванні в нову хромосому додатково вводиться інверсія одного коду.
Особливість розв'язаної задачі в тому, що знайдена послідовність рейсів має бути хронологічно сумісна. Тому операція схрещування
(21.19)
і операція збереження
(21.20
)
мають бути додатково перевірені, чи їхній результат повернув хронологічно – сумісну альтернативу. Якщо ці операції необхідно повторювати до тих пір, поки не буде отриманий хронологічно – сумісний вибір рейсів.
Після декілька-кратних повторень описаного вище алгоритму він асимптотично збігається до приблизно оптимальної альтернативи-графіку роботи усіх бригад, який задовільняє визначеним критеріям ефективності.
Для вибору шуканого оптимального розв'язку достатньо взяти одну з особин кінцевої популяції.
Зауважимо, що для розробки описаного вище алгоритму також потрібна функція визначення особини за її хромосомою:
. (21.21)
Оскільки
послідовність рейсів
та хромосома Х
є одним і тим же числом, яке записане у
різних форматах – десятковому та
двійковому, тому розробка функції q
(
х ) не становить суттєвих
обчислювальних проблем.
Описана модель дозволяє знайти приблизно оптимальний графік завантаженості роботи машиністів локомотивного депо, який відповідає двом критеріям – рівномірному розподілу часу між бригадами та рівномірному розподілу робочого часу однієї бригади протягом планового періоду.
Розглянемо окремі алгоритми, що становлять фрагменти загальної оптимізаційної моделі, побудованої за методом генетичних алгоритмів.
Алгоритм 21.1 – Встановлення початкових даних генетичного алгоритму.
1. Визначити кількість локомотивних бригад.
2. Визначити тривалість планування – кількість днів К.
3. Отримати розклад щоденних рейсів (21.1), кількістю М за одну добу.
4. Вибрати значення параметрів в функціях ефективності α, β в (21.6).
5. Вибрати алебраїчний вираз функцій ефективності згідно (21.9) і (21.14).
6. Вибрати кількість особин в початковій популяції Р.
7.
Створити множину рейсів (21.1) на К
днів: Rjk
.
Для підготовки процедури стохастичної оптимізації необхідно згенерувати початкову популяцію особин.
Перед початком цього алгоритму визначають кількість бригад n, кількість днів планування К, кількість рейсів М. К та повний їх опис згідно (21.1), (21.21). Особини популяції мають створювати хронологічно непротирічливий набір R*р, р = 1,..., n, елементи якого відповідають умові (21.3), тобто – одна бригада одночасно працює не більше ніж на одному рейсі.
Алгоритм 21.2 – Генерування початкової популяції.
1. Вісортувати список локомотивних бригад у випадковому порядку.
2. Вибрати бригаду і = 1.
3.
Вибрати зі списку рейсів, відсортованому
за часом відправлення (
)
,
j,
=1,...,
М.К рейс j
= 1 і зіставити j-тий
рейс з і-тою
бригадою.
4. Якщо j-тий рейс Rj утворює з і-тою бригадою протеричливий вибір, при якому порушується умова (21.3) пропустити j-тий рейс і вибрати для і-тої бригади наступний з рейсів (21.21), які залишилися не вибрані поки умова (21.3) не стане дійсною.
5. Повторити п. n для всіх бригад.
6. Повторити п. 2-5 для всіх не вибраних рейсів.
7. Повторити п. 1-6 Р разів для всіх особин початкової популяції.
В результаті роботи алгоритму 21.2 отримано множину Р хронологічно непротеречивих особин
,
. (21.22).
Далі опишемо алгоритми вибору з популяції (21.22) успішну особину (домінуючу альтернативу).
Алгоритм 21.3 – Вибір особини методом рулетки.
1. Задану множину непротеричивих альтернатив (21.22).
2. Визначити для всіх особин (альтернатив) абсолютну ефективність за формулами (21.7 – 9), (21.10 – 14), (21.6), (21.15).
3. Визначити для всіх альтернатив питому ефективність за формулою (21.16).
4. Згенерувати рівномірно розподілене на [0,1] випадкове число .
5. Вибрати q-ту особину з популяції (21.22) за умовою (21.17).
6. В результаті роботи алгоритму 21.3 з популяції особин (21.22) буду вибрана одна альтернатива, яка статистично належить до ефективніших в порівнянні з іншими.
Наступною операцією генетичного алгоритму є схрещування двох особин та генерування двох нових особин.
Алгоритм 21.4 – Генерування двух нових особин.
1. Із
заданої популяції (21.22) вибрати одну
першу особину
за алгоритмом 21.3.
2. Із
заданої популяції (21.22) вибрати одну
другу особину
за алгоритмом 21.3.
3. Визначити бітову довжину L хромосом (21.5), з структурою, зображеною на рис. 21.2.
4. Згенерувати випадкове число , рівномірно розподілене [0, L].
5.
Розділити хромосоми
на
η-тому
біті по дві частини і ліву частину
хромосоми
зчепити з правою частиною хромосоми Х2
отримавши нову першу хромосому
;
праву частину хромосоми
зчепити з лівою частиною хромосоми
,
отримавши нову другу хромосому
.
6.
Перевірити чи нові особини
утворюють непротеречиву множину згідно
з (21.3) з існуючою популяцєю (21.22). Якщо
так повторювати п. 5-6 до тих пір, поки
нові особини не будуть задовільняти
умову непротеречивих (21.3).
7. Оскількі швидкість роботи еврестичного алгоритму суттево залежить від кількості популяції Р, тому для продовження пошуку необідно виділити з популяції найменш ефективні особи.
Алгоритм 21.5 – Видалення з популяції неефективних особин.
1.
Вирахувати для всіх Р
особин популяції абсолютну ефективність
згідно п. 2 алгоритму 21.3.
2. Знайти величину обеонену до абсолютної ефективності
,
(21.23).
3. Знайти питому обернену ефективність:
(21.24)
4. Згенерувати випадкове число , рівномірно розподілене на відрізку [0, 1].
5. Вибрати найменш успішну альтернативу з умови
(21.25)
6. Виділити з популяції альтернативу zq, зменшивши кількість особин Р на одиницю.
7. Використання алгоритмів 21.4 і 21.5 дозволяють поступово замінювати найменш ефективні альтернативип на нові, серед яких трапляються більш успішні.
Алгоритм 21.6. Внесення збурень в хромосому під час схрещування.
1. Отримати бітову довжину хромосоми L за (21.5).
2. Згенерувати випадкове число η, рівномірно розподілене на [0,L].
3. Інвертуватиь η-тий біт хромосоми Х.
4.
Перевірити, чи особина R=R(X)
з інвертованим бітом відповідає умові
непротеречивості (21.3), якщо ні – повторити
п.2-3, поки не буде отримано непротиречивий
вибір
.
5. Описаних вище алгоритмів достатньо для генерування загальної процедури пошуку оптимального графіку за методом генетичних алгоритмів.
Алгоритм 21.7. Асимптотичний вибір оптимального графіку роботи локомотивних бригад.
1. Встановити початкове значення алгоритму оптимального вибору за алгоритмом 21.1.
2. Згенерувати початкову популяцію особин за алгоритмом 21.2.
3. Вибрати дві особини для схрещування методом рулетки за алгоритмом 21.3.
4. Згенерувати дві нові особини на основі раніше вибраних ( 4.3) успішних особин за алгоритмом 21.4.
5. Якщо виконано заздалегідь задачу, кількість кроків між збуреннями хромосоми особини,внести в хромосому однієї з нових особин збурення згідно алгоритму 21.6.
6. Видалити з популяції дві найменш ефективні особини за алгоритмом 21.5.
7. Повторити п. 3 – 6 достатню кількість разів ( поки популяція не наблизиться до асимптотично оптимального стану).
Описаний вище алгоритм 21.7 дає метод пошуку оптимального графіку роботи машиністів локомотивного депо протягом декількох днів (місяців) згідно з двома критеріями – рівномірністю розподілу завантаженості між бригадами та рівномірністю розподілу робочого часу кожної з бригад протягом планового періоду.
Побудовано концептуальну модель роботи локомотивних бригад, яка зводиться до задачі оптимального вибору дискретних альтернативів між заданою кількістю локомотивних бригад та заданим розкладом відправлення та повернення локомотивів.
Показано, що розв'язання цієї задачі зводиться до методу оптимального розфарбування специфічного графа, утвореного світовими лініями руху окремих локомотивів з бригадами.
Для розв'язання цієї задачі вибрано асимптотично оптимальний алгоритм евристичного стахостичного пошуку за методом генетичних алгоритмів.
Особиною генетичного алгоритму взято хронологічно – сумісний розподіл рейсів між бригадами протягом планового періоду.
Початкову популяцію особин згенеровано методом простого перебору бригад та рейсів впорядкованих за часом відправлення з урахуванням хронологічної сумісності.
Критерій ефективності особин складено з лінійної комбінації двох критеріїв – рівномірності завантаженності всіх бригад та рівномірності проміжків часу між рейсами для кожної з бригад.
За критерій рівномірності завантаження бригад взято різницю між робочим часом бригади згідно згенерованого графіку роботи та частково го робочого часу, що припадає на одну бригаду від загального часу руху локомотивів згідно заданого графіку.
За критерій рівномірності розподілу робочого часу протягом планового періоду для окремої бригади взято дисперсію випадкової величини – тривалості вільного часу між рейсами бригади.
Для вибору успішних особин використано метод рулетки.Для виділення у позиції найменш ефективних особин застосовано метод рулетки для величин, обернених до ефективності особини.
Хромосому особини складають з поєднання бітових кодів номерів рейсів різної розподіленості - від широкої для першого погляду до одиничної для останнього, які створюються для всіх бригад. Завдяки цьому досягнуто суттєвого зниження надлишковості коду хромосоми.
Розроблений алгоритм дає практично – придатний, високоефективний метод розв'язання однієї з найскладніших задач управління на залізничному транспорті – розроблення графіків роботи локомотивних бригад.
