Летняя студенческая школа по методам параллельных

advertisement
Использование MC# для реализации
параллельных алгоритмов в 3D-графике.
Е.С.Борисов, http://mechanoid.narod.ru
Институт кибернетики им. В.М.Глушкова АН Украины
 пространственная система
“вморожена” в объект.
 пространственная система
жестко связана с наблюдателем.
 плоская система это экран, на
который мы будем отображать наш
объект.
Причём Oэк X эк || Oн X н , Oэк Yэк || OнYн
Каждая точка задаётся координатами в системе OXYZ. Для
проецирования точки на экран необходимо выполнить два
преобразования:
1. Видовое преобразование. Переход от абсолютной системы
координат OXYZ к системе координат наблюдателя. Матрица
перехода V запишется следующим образом:
где:
 c1  c 2  s1  s 2  s3

c 2  s3

V 
c s c s s
 3 1 1 2 3

0

c1  cos( ); s1  sin(  )
 c1  s3  c3  s1  s 2
c 2  c3
s1  s3  c1  c3  s 2
c 2  s1
 s2
c1  c 2
0
p
xн yн zн1  xyz1*V
c 2  cos( ); s 2  sin(  )
c3  cos( ); s3  sin(  )
2. Перспективное преобразование - проецирование на экран.
x
x эк  н  d
zн
где d  Oн Oэк
y эк 
yн
d
zн
- расстояние от наблюдателя до экрана
0

0
0

1 
Параллельный классификатор образов
Искусственная нейронная сеть это совокупность нейронных
элементов и связей между ними.
Рисунок 1 Математическая
модель нейрона
Рисунок 2. Различные виды
функции активации
Важной особенностью НС является возможность ее
обучения. Процесс обучения НС сводится к процедуре
корректировки весовых коэффициентов.
Однослойный
персептрон
из 10 нейронов.
 35 входов.
10 выходов
Рисунок 3. Однослойная НС
Использована пороговая функция активации с порогом T=0
 1, si  T
y i  f ( si )  
 1, si  T
В качестве метода обучения используется дельта-правило Видроу-Хоффа
wij (t  1)  wij (t )    x j  ein
На этапе инициализации программы по учебным паттернам
генерируется матрица весовых коэффициентов, которая в последствии
используется для независимой обработки множества входных образов.
Результат работы программы:
.OOO.
O...O
O....
OOOO.
O...O
O...O
.OOO.
OOOOO
....O
....O
...O.
..O..
.O...
O....
.OOO.
O...O
O...O
.OOO.
O...O
O...O
.OOO.
6
7
8
Дополнения языка MC#
•abstract
•virtual
•class bobo {...}; ( ; после } )
•public bobo(int i):base(i){ ... } ( вызов в конструкторе base(...) )
•..override...f( int i) { base.f(i); ..} ( вызов метода предка base.f(i) )
•namespace
Download