100 CLS:RESTORE

110 PRINT BASIC Hopfield Model

l20 m=5:REM Edgeside

130 n=2:REM No of pictures

140 DIM A(m*m,n):REM Pictures

150 DIM T(m*m,m*m):REM Synapses

160 FOR k=n TO O STEP-1

170 READ P$:PRINT TAB (7*k+1,3);P$

180 FOR i=l TO m*m

190 READ A(i,k)

195 Y = INT((i-.1)/m):X=i-m*Y

200 PRINT TAB (X+7*k,Y+5); A(i.k)

210 NEXT i

220 IF k=0 THEN GOTO 310

230 PRINT "Memorise"

240 FOR j = 1 TO m*m

250 FOR i = 1 TO m*m

260 IF i=j THEN GOTO 290

270 Y=1+(2*A(i,k)-1)*(2*A(j,k)-1)

280 T(i,j)=T(i,j)+Y/2: REM Synapse

290 NEXT i

300 NEXT j

310 NEXT k

320 PRINT "Recall"

330 FOR it=1 TO m*m*3

340 S=O: REM Threshold Sum

350 j=INT(m*m*RND(1) +1)

36O FOR i=1 TO mm

370 IF i=j THEN GOTO 400

380 IF A(i,0)=1 THEN S=S+T(i,j)

390 IF A(I,0)=0 THEN S=S+n-T(I,j)

400 NEXT i

410 PRINT TAB (X,Y+5);

420 IF S<n*(m*m-1)/2 THEN GOTO 440

430 A(j,0)=1 PRINT "X":GOTO 450

440 A(j,0)=0:PRINT "."

450 NEXT it,

460 k=O: GOTO 17O:REM next seed

500 DATA "man"

510 DATA 0,0,1,0.0

520 DATA 1,1,1,1,1

530 DATA 0,0,1,0,0

540 DATA 0,1,0,1,0

550 DATA 1,0,0,0,1

560 DATA "dog"

570 DATA 0,0,0,0,0

580 DATA 0,0,0,0,0

590 DATA 0,1,0,0,1

600 DATA 1,1,1,1,1

610 DATA 0,1,0,1,0

620 DATA "seed"

630 DATA 0,0,0,0,0

640 DATA 0,0,0,0,0

650 DATA 0,0,0,0,0

660 DATA 1,1,0,0,0

670 DATA 0,0,0,0,0