Hopf2.mws

Сеть Хопфилда

>    restart;

>    with(LinearAlgebra):

>    X[1]:=<-1, 1, 1, 1, 1, 1, 1, 1>:#Образцы 1-4

>    X[2]:=< 1,-1, 1, 1, 1,-1, 1,-1>:

>    X[3]:=<-1, 1,-1,-1, 1,-1, -1,1>:

>    X[4]:=< 1, 1,-1, 1,-1,-1, 1,-1>:

>    W:=add(X[i].Transpose(X[i]),i=1..4);

>    for i to 4 do W[i,i]:=0; od: # Для устойчивости

>    Y:=< 1, 1, 1, -1, 1,1, 1,-1>:# Тестируемый образец

>    X0[1]:=Y:

>    n:=4: #Число итераций

>    for k to n do # Основной цикл Синхронной работы

>     X0[k+1]:=map(sign,W.X0[k]):

>    od:

>    for k to n+1 do # Выводим на экран все этапы

>    x[k]=Transpose(X0[k]);

>    od;

>