Системи ітерованих функцій


Метод "Система Ітерованих Функцій" (Iterated Functions System - IFS) появивився в середині 80-х років як простий засіб отримання фрактальних стуткур.

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

X' = A*X + B*Y + C
Y' = D*X + E*Y + F

В 1988 году відомі американські спеціалісти теорії динамічениих систем і ергодичної теорії Барнслі и Слоан запропонували деякі ідеї, що базуються на висновках теорії динамічних систем, для стисненняия і зберішання графічної інформації. Вони назвали свій метод методом фрактального компресії інформації. Походження назви повязане з тим, що геометричні образи, що виникали в цьому методі, як правило мають фрактальну природу в розумінні Мандельброта.

На основі цих ідей Барнслі та Слоан створили алгоритм, якийдозволить т сжимати інформацію в 500-1000 раз. Коротко метод можна описати слідуючим чином. Зображення кодується кількома простими перетвореннями (в нашому випадку аффінними),тобто коефіцієнтами цих перетворень (в нашому випадку A,B,C,D,E,F) а також ймовірністю застосування функції.

Наприклад, закодуваваши яке-небудь зображення двома аффінними перетвореннями, ми однозначно визначимо його з допомогою 14-ти коефіціентів. Взявши буд-яку початкову точку (наприклад X=0 Y=0) і запустивши ітераційний процес, ми після першої ітерації отримаємо дві точки, після другої - чотири, після третьої - вісім і т.д. Через кілька десятків ітерацій сукупність отриманих точок буде описувати закодоване зображення. Але проблема полягає в тому, що що надзвичайно важко знайти коефіціенти IFS, які б кодували довільне зображення.

Для побудови IFS приміняються кріме аффінних і інші класи простих геометричних перетворень, які задаються невеликим числом параметрівв. Например, проективні:

X' = (A1*X + B1*Y + C1) / (D1*X + E1*Y + F1)
Y' = (A2*X + B2*Y + C2) / (D2*X + E2*Y + F2)

чи квадратичні:

X' = A1*X*X + B1*X*Y + C1*Y*Y + D1*X + E1*Y + F1
Y' = A2*X*X + B2*X*Y + C2*Y*Y + D2*X + E2*Y + F2

перетворення на площині.

 


Created by Bohdan Sytch