学习算法如下:
1.设置变量和参量:
X(n)=[1,x1(n),x2(n),...,xm(n)]T,为输入向量,或称训练样本。
W(n)=[b(n),w1(n),w2(n),...,wm(n)]T,为权值向量。
……
……见人工神经网络原理及仿真实例 第2版 高隽 25页。
#include<iostream> using namespace std; #define N 100 //迭代次数 int main() { long i,x[4][3]={{1,0,0},{1,0,1},{1,1,0},{1,1,1}}; double w[N][3],m,y,r=0.8,d[4]={0,1,1,1};//目标函数d改为0001即为“与” int n=0; for(i=0;i<3;i++){ w[0][i] = 0.5; } while(n<N-1){ m = w[n][0]+w[n][1]*x[n%4][1]+w[n][2]*x[n%4][2]; if(m<0) y=0; else y=1; for(i=0;i<3;i++){ w[n+1][i] = w[n][i]+r*(d[n%4]-y)*x[n%4][i];//改权值 } n++; } for(i=0;i<3;i++){cout<<w[n][i]<<endl;} system("pause"); }