Technical Appendix: A SECoS-Implementation

The following shows one possible scilab implementation of a SECoS algorithm. It will be further developed during August 2009.

	//**************************************************************
	// File: SECoS.sce
	// Authors: Miguel Ayala & Gerd Doeben-Henisch
	// Version: June-27, 2009
	//******************************************************************
	// Function: Implements the SECoS-Type of ANN originally described by Watts and Kasabov
	//
	//Some common constants
	
	//Conversion of radiants into grade
	
	grad=(2*%pi)/360
	
	//Conversion of radiants into degrees
	
	igrad=360/(2*%pi)
	
	INP = [1 2; 1 3; 2 2; 2 3; 4 4; 4 5; 5 4; 5 5; 6 1; 6 2; 7 1; 7 2]
	//UP = [1 0 0 0 0]
	//RIGHT = [0 0 1 0 0]
	//NOMOVE = [0 0 0 0 1]
	//DOWN = [0 0 0 1 0]
	//LEFT = [0 1 0 0 0]
	//INPM=[4 4 NOMOVE; 4 5 UP; 5 5 RIGHT; 5 5 NOMOVE; 6 5 RIGHT; 6 4 DOWN; 6 3 DOWN; 5 3 LEFT; 5 3 NOMOVE; 4 3 LEFT; 3 3 LEFT; 3 4 UP; 4 4 RIGHT; 3 4 LEFT; 3 5 UP; 3 6 UP; 4 6 RIGHT]
	
	//******************************************************************
	// Application with 2x2 letters
	// TESTRUN 1
	
	LETTERS=[0 0 0 0; 1 0 0 0; 1 1 0 0; 1 0 1 0; 1 0 0 1; 0 1 0 0; 0 1 0 1; 0 1 1 0; 0 0 1 0; 0 0 1 1; 0 0 0 1; 1 1 1 0; 1 1 0 1;1 0 1 1; 0 1 1 1; 1 1 1 1]
	LT=LETTERS
	
	TARGETS=[1 1 0 0;  0 0 1 1;]
	
	// The targets are embedded in a training  set :T1 - n-n - T1 n-n T1 n-n T1 n-n T2 - n-n - T2 n-n T2 n-n T2 n-n 
	//This  set has to be enlarged by the accompanying desired output vectors O_d
	// Target 1 translates into [1 0], target 2 into [0 1]; 'nothing' means [0 0
	
	TRAINING=[1 1 0 0 1 0;  1 0 0 0 0 0 ;  1 0 1 0 0 0; 1 1 0 0 1 0;   0 1 0 0 0 0;  0 1 1 0 0 0;   1 1 0 0 1 0;  0 0 0 1 0 0;   1 1 0 1 0 0; 1 1 0 0 1 0;   0 1 1 1 0 0; 1 0 0 0 0 0;  0 0 1 1 0 1; 1 0 1 0 0 0;  0 1 0 0 0 0;  0 0 1 1 1 0; 0 1 1 0 0 0;   0 0 0 1 0 0;  0 0 1 1 0 1;  1 1 0 1 0 0;  0 1 1 1 0 0]
	TR=TRAINING
	
	// The targets are embedded in a test set :T1 - n-n - T2 n-n T1 n-n T2 n-n T1 - n-n - T1 n-n T2 n-n T1 n-n 
	
	
	TEST=[1 1 0 0; 0 0 0 0;  1 0 0 1;  0 0 1 1;  0 1 0 1;   0 0 1 0;  1 1 0 0; 1 1 1 0;  1 0 1 1;  0 0 1 1; 1 1 1 1;  0 0 0 0;  1 1 0 0; 1 0 0 1;   0 1 0 1; 0 0 1 1;   0 0 1 0;  1 1 1 0;  1 1 0 0; 1 0 1 1;  1 1 1 1; 0 0 1 1;]
	
	
	//***************************************************
	//Function to compute the sum of a vector v and the i-th row of a matrix M
	
	function[M]=vecAddMi(M,i,v)
	
	//Test whether the length of v is equal to the columns of M
	
	
	[r,c]=size(M);
	if l <> c then error('SIZE of VECTOR DOES NOT MATCH MATRIX'),
	else  
	for j=1:c, M(i,j) = M(i,j)+v(j),
	end
	end
	endfunction
	
	
	//***************************************************
	//Function to compute the difference of a vector v and the i-th row of a matrix M
	
	function[M]=vecSubMi(M,i,v)
	
	//Test whether the length of v is equal to the columns of M
	
	l=length(v);
	[r,c]=size(M);
	if l <> c then error('SIZE of VECTOR DOES NOT MATCH MATRIX'),
	else  
	for j=1:c, M(i,j) = M(i,j)-v(j),
	end
	end
	endfunction
	
	
	
	//***************************************************
	//Function to compute the product of two vectors v,w
	
	function[u]=vecprod(v,w)
	
	lv=length(v);
	lw=length(w);
	
	u=0
	
	if lv <> lw then error('DIFFERENT LENGTH OF VECTORS');
	
	else  for i=1:lv, u=u + (v(i)*w(i));
	end
	end
	
	endfunction
	
	//***************************************************
	//Function to compute the projection of a vector v onto a line with angle theta
	//angle in degree
	
	function[y]=vecproj(v,t)
	
	//Convert radiants into degree
	t=t/igrad
	
	y=norm(v)*cos(t)
	
	endfunction
	
	//***************************************************
	//Function to compute the projection of a vector v onto a line with line w
	
	function[y]=vecprojL(v,w)
	
	
	y=vecprod(v,w)/norm(w)
	
	endfunction
	
	
	//*************************************************************
	//Function to compute the angle of two vectors v,w in 360 degree
	//Vectors v,w are column or row vectors
	
	function[y]=cosvec(v,w)
	
	y=vecprod(v,w)/(norm(v)*norm(w))
	
	//The result in y is the cos-value. We need the invers of this
	
	y=acos(y)
	
	//The inverse is given in radiants. We want the conversion to degrees
	
	y=y/grad
	
	endfunction
	//End of function cosvect ******************************************
	
	//*******************************************************
	//Function to multiply a vector v with a quadratic matrix M generating a vector u
	
	function[u]=vmprod(v,M)
	
	[r,c]=size(M)
	lv=length(v)
	u=zeros(1,lv)
	
	if (r <> lv)  then error('sizes of vector and matrix do not match')
	else
	
	for i=1:c  //Following the columns of matrix
	for j=1:r  //Working through all elements of v and rows of M
	u(j)=u(j) + (v(i) *M(i,j))
	end
	end
	end
	
	endfunction
	
	
	
	//*******************************************************
	//Function to multiply a vector v with a selectable matrix M generating a vector u
	
	
	function[u]=vmprod2(M,v)
	
	[r,c]=size(M)
	lv=length(v)
	u=zeros(1,lv)
	
	if (r <> lv) then error('sizes of vector and matrix do not match')
	else
	
	for j=1:r  //Following the rows of matrix
	for i=1:c  //Working through all elements of v and columns of M
	u(j)=u(j) + (v(i) *M(j,i))
	end
	end
	end
	
	endfunction
	
	
	//****************************************************
	//Funcion to generate a m x n - Matrix with the scalar c
	
	function[C] = matrixC(r,c,a)
	
	C=[] //New Matrix 
	for i=1:c; for j=1:r; C(i,j)=a; end;  end //Generate new matrix with scalar a
	C
	
	endfunction
	
	
	//****************************************************
	//Funcion to generate a m x n - Matrix with the scalar c out of a given matrix M
	
	function[C] = matrixCC(M,a)
	
	C=[] //New Matrix 
	[c,r]=size(M) //Get dimension of given matrix M by columns and rows
	for i=1:r, for j=1:c, C(i,j)=a, end, end //Generate new matrix with scalar a
	
	endfunction
	
	//************************************************************
	// Normalize the input 2D-Input-Vektors
	// Take INP as input and generate INP2 as output
	
	function [INP2]=doNorm(INP)
	
	[r,c] = size(INP)
	INP2=[]
	printf('Length of Input Vector: %d\n',r)
	
	//Looping through the input
	for i=1:r
	v=[INP(i,1) INP(i,2)]
	printf('OLD coordinates: %d %d\n',v(1),v(2))
	printf('NORM of vector: %f\n',norm(v))
	
	v=v/norm(v)
	
	printf('NEW coordinates: %f %f\n',v(1),v(2))
	INP2(i,1)=v(1)
	INP2(i,2)=v(2)
	end
	
	endfunction
	
	function [Kreis]=kreisBerechnen(kreisVektor,kreisVektor)
	[r,c] = size(kreisVektor)
	for i=1:r
	v=[kreisVektor(i,1) kreisVektor(i,2)]
	end
	
	endfunction
	
	//************************************************************
	// Normalize the input 2D-Input-Vektors with a UNIFORM norm
	// Take INP as input and generate INP3 as output
	
	function [INP3]=doNormU(INP)
	
	[r,c] = size(INP)
	Maxnorm=0
	INP3=[]
	printf('Length of Input Vector: %d\n',r)
	
	//Looping through the input to find maximal norm
	for i=1:r
	v=[INP(i,1) INP(i,2)]
	
	if norm(v) > Maxnorm then Maxnorm=norm(v)
	printf('NORM of vector: %f %f\n',norm(v), Maxnorm)
	end
	end
	
	
	//Looping through the input to normalize uniformly
	for i=1:r
	v=[INP(i,1) INP(i,2)]
	printf('OLD coordinates: %d %d\n',v(1),v(2))
	
	v=v/Maxnorm
	
	printf('NEW coordinates: %f %f\n',v(1),v(2))
	INP3(i,1)=v(1)
	INP3(i,2)=v(2)
	end
	
	endfunction
	
	//*******************************************************+
	// Computes the 1-distance between two vectors x,y
	
	function [d]=oneDistance(x,y)
	
	lx=length(x), ly=length(y)
	if lx <> ly then error('SIZE of VECTORS DO NOT MATCH'),
	else
	s=0
	for i=1:lx
	s=s+abs(x(i)-y(i)), 
	end
	d=s
	end
	
	endfunction
	//*******************************************************+
	// Computes the normalized manhattan distance between two vectors x,y
	
	function [d]=normManhattan(x,y)
	
	lx=length(x), ly=length(y)
	if lx <> ly then error('SIZE of VECTORS DO NOT MATCH'),
	else
	s=0
	for i=1:lx
	s=s+abs(x(i)-y(i)), 
	end
	d=s/lx
	end
	
	endfunction
	
	
	
	//*******************************************************+
	// Computes the  euclidean distance between two vectors x,y
	
	function [d]=euclideanDistance(x,y)
	
	lx=length(x), ly=length(y)
	if lx <> ly then error('SIZE of VECTORS DO NOT MATCH'),
	else
	s=0
	for i=1:lx
	s=s+abs(x(i)-y(i))^2, 
	end
	d=sqrt(s)
	end
	
	endfunction
	
	//*******************************************************+
	// Computes the normalized euclidean distance between two vectors x,y
	
	function [d]=normEuclidean(x,y)
	
	lx=length(x), ly=length(y)
	if lx <> ly then error('SIZE of VECTORS DO NOT MATCH'),
	else
	s=0
	for i=1:lx
	s=s+abs(x(i)-y(i))^2, 
	end
	d=sqrt(s)/sqrt(lx)
	end
	
	endfunction
	
	
	//*******************************************************+
	// Simulates the perception of an artificial consciousness
	// by taking an input vector INPM and processing these
	// values in a way which enables the processing through a SECoS
	// The values of the vectors must not be normalized
	//
	
	
	function [INP,Od]=perception(INPM)
	
	lx=length(x), ly=length(y)
	if lx <> ly then error('SIZE of VECTORS DO NOT MATCH'),
	else
	s=0
	for i=1:lx
	s=s+abs(x(i)-y(i))^2, 
	end
	d=sqrt(s/lx)
	end
	
	endfunction
	
	
	//*******************************************************+
	// Output Check
	// measuring the grade of distinction between O_c and O_d
	// O is a matrix with all possible desired Output vectors
	
	
	function [OD]=distinctionOcOd(Oc,Od)
	
	[r,c]=size(Oc)
	[r2,c2]=size(Od)
	
	Oc
	Od
	n = 1
	for i=1:r, for j=1:r2, 
		v=Oc([i],[:]), w=Od([j],[:]), //forming two vectors
		OD(n) = normEuclidean(w,v),
		printf('Oc %d Od %d = Dist %f\n',i,j,OD(n)),
		n=n+1
	end,
	end
	OD
	endfunction
	
	
	//***************************************************
	//Evolving clusterin Method (ECM) (cf. Kasabov 2002)
	//Takes the vectors x from an INPUT stream and maps these vectors into a set of categories CAT
	//The vectors of the input stream can be uniformly be normalized with the function 'INP3=doNormU(INP)'
	//The category threshold 'threshold' has to be set apriori. This value can influence the results
	//very strongly!
	
	
	
	//****************************************************************
	//  Check distance for new input 
	//
	// I := Input vector
	// EV := Evolving layer with Activity and Distance
	//  WI := Input weight matrix
	//  S := Sensivity threshold
	// Pos := Position of the best fitting evolving neuron
	
	
	function [YESNO,EV,Pos]=checkDistance(I,EV, WI,S)
	
	printf('You have to check the distances.\n');
	
	[r,c] = size(EV)
	lx = length(I)
	
	// For all WI check I and write Distance into EV(:,2) and compute Activity into EV(1,:)
	
	for i=1:r, 
	
	printf('Searching Distance at evolving neuron No. %d = ', i);
	
		for j=1:lx,
			v(j) = I(j), w(j) =WI(i,j), 
		end
		EV(i,2) = normEuclidean(v,w) //Compute distance
	
	printf('normEuclidean at %d is  %1.4f  ', i, EV(i,2));
	
		EV(i,1) = 1 - EV(i,2)  //Compute Activity
	
	printf('Activity is %1.4f\n', EV(i,1));
	
	
	end
	
	// Find Max(Activity)
	
	printf('Searching MaxActivity \n');
	
	maxAct = 0, Pos = 0
	
	for i=1:r, 
		if (maxAct < EV(i,1)) then maxAct = EV(i,1), Pos = i, 
	
		printf('Searching MaxActivity at evolving neuron No.  %d = %1.4f\n', i, EV(i,1));
		end
	
		end
	
	
	printf('Final MaxActivity at evolving neuron No.  %d = %1.4f\n', Pos, EV(Pos,1));
	
	
	// Check S
	
		if (maxAct < S) then YESNO = 1
		else YESNO = 0
		end
	
	endfunction
	
	//****************************************************************
	//  Add a the first neuron to the evolving layer 
	//
	// I := Input vector
	// Od := Desired output vector
	// pos := Position in EV, where to insert new item
	//  WI := Input weight matrix
	//  WO:= Output weight matrix
	//  S := Sensivity threshold
	
	function [EV,WI,WO, EVPOS]=firstEV(I,Od,EV,WI,WO)
	
	printf('You have to add the first  evolving neuron.\n');
	
	EVPOS = 1 //First position
	
	//Insert input weights
	
	printf(' WI = ')
	for i=1:length(I)
	WI(EVPOS,i) = I(i)
	printf(' %1.1f ',WI(EVPOS,i))
	end
	
	//Insert output  weights
	
	printf(' WO = ')
	for i=1:length(Od)
	WO(EVPOS,i) = Od(i);
	printf(' %1.1f ',WO(EVPOS,i))
	end
	
	// Compute Activity stored in EV
	// Because the weights are in the beginning identical with the input vector Activity = 1
	
	printf(' EV at position  ')
	EV(EVPOS,1) = 1; EV(EVPOS,2) = 0
	printf(' %1.1f ',EV(EVPOS))
	printf('\n ')
	
	
	endfunction
	
	
	//****************************************************************
	//  Add a another new neuron to the evolving layer 
	//
	// I := Input vector
	// Od := Desired output vector
	// pos := Position in EV, where to insert new item
	//  WI := Input weight matrix
	//  WO:= Output weight matrix
	//  S := Sensivity threshold
	
	function [EV,WI,WO,EVPOS]=addEV(I,Od,EV,WI,WO,EVPOS)
	
	printf('You have to add another evolving neuron.\n');
	
	// Find next free position
	
	[r,c] = size(EV)
	EVPOS=EVPOS+1
	
	pos =  EVPOS//First position
	printf('Insert new EV Element at %d\n', pos)
	
	//Insert input weights
	
	printf(' WI = ')
	for i=1:length(I)
	WI(pos,i) = I(i)
	printf(' %1.1f ',WI(pos,i))
	end
	
	//Insert output  weights
	
	printf(' WO = ')
	for i=1:length(Od)
	WO(pos,i) = Od(i);
	printf(' %1.1f ',WO(pos,i))
	end
	
	// Compute Activity stored in EV
	// Because the weights are in the beginning identical with the input vector Activity = 1
	
	printf(' EV = ')
	EV(pos,1) = 1 , EV(pos,2) = 0
	printf(' Activity : %1.1f Distance : %1.1f\n ',EV(pos,1), EV(pos,2))
	
	endfunction
	
	//****************************************************************
	//  Update  a new neuron of the evolving layer 
	//
	// I := Input vector
	// Oc := Output vector
	// Od := Desired output vector
	// pos := Position in EV, where to insert new item
	//  WI := Input weight matrix
	//  WO:= Output weight matrix
	//  S := Sensivity threshold
	// eta1	:= Learning rate No.1
	// eta2 	:= Learning rate No.2
	// EVPOS := Actual number of evolving neurons
	
	function [EV,WI,Oc,WO,Pos,YESNO]=updateEV(I,Oc,Od,EV,WI,WO,Pos,EVPOS, eta1,eta2, AoThr,Eo)
	
	printf('Update an evolving neuron\n')
	printf('First clarify whether the output error is bigger than allowed\n')
	
	//Structure of Oc is: <netSum, Ao, Eo>
	
	[r,c]=size(Oc)
	
	for j=1:r //Number of output neurons
	
	// Compute netsum of all inputs of O_c_i
	
	Oc(j,1) =0
	for i=1:EVPOS //Number of existing evolving neurons as inputs
	Oc(j,1) = Oc(j,1) + (EV(i,1) * WO(i,j))
	end
	
	printf('NetSum of output neuron %d : %1.2f \n',j,Oc(j,1))
	
	//Comput output neuron activation Ao
	
	Ao = 1/(1+exp(-Oc(j,1)))
	Oc(j,2) = Ao
	
	if (Oc(j,2) < AoThr)   then Oc(j,2) = 1
	else Oc(j,2) = 0
	end

	printf('Activation of output neuron %d before Threshold %1.2f after Threshold %1.2f \n',j,Ao,Oc(j,2))
	
	// Compute output neuron error Eo
	

	Oc(j,3) =abs(Od(j) - Oc(j,2))
	
	printf('Output Error Eo of output neuron %d  is  %1.2f \n',j,Oc(j,3))
	
	end//End of output neurons
	
	// Checking output error
	
	oc = Oc([1:1:r],[3])  //Taking all Output errors from Oc
	
	if(normEuclidean(Od,oc) > Eo) then YESNO = 1, printf('Output Error Eo too big!\n\n')
	else
	YESNO = 0, printf('Output Error Eo is Zero!\n\n')
	
	// Update outgoing weights WO of all sending evolving neurons to Oc_j
	
	for j=1:r //all output neurons
	for i=1:EVPOS //all evolving neurons
	WO(i,j) = WO(i,j) + (eta2*EV(i,1)*Oc(j,3))
	printf('Update of evolving  neuron %d  with outgoing weight %1.2f to output neuron  %d \n',i,WO(i,j),j)
	end //End of  evolving neurons sending outgoing weights
	end //End of output neurons
	
	//Else is still 'open' for updating the input weights
	
	lx=length(I)
	
	// Update incoming weights
	
	// 1. Compute new values
	
	wiOld = WI([Pos],[1:1:n])
	wiNew = eta1 * (I - wiOld)
	wiNew = wiOld + wiNew
	
	
	printf('Old Values : ');
	for i=1:lx
	printf('%d ',wiOld(i));
	end
	
	printf(' ----- New Values : ');
	for i=1:lx
	printf('%d ',wiNew(i));
	end
	
	// 2. Write new values into WI
	
	for i=1:lx
	WI(Pos,i) = wiNew(i)
	end
	
	printf(' ----- New Values : ');
	for i=1:lx
	printf('%d ',WI(Pos,i));
	end
	printf(' \n');
	
	printf('You have updated an evolving neuron at position %d\n',Pos)
	
	end //Of IF-check whether Eo is too big
	
	endfunction
	

	//***************************************************
	//Simple Evolving Connectionist Systems (SECoS)(cf.Watts/Kasabov 2000), Watts/Kasabov 2002), Watts (2009)
	//Takes the vectors x from an INPUT stream, maps these vectors into a set of categories CAT, 
	//(similar to the way how ECM works) and associates subsets of these categories
	//with some labels LAB. The associations are induced by a training process which delivers
	//input vectors from INP together with desired output vectors OUT_d
	//The vectors of the input stream must NOT be normalized 
	
	// Input is a matrix wit m-many columns where the first n-many are the coordinates of a point in
	// an n-dimensional space and the m-n-many other columns are representing elements of a desired 
	// output vector.
	
	
	//***************************************************
	// Take a training set with input vector I and desired output vector Od
	// put the next item into a SECoS
	// Get the calculated output values Oc
	// and show the relation Oc - Od - Diff
	//***************************************************************************
	// n := number columns for input vector; rest is desired output vector
	// E := output Error; for the 2x2 case we assume E=0.5
	// S := sensivity threshold S_thr; we start always with 0.5
	//***************************************************************************
	// Command line start:  [EV,WI,WO,Oc]=training(TR,4,0.5)
	
	
	function [EV,WI,WO,Oc]=training(TR,n, E,S)
	
	[r,c]=size(TR)
	m=c-n 	//Number of input elements n and number of output elements m
	
	EV = [] 	//Setting evolving layer to zero
	WI = [] 	//Setting input weight matrix to zero
	WO = []	//Setting output weight matrix to zero
	S = 0.4	//Setting sensivity threshold 
	eta1 = 1 	//Learning rate No.1
	eta2 = 1	//Learning rate No.2
	EVPOS = 0 //Flag of actual last entry in EV
	I = linspace(0,0,n)	//Empty input vector
	Oc = zeros(c-n,3)	//Empty output matrix with <netSum, Ao, Eo>
	Od = linspace(0,0,c-n)	//Empty desired output vector
	AoThr = 0.75	//Activation threshold for output neurons in case of sigmoidal function
	Eo = 0.7	//Output error ||Od - Oc_Ao|| , MaxOutput is 0.73!


		printf('PARAMETER: Sensivity  %1.2f eta1 %1.2f eta2 %1.2f  AoThr %1.2f Eo %1.2f\n ',S,eta1,eta2, AoThr,Eo )
		printf('----------------------------------------------------------------------------------------------------------------------------------------\n' )
	
	for j=1:r, //Main loop for training
	
		printf('Main Loop Index  %d = \n ',j )
		printf('----------------------------------------------------------------------------------------------------------------------------------------\n' )
		
		I = TR([j],[1:1:n])
	
		printf('Input Vector  I = ' )
	
		for i=1:n, //Loop to built input vector 
		printf(' %1.1f ',I(i))
		end
		printf('\n ')
	
		Od = TR([j],[n+1:1:c])
		printf('Desired Output Vector Od %d =  ',j )
	
		for i=1:m
		printf(' %1.1f ',Od(i))
		end
		printf('\n\n ')
	
		// Checking new input vector I whether it fits or whether it is new
		
		// First: Checking whether evolving layer EV is empty
	
	// I := Input vector
	// Od := Desired output vector
	// pos := Position in EV, where to insert new item
	//  WI := Input weight matrix
	//  WO:= Output weight matrix
	//  S := Sensivity threshold
	
		[rev, cev] = size(EV)
		if(rev == 0) then pos=1,  [EV,WI,WO,EVPOS]=firstEV(I,Od,EV,WI,WO) 
		else
		// Second: Checking whether activity is below sensivity threshold S
	
			[YESNO,EV,Pos]=checkDistance(I,EV,WI,S)
	
			if (YESNO == 1) then [EV,WI,WO,EVPOS]=addEV(I,Od,EV,WI,WO,EVPOS)
			else 
			[EV,WI,Oc,WO,Pos,YESNO]=updateEV(I,Oc,Od,EV,WI,WO,Pos,EVPOS, eta1,eta2, AoThr,Eo)
				if(YESNO ==1) then [EV,WI,WO,EVPOS]=addEV(I,Od,EV,WI,WO,EVPOS)
				end
			end
	
		end //End  EV=[]
		
	
	end//End of training
	
	endfunction

