Сторінка
2
Коли Е мінімізоване, то виходять потрібні виходи. Перший вираз в дужках мінімізується, коли двійкове число, утворене виходами, найбільш близько (в середньоквадратичному значенні) до аналогової величини входу X. Другий вираз в дужках звертається в нуль, коли всі виходи рівні 1 або 0, тим самим накладаючи обмеження, що виходи приймають тільки двійкові значення.
Якщо рівняння (2) перегрупувати, тоді отримаємо наступний вираз для ваги:
Wij = -2i+j, yi = 2i,(3)
де wij - провідність (величина, зворотна опору) від виходу нейрона i до входу нейрона j (рівна також провідність від виходу нейрона j до входу нейрона i;yi - провідність від входу Х до входу нейрона i.
Щоб отримати схему з прийнятними значеннями опорів і споживаної потужності, все ваги повинні бути промасштабовані.
Рис. 3 Ідеальна характеристика чотирибітового аналогово-цифрового перетворювача
Ідеальна вихідна характеристика, зображена на рис. 6.5, буде реалізована лише в тому випадку, якщо входи встановлюються в нуль перед виконанням перетворення. Якщо цього не робити, мережа може попасти в локальний мінімум енергії і дати невірний вихід.
Задача комівояжера є оптимізаційною задачею, що часто виникає на практиці. Вона може бути сформульована таким чином: для деякої групи міст із заданими відстанями між ними потрібно знайти найкоротший маршрут з відвідуванням кожного міста один раз і з поверненням в початкову точку. Було доведено, що ця задача належить великої множини задач, званих "NP-повними" (недетерміновано поліноміальними) . Для NP-повних задач не відомо кращого методу рішення, ніж повний перебір всіх можливих варіантів, і, на думку більшості математиків, малоймовірно, щоб кращий метод був колись знайдений. Оскільки такий повний пошук практично нездійсненний для великого числа міст, то евристичні методи використовуються для знаходження прийнятних, хоч і неоптимальних рішень.
Описане в роботі рішення, засноване на мережах із зворотними зв'язками, є типовим в цьому відношенні. Все ж відповідь виходить так швидко, що в певних випадках метод може виявитися корисним.
Допустимо, що міста, які необхідно відвідати, помічені буквами А, В, С і D, а відстані між парами міст є dab, dbc і т.д.
Рішенням є впорядкована множина з n міст. Задача складається у відображенні його в обчислювальну мережу з використанням нейронів в режимі з великою крутизною характеристики ( наближається до нескінченності). Кожне місто представлене рядком з n нейронів. Вихід одного і тільки одного нейрона з них рівний одиниці (всі інші рівні нулю). Цей рівний одиниці вихід нейрона показує порядковий номер, в якому дане місто відвідується при обході. На рис. 6.6 показаний випадок, коли місто С відвідується першим, місто А - другим, місто D - третім і місто В - четвертим. Для такого представлення потрібно n2 нейронів - число, яке швидко росте із збільшенням числа міст. Довжина такого маршруту була б рівна dca + dad + ddb + dbc. Оскільки кожне місто відвідується тільки один раз і в кожний момент відвідується лише одне місто, то в кожному рядку і в кожному стовпці є по одній одиниці. Для задачі з n містами всього є n! різних маршрутів обходу. Якщо n = 60, то є 6934155х1078 можливих маршрутів. Якщо брати до уваги, що в нашій галактиці (Чумацькому Шляху) є лише 1011 зірок, то стане ясним, що повний перебір всіх можливих маршрутів для 1000 міст навіть на самому швидкому в світі комп'ютері займе час, порівнянний з геологічною епохою.
Продемонструємо тепер, як сконструювати мережу для розв'язання цієї NP-повної проблеми. Кожний нейрон забезпечений двома індексами, які відповідають місту і порядковому номеру його відвідування в маршруті. Наприклад, OUTxj = 1 показує, що місто х було j-им по порядку містом маршруту.
Функція енергії повинна задовольняти двом вимогам: по-перше, повинна бути малою тільки для тих рішень, які мають по одній одиниці в кожному рядку і в кожному стовпці; по-друге, повинна надавати перевагу рішенням з короткою довжиною маршруту.
Перша вимога задовольняється введенням наступної, що складається з трьох сум, функції енергії:
,(4)
де А, В і С - деякі константи. Цим досягається виконання наступних умов:
1. Перша потрійна сума рівна нулю в тому і тільки в тому випадку, якщо кожний рядок (місто) містить не більше однієї одиниці.
2. Друга потрійна сума рівна нулю в тому і тільки в тому випадку, якщо кожний стовпець (порядковий номер відвідування) містить не більше однієї одиниці.
3. Третя сума рівна нулю в тому і тільки в тому випадку, якщо матриця містить рівне n одиниць.
Місто |
Порядок відвідування | |||
1 |
2 |
3 |
4 | |
A |
0 |
1 |
0 |
0 |
B |
0 |
0 |
0 |
1 |
C |
1 |
0 |
0 |
0 |
D |
0 |
0 |
1 |
0 |
Рис. 4. Маршрут комівояжера
Друга вимога - перевага коротким маршрутам - задовольняється за допомогою додавання наступного члена до функції енергії:
, (5)
Помітимо, що цей член являє собою довжину будь-якого припустимого маршруту. Для зручності індекси визначаються по модулі n, тобто OUTn+j = OUTj, a D - деяка константа.
При досить великих значеннях A, B і C низькоенергетичні стани будуть представляти припустимі маршрути, а великі значення D гарантують, що буде знайдений короткий маршрут.
Тепер задамо значення ваг, тобто встановимо відповідність між членами у функції енергії і членами загальної форми).
Одержуємо
wxi,yi =
-Adxy(1 - dij) (не допускає більш однієї одиниці в рядку)
-B dij(1 - dxy) (не допускає більш однієї одиниці в стовпці)
-С (глобальне обмеження)
-Ddxy(dj,i+1 + dj,і-1) (член, відповідальний за довжину циклу),
де dij = 1, якщо i = j, у противному випадку dij = 0. Крім того, кожен нейрон має зміщену вагу хі, з'єднаний з +1 і рівний Сn.
У роботі [8] повідомляється про експеримент, у якому задача комівояжера була вирішена для 10 міст. У цьому випадку збуджуюча функція дорівнює
OUT = Ѕ [1 + th(NET/U0)].
Як показали результати, 16 з 20 прогонів зійшлися до припустимого маршруту і близько 50% рішень виявилися найкоротшими маршрутами, як це було встановлено за допомогою повного перебору. Цей результат стане більш вражаючим, якщо усвідомити, що є 181440 припустимих маршрутів.