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