A printout of the console (see below) shows, that the actual parameter setting is not fitting very well. It will be an analytcal task, to identify the necessary constraints to enable good applications.

-->[EV,WI,WO,Oc]=training(TR,4,0.5)
PARAMETER: Sensivity  0.40 eta1 1.00 eta2 1.00  AoThr 0.75 Eo 0.70
 ----------------------------------------------------------------------------------------------------------------------------------------
Main Loop Index  1 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  1.0  1.0  0.0  0.0 
 Desired Output Vector Od 1 =   1.0  0.0 

 You have to add the first  evolving neuron.
 WI =  1.0  1.0  0.0  0.0  WO =  1.0  0.0  EV at position   1.0 
 Main Loop Index  2 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  1.0  0.0  0.0  0.0 
 Desired Output Vector Od 2 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.5000  Activity is 0.5000
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.5000
Final MaxActivity at evolving neuron No.  1 = 0.5000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 0.50 
Activation of output neuron 1 before Threshold 0.62 after Threshold 1.00 
Output Error Eo of output neuron 1  is  1.00 
NetSum of output neuron 2 : 0.00 
Activation of output neuron 2 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 2
 WI =  1.0  0.0  0.0  0.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  3 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  1.0  0.0  1.0  0.0 
 Desired Output Vector Od 3 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.5000  Activity is 0.5000
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.2929
Searching MaxActivity at evolving neuron No.  2 = 0.5000
Final MaxActivity at evolving neuron No.  2 = 0.5000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 0.29 
Activation of output neuron 1 before Threshold 0.57 after Threshold 1.00 
Output Error Eo of output neuron 1  is  1.00 
NetSum of output neuron 2 : 0.00 
Activation of output neuron 2 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 3
 WI =  1.0  0.0  1.0  0.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  4 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  1.0  1.0  0.0  0.0 
 Desired Output Vector Od 4 =   1.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.7071  Activity is 0.2929
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 1.0000
Final MaxActivity at evolving neuron No.  1 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 1.00 
Activation of output neuron 1 before Threshold 0.73 after Threshold 1.00 
Output Error Eo of output neuron 1  is  0.00 
NetSum of output neuron 2 : 0.00 
Activation of output neuron 2 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 4
 WI =  1.0  1.0  0.0  0.0  WO =  1.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  5 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  0.0  1.0  0.0  0.0 
 Desired Output Vector Od 5 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.5000  Activity is 0.5000
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.5000
Final MaxActivity at evolving neuron No.  1 = 0.5000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 1.00 
Activation of output neuron 1 before Threshold 0.73 after Threshold 1.00 
Output Error Eo of output neuron 1  is  1.00 
NetSum of output neuron 2 : 0.00 
Activation of output neuron 2 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 5
 WI =  0.0  1.0  0.0  0.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  6 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  0.0  1.0  1.0  0.0 
 Desired Output Vector Od 6 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.5000  Activity is 0.5000
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.2929
Searching MaxActivity at evolving neuron No.  5 = 0.5000
Final MaxActivity at evolving neuron No.  5 = 0.5000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 0.59 
Activation of output neuron 1 before Threshold 0.64 after Threshold 1.00 
Output Error Eo of output neuron 1  is  1.00 
NetSum of output neuron 2 : 0.00 
Activation of output neuron 2 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 6
 WI =  0.0  1.0  1.0  0.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  7 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  1.0  1.0  0.0  0.0 
 Desired Output Vector Od 7 =   1.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.7071  Activity is 0.2929
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 1.0000
Final MaxActivity at evolving neuron No.  1 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 2.00 
Activation of output neuron 1 before Threshold 0.88 after Threshold 0.00 
Output Error Eo of output neuron 1  is  1.00 
NetSum of output neuron 2 : 0.00 
Activation of output neuron 2 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 7
 WI =  1.0  1.0  0.0  0.0  WO =  1.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  8 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  0.0  0.0  0.0  1.0 
 Desired Output Vector Od 8 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  0.8660  Activity is 0.1340
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.1340
Searching MaxActivity at evolving neuron No.  2 = 0.2929
Final MaxActivity at evolving neuron No.  2 = 0.2929
You have to add another evolving neuron.
Insert new EV Element at 8
 WI =  0.0  0.0  0.0  1.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  9 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  1.0  1.0  0.0  1.0 
 Desired Output Vector Od 9 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.7071  Activity is 0.2929
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.5000
Final MaxActivity at evolving neuron No.  1 = 0.5000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 1.50 
Activation of output neuron 1 before Threshold 0.82 after Threshold 0.00 
Output Error Eo of output neuron 1  is  0.00 
NetSum of output neuron 2 : 0.00 
Activation of output neuron 2 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 9
 WI =  1.0  1.0  0.0  1.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  10 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  1.0  1.0  0.0  0.0 
 Desired Output Vector Od 10 =   1.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.5000  Activity is 0.5000
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 1.0000
Final MaxActivity at evolving neuron No.  1 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 3.00 
Activation of output neuron 1 before Threshold 0.95 after Threshold 0.00 
Output Error Eo of output neuron 1  is  1.00 
NetSum of output neuron 2 : 0.00 
Activation of output neuron 2 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 10
 WI =  1.0  1.0  0.0  0.0  WO =  1.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  11 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  0.0  1.0  1.0  1.0 
 Desired Output Vector Od 11 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 10 = normEuclidean at 10 is  0.8660  Activity is 0.1340
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.1340
Searching MaxActivity at evolving neuron No.  5 = 0.2929
Searching MaxActivity at evolving neuron No.  6 = 0.5000
Final MaxActivity at evolving neuron No.  6 = 0.5000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 0.54 
Activation of output neuron 1 before Threshold 0.63 after Threshold 1.00 
Output Error Eo of output neuron 1  is  1.00 
NetSum of output neuron 2 : 0.00 
Activation of output neuron 2 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 11
 WI =  0.0  1.0  1.0  1.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  12 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  1.0  0.0  0.0  0.0 
 Desired Output Vector Od 12 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 10 = normEuclidean at 10 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 11 = normEuclidean at 11 is  1.0000  Activity is 0.0000
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.5000
Searching MaxActivity at evolving neuron No.  2 = 1.0000
Final MaxActivity at evolving neuron No.  2 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 2.00 
Activation of output neuron 1 before Threshold 0.88 after Threshold 0.00 
Output Error Eo of output neuron 1  is  0.00 
NetSum of output neuron 2 : 0.00 
Activation of output neuron 2 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 12
 WI =  1.0  0.0  0.0  0.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  13 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  0.0  0.0  1.0  1.0 
 Desired Output Vector Od 13 =   0.0  1.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 10 = normEuclidean at 10 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 11 = normEuclidean at 11 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 12 = normEuclidean at 12 is  0.8660  Activity is 0.1340
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  2 = 0.1340
Searching MaxActivity at evolving neuron No.  3 = 0.2929
Searching MaxActivity at evolving neuron No.  8 = 0.5000
Final MaxActivity at evolving neuron No.  8 = 0.5000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 0.00 
Activation of output neuron 1 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 1  is  1.00 
NetSum of output neuron 2 : 0.00 
Activation of output neuron 2 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 2  is  0.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 13
 WI =  0.0  0.0  1.0  1.0  WO =  0.0  1.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  14 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  1.0  0.0  1.0  0.0 
 Desired Output Vector Od 14 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 10 = normEuclidean at 10 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 11 = normEuclidean at 11 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 12 = normEuclidean at 12 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 13 = normEuclidean at 13 is  0.7071  Activity is 0.2929
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.2929
Searching MaxActivity at evolving neuron No.  2 = 0.5000
Searching MaxActivity at evolving neuron No.  3 = 1.0000
Final MaxActivity at evolving neuron No.  3 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 1.17 
Activation of output neuron 1 before Threshold 0.76 after Threshold 0.00 
Output Error Eo of output neuron 1  is  0.00 
NetSum of output neuron 2 : 0.29 
Activation of output neuron 2 before Threshold 0.57 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 14
 WI =  1.0  0.0  1.0  0.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  15 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  0.0  1.0  0.0  0.0 
 Desired Output Vector Od 15 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 10 = normEuclidean at 10 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 11 = normEuclidean at 11 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 12 = normEuclidean at 12 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 13 = normEuclidean at 13 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 14 = normEuclidean at 14 is  0.8660  Activity is 0.1340
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.5000
Searching MaxActivity at evolving neuron No.  5 = 1.0000
Final MaxActivity at evolving neuron No.  5 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 2.00 
Activation of output neuron 1 before Threshold 0.88 after Threshold 0.00 
Output Error Eo of output neuron 1  is  0.00 
NetSum of output neuron 2 : 0.13 
Activation of output neuron 2 before Threshold 0.53 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 15
 WI =  0.0  1.0  0.0  0.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  16 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  0.0  0.0  1.0  1.0 
 Desired Output Vector Od 16 =   1.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 10 = normEuclidean at 10 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 11 = normEuclidean at 11 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 12 = normEuclidean at 12 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 13 = normEuclidean at 13 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 14 = normEuclidean at 14 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 15 = normEuclidean at 15 is  0.8660  Activity is 0.1340
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  2 = 0.1340
Searching MaxActivity at evolving neuron No.  3 = 0.2929
Searching MaxActivity at evolving neuron No.  8 = 0.5000
Searching MaxActivity at evolving neuron No.  13 = 1.0000
Final MaxActivity at evolving neuron No.  13 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 0.00 
Activation of output neuron 1 before Threshold 0.50 after Threshold 1.00 
Output Error Eo of output neuron 1  is  0.00 
NetSum of output neuron 2 : 1.00 
Activation of output neuron 2 before Threshold 0.73 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 16
 WI =  0.0  0.0  1.0  1.0  WO =  1.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  17 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  0.0  1.0  1.0  0.0 
 Desired Output Vector Od 17 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 10 = normEuclidean at 10 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 11 = normEuclidean at 11 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 12 = normEuclidean at 12 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 13 = normEuclidean at 13 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 14 = normEuclidean at 14 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 15 = normEuclidean at 15 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 16 = normEuclidean at 16 is  0.7071  Activity is 0.2929
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.2929
Searching MaxActivity at evolving neuron No.  5 = 0.5000
Searching MaxActivity at evolving neuron No.  6 = 1.0000
Final MaxActivity at evolving neuron No.  6 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 1.46 
Activation of output neuron 1 before Threshold 0.81 after Threshold 0.00 
Output Error Eo of output neuron 1  is  0.00 
NetSum of output neuron 2 : 0.29 
Activation of output neuron 2 before Threshold 0.57 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 17
 WI =  0.0  1.0  1.0  0.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  18 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  0.0  0.0  0.0  1.0 
 Desired Output Vector Od 18 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 10 = normEuclidean at 10 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 11 = normEuclidean at 11 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 12 = normEuclidean at 12 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 13 = normEuclidean at 13 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 14 = normEuclidean at 14 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 15 = normEuclidean at 15 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 16 = normEuclidean at 16 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 17 = normEuclidean at 17 is  0.8660  Activity is 0.1340
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.1340
Searching MaxActivity at evolving neuron No.  2 = 0.2929
Searching MaxActivity at evolving neuron No.  8 = 1.0000
Final MaxActivity at evolving neuron No.  8 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 1.04 
Activation of output neuron 1 before Threshold 0.74 after Threshold 1.00 
Output Error Eo of output neuron 1  is  1.00 
NetSum of output neuron 2 : 0.50 
Activation of output neuron 2 before Threshold 0.62 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 18
 WI =  0.0  0.0  0.0  1.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  19 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  0.0  0.0  1.0  1.0 
 Desired Output Vector Od 19 =   0.0  1.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 10 = normEuclidean at 10 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 11 = normEuclidean at 11 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 12 = normEuclidean at 12 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 13 = normEuclidean at 13 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 14 = normEuclidean at 14 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 15 = normEuclidean at 15 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 16 = normEuclidean at 16 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 17 = normEuclidean at 17 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 18 = normEuclidean at 18 is  0.5000  Activity is 0.5000
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  2 = 0.1340
Searching MaxActivity at evolving neuron No.  3 = 0.2929
Searching MaxActivity at evolving neuron No.  8 = 0.5000
Searching MaxActivity at evolving neuron No.  13 = 1.0000
Final MaxActivity at evolving neuron No.  13 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 1.00 
Activation of output neuron 1 before Threshold 0.73 after Threshold 1.00 
Output Error Eo of output neuron 1  is  1.00 
NetSum of output neuron 2 : 1.00 
Activation of output neuron 2 before Threshold 0.73 after Threshold 1.00 
Output Error Eo of output neuron 2  is  0.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 19
 WI =  0.0  0.0  1.0  1.0  WO =  0.0  1.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  20 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  1.0  1.0  0.0  1.0 
 Desired Output Vector Od 20 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 10 = normEuclidean at 10 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 11 = normEuclidean at 11 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 12 = normEuclidean at 12 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 13 = normEuclidean at 13 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 14 = normEuclidean at 14 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 15 = normEuclidean at 15 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 16 = normEuclidean at 16 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 17 = normEuclidean at 17 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 18 = normEuclidean at 18 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 19 = normEuclidean at 19 is  0.8660  Activity is 0.1340
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.5000
Searching MaxActivity at evolving neuron No.  9 = 1.0000
Final MaxActivity at evolving neuron No.  9 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 2.13 
Activation of output neuron 1 before Threshold 0.89 after Threshold 0.00 
Output Error Eo of output neuron 1  is  0.00 
NetSum of output neuron 2 : 0.27 
Activation of output neuron 2 before Threshold 0.57 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 20
 WI =  1.0  1.0  0.0  1.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
 Main Loop Index  21 = 
 ----------------------------------------------------------------------------------------------------------------------------------------
