НОУ ІНТУЇТ | лекція | Обчислювальні системи нетрадиційної архітектури

Асоціативні обчислення і ВС

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

Асоціативна пам'ять (АП) допускає звернення за даними на основі їх ознаки або ключового слова: імені, набору характеристик, завдання діапазону і т.д.

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

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

Оскільки асоціативні ВС характеризуються тільки активним використанням АП в обчисленнях, то в цілому ці ВС мають звичайними властивостями, можуть виробляти складні перетворення даних і належати типу ОКМД (STARAN, PEPE) або МКМД. Для паралельного обігу (для прискорення пошуку) АП розбита на модулі (32 модуля - в STARAN).

Коли в 1980 р був проголошений так званий "Японський виклик" про побудову ВС надвисокої продуктивності, то одним з пунктів була вказана необхідність найширшого використання принципів самообучающихся систем - систем, здатних накопичувати досвід і видавати результат рішення задачі без ліку самого завдання. Це означає, що застосування асоціативних ВС невіддільне від проблеми штучного інтелекту.

Припустимо, ми користуємося значеннями функції Припустимо, ми користуємося значеннями функції . Ми можемо запрограмувати рахунок цієї функції на РС, і кожен раз, коли нам треба, задаємо x і запускаємо програму, користуючись прекрасним сучасним сервісом.

Припустимо, та ж функція складна, а її рахунок - важливий елемент алгоритму управління в реальному часі. Рішення приходить відразу: задамо цю функцію таблично, а для прискорення вибірки включимо в ВС асоціативну пам'ять. Передбачимо на ній операції, що дозволяють виробляти найпростішу інтерполяцію. А саме, для даного значення x знайти найбільший x1 <x і найменший x2> = x. Для них вибрати f (x1) і f (x2). Тоді замість рахунку точного значення f (x) процесору залишається зробити хоча б лінійну інтерполяцію

треба тільки бути впевненим в досягненні потрібної точності.

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

Найпростіша задача: як ми автоматично визначаємо, на скільки треба повернути рульове колесо, щоб залишитися на дорозі? Адже перший раз ми в'їжджали в бордюр! Значить, якась таблиця поступово склалася і зафіксувалася в нашій свідомості.

Мабуть, найбільш повно автоматично і з найбільшою практичністю рішення задачі самонавчання представлено в артилерії, точніше - в правилах стрільби.

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

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

Отже, нехай вихідна ситуація характеризується вектором X = {x1, ..., xm}. За значенням X, тобто за його компонентами, приймається рішення Y, також представляє собою вектор, Y = {y1, ..., yn}.

(Значення X і Y можуть визначатися цілими і речовими, булеві. Спочатку вони можуть мати нечислову природу: "темніше - світліше", "правіше - лівіше", "лагідніше - суворіше" і т.д. Ми не будемо розглядати проблему чисельної оцінки якісних або емоційних категорій.)

Припустимо, для будь-яких двох значень X1 і X2, а також Y1 і Y2 визначено ставлення xi (1) <= xi (2) (або навпаки), yj (1) <= yj (2) (або навпаки).

Структура асоціативної пам'яті і загальний вигляд її обробки показані на малюнку 9.5 .


Мал.9.5.

Структура і обробка асоціативної пам'яті

Нехай надійшла вхідні ситуація X, для якої необхідно знайти рішення Y. В АП знаходяться два вектора X1 і X2, мінімально відрізняються по всіх координатах від вектора X. для Для цих векторів там же записані вектори рішення Y1 і Y2 відповідно. Однак якщо для компоненти xi виконується умова xi <= xi (1) (xi> = xi (1)), то повинна виконуватися умова xi> = xi (2) (xi <= xi (2)), i = 1,. .., m. Таким чином, відшукується "вилка", якій належить вхідні ситуація. Тоді, спираючись на відомі рішення на кордонах цієї вилки, необхідно видати проміжне рішення для даної ситуації. Це можна зробити шляхом тієї ж узагальненої інтерполяції

r (X, X2) і r (X1, X2) (знаходиться аналогічно) - відстані між векторами X і X2, а також X1 і X2.

Якщо відомо, що точність Y достатня, принципово можливо доповнення АП новим рядком

тобто інформацією про новий отриманому досвіді.

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

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


Мал.9.6.

Самонавчається управління

Найпростіша задача: як ми автоматично визначаємо, на скільки треба повернути рульове колесо, щоб залишитися на дорозі?