- •Застосування ройових алгоритмів для розв’язування екстремальних задач
- •Застосування ройових алгоритмів для розв’язування екстремальних задач Клименко Кирил Володимирович
- •Розділ 1. Загальна характеристика ройових алгоритмів та їх застосування
- •Загальна характеристика ройових алгоритмів.
- •Огляд ройових алгоритмів
- •1.3. Застосування ройових алгоритмів до розв’язування
- •Оптимальна міжгалузева балансова модель
- •Розділ 2. Канонічний ройовий алгоритм та його модифікації
- •2.1. Канонічний ройовий алгоритм для задач неперервної оптимізації
1.3. Застосування ройових алгоритмів до розв’язування
задач оптимізації
Ройові алгоритми, як вже було сказано, призначені для розв’язку задач оптимізації, або задач пошуку екстремуму(мінімального чи максимального значення). Одними з таких задач є задачі міжгалузевого балансу(МГБ).
МГБ в економіці – це метод аналізу взаємозв’язків між різними галузями (секторами) економічної системи. При виробництві продукції (товарів, виконанні робіт та надання послуг) в кожній галузі споживається продукція, що виробляється у своїй та всіх інших галузях економіки. Це означає, що кожна галузь виступає в системі міжгалузевих відношень одночасно як виробник, так і як споживач.
Мета міжгалузевого балансу – визначити, скільки продукції повинна виробити кожна галузь для того, щоб задовольнити всі потреби економічної системи в її продукції, тобто задовольнити як внутрішні потреби всіх галузей, так і потреби зовнішнього середовища (кінцевий попит: задоволення особистих потреб людей, суспільних потреб, накопичення продукції, експорт продукції).
Сутність принципу балансу – все, що випускається (вал), дорівнює сумі витрат продукції на внутрішні потреби галузей економіки і випуск продукції для зовнішніх потреб (експорт):
ВАЛ=ВИТРАТИ (ВНУТРІШНІ ПОТРЕБИ)+ВИПУСК (ЕКСПОРТ).
Задача оптимізаційної ж задачі МГБ полягає у тому, щоб знайти вектор валової продукції X*, при якому досягається максимальний прибуток від накопиченої продукції Y* при відомій виробничій потужності галузей
Математична модель МГБ
Нехай в нас є n галузей, що виробляють продукцію, тоді A={ai,j} – матриця, що показує частку продукції, яка виробляється i-ю галуззю, що споживається j-ю галуззю i,j∈[1;n], X=(x1,x2,…,xn)T – вектор валової продукції, що показує загальну кількість виробленої продукції j-ї галузі, Y=(y1,y2,…,yn)T – вектор, що визначає замовлення на випуск готової продукції i-ю галуззю, що йде на експорт.
Класична балансова задача ставить за мету визначити валовий випуск продукції всіх галузей (вектор Х), необхідний для:
задоволення внутрішніх потреб, що визначаються діючою технологією і, відповідно, матрицею А;
забезпечення замовлення на готову продукцію (вектор Y).
Витрати на внутрішні потреби обчислюються як добуток матриці А на шуканий вектор Х:
випуск готової продукції визначається заданим вектором Y, тоді балансова модель визначається системою лінійних рівнянь:
в матричному вигляді
, (1.1)
або у розгорнутому вигляді
(1.2)
Таким чином, отримуємо, що X=(E-A)-1Y, де E – одинична матриця (n на n), усі елементи якої, крім головної діагоналі, нулі, а на головній діагоналі одиниці.
Оптимальна міжгалузева балансова модель
На відміну від класичної задачі МГБ задача про оптимальну міжгалузеву балансову модель полягає у тому, щоб знайти вектор валової продукції X*, при якому досягається максимальний прибуток від накопиченої продукції Y* при відомій виробничій потужності галузей:
,
(1.3)
,
(1.4)
,
(1.5)
де
T–
вектор ціни за одиницю продукції кожного
виду, що йде на експорт (продаж),
T
– вектор виробничої потужності галузей,
при цьому
.
Розглянемо приклад задачі оптимального МГБ та його рішення в комп’ютерних системах.
На відміну від класичної задачі МГБ задача про оптимальну міжгалузеву балансову модель полягає у тому, щоб знайти вектор валової продукції X*, при якому досягається максимальний прибуток від накопиченої продукції Y* при відомій виробничій потужності галузей:
, (1.3)
, (1.4)
, (1.5)
де T– вектор ціни за одиницю продукції кожного виду, що йде на експорт (продаж),
T – вектор виробничої потужності галузей, при цьому .
Приклад 1.2. Нехай виробництво підприємства складається з 5-ти галузей виробництва металургія – М, енергетика – Е, сільське господарство – С, харчова промисловість – Х, легка промисловість – Л. Задана технологічна матриця А (в економіці її називають матрицею прямих витрат), потужність кожної галузі визначається вектором D=(300, 500, 400, 440, 300)T, а ціна за одиницю продукції (в у.о.), що йде на продаж, визначається вектором C=(100, 150, 300, 200, 100)T. Знайти Вектор валової продукції X*, при якому досягається максимальний прибуток
від накопиченої продукції Y*,
Рис 1.1
Для демонстрації умови і розв’язку задачі представлена таблиця з Excel, де показані матриці у виді таблиць і кінцевий прибуток при такому валовому виробництві. Початкова матриця A представлена найпершою.
Рішення задачі будемо виконувати у программі Matlab за допомогою інструмента gatool(Genetic algorithm tool). Спочатку описуємо функцію(рис. 1.2), проте використовуємо від’ємні значення, оскільки інструмент виконує завдання мінімізації, тому проводимо зворотній процес.
Рис. 1.2
Потім
відкриваємо gatool,
вводимо характеристики нашого алгоритму,
описуємо вхідні дані: описуємо матрицю
A,
що є
результатом (E-A),
матрицю b,
яка
показує обмеження випуску певного виду
продукції.
Запускаємо програму і отримуємо
результат:
Як бачимо, що даний алгоритм знайшов приблизно точне значення прибутку і продукції кожної галузі, проте точний результат досягти такими алгоритмами майже неможливо