Input Vector  I =  0.0  1.0  1.0  1.0 
 Desired Output Vector Od 21 =   0.0  0.0 

 You have to check the distances.
Searching Distance at evolving neuron No. 1 = normEuclidean at 1 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 2 = normEuclidean at 2 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 3 = normEuclidean at 3 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 4 = normEuclidean at 4 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 5 = normEuclidean at 5 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 6 = normEuclidean at 6 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 7 = normEuclidean at 7 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 8 = normEuclidean at 8 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 9 = normEuclidean at 9 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 10 = normEuclidean at 10 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 11 = normEuclidean at 11 is  0.0000  Activity is 1.0000
Searching Distance at evolving neuron No. 12 = normEuclidean at 12 is  1.0000  Activity is 0.0000
Searching Distance at evolving neuron No. 13 = normEuclidean at 13 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 14 = normEuclidean at 14 is  0.8660  Activity is 0.1340
Searching Distance at evolving neuron No. 15 = normEuclidean at 15 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 16 = normEuclidean at 16 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 17 = normEuclidean at 17 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 18 = normEuclidean at 18 is  0.7071  Activity is 0.2929
Searching Distance at evolving neuron No. 19 = normEuclidean at 19 is  0.5000  Activity is 0.5000
Searching Distance at evolving neuron No. 20 = normEuclidean at 20 is  0.7071  Activity is 0.2929
Searching MaxActivity 
Searching MaxActivity at evolving neuron No.  1 = 0.1340
Searching MaxActivity at evolving neuron No.  5 = 0.2929
Searching MaxActivity at evolving neuron No.  6 = 0.5000
Searching MaxActivity at evolving neuron No.  11 = 1.0000
Final MaxActivity at evolving neuron No.  11 = 1.0000
Update an evolving neuron
First clarify whether the output error is bigger than allowed
NetSum of output neuron 1 : 1.04 
Activation of output neuron 1 before Threshold 0.74 after Threshold 1.00 
Output Error Eo of output neuron 1  is  1.00 
NetSum of output neuron 2 : 1.00 
Activation of output neuron 2 before Threshold 0.73 after Threshold 1.00 
Output Error Eo of output neuron 2  is  1.00 
Output Error Eo too big!

You have to add another evolving neuron.
Insert new EV Element at 21
 WI =  0.0  1.0  1.0  1.0  WO =  0.0  0.0  EV =  Activity : 1.0 Distance : 0.0
  Oc  =
 
    1.0358984    1.    1.  
    1.           1.    1.  
 WO  =
 
    1.    0.  
    0.    0.  
    0.    0.  
    1.    0.  
    0.    0.  
    0.    0.  
    1.    0.  
    0.    0.  
    0.    0.  
    1.    0.  
    0.    0.  
    0.    0.  
    0.    1.  
    0.    0.  
    0.    0.  
    1.    0.  
    0.    0.  
    0.    0.  
    0.    1.  
    0.    0.  
    0.    0.  
 WI  =
 
    1.    1.    0.    0.  
    1.    0.    0.    0.  
    1.    0.    1.    0.  
    1.    1.    0.    0.  
    0.    1.    0.    0.  
    0.    1.    1.    0.  
    1.    1.    0.    0.  
    0.    0.    0.    1.  
    1.    1.    0.    1.  
    1.    1.    0.    0.  
    0.    1.    1.    1.  
    1.    0.    0.    0.  
    0.    0.    1.    1.  
    1.    0.    1.    0.  
    0.    1.    0.    0.  
    0.    0.    1.    1.  
    0.    1.    1.    0.  
    0.    0.    0.    1.  
    0.    0.    1.    1.  
    1.    1.    0.    1.  
    0.    1.    1.    1.  
 EV  =
 
    0.1339746    0.8660254  
    0.           1.         
    0.1339746    0.8660254  
    0.1339746    0.8660254  
    0.2928932    0.7071068  
    0.5          0.5        
    0.1339746    0.8660254  
    0.2928932    0.7071068  
    0.2928932    0.7071068  
    0.1339746    0.8660254  
    1.           0.         
    0.           1.         
    0.5          0.5        
    0.1339746    0.8660254  
    0.2928932    0.7071068  
    0.5          0.5        
    0.5          0.5        
    0.2928932    0.7071068  
    0.5          0.5        
    0.2928932    0.7071068  
    1.           0.


Gerd Doeben-Henisch 2012-03-31