#include "stdafx.h"
#include "math.h"
#include "stdio.h"
#include "time.h"
//#include <conio.h>
#include "stdlib.h"
#include "iostream.h"
#define ALINE 6
#define BLINE 6
#define CLINE 6
int main(int argc, char* argv[])
{
double y[CLINE],yd[CLINE],w0[ALINE][BLINE],w1[BLINE][BLINE];
double w2[BLINE][CLINE],x0[ALINE],x1[BLINE],x2[BLINE];
double dw0[ALINE][BLINE],dw1[ALINE][ALINE],dw2[BLINE][CLINE];
double nt0[BLINE],nt1[BLINE],nt2[BLINE];
double dt2[BLINE],dtf2[BLINE];
double dt6[BLINE],dtf6[BLINE];
double dtf[CLINE],rf;
int i,j,k,ii,jj,kk;
x0[0]=0.067583;
x0[1]=10.884163;
x0[2]=6.46034;
x0[3]=0.79934;
x0[4]=0.0;
x0[5]=0.384163;
x0[6]=0.6034;
x0[7]=0.34;
x0[8]=0.0;
x0[9]=0.384163;
x0[10]=0.6034;
yd[0]=0.43;
yd[1]=0.2;
yd[2]=0.3;
yd[3]=0.4;
yd[4]=0.5;
yd[5]=0.6;
yd[6]=0.7;
yd[7]=0.8;
yd[8]=0.9;
yd[9]=0.25;
yd[10]=0.35;
srand( (unsigned)time( NULL ) );
// srand(time(0));
for(i=0;i<ALINE;i++)
{
for(j=0;j<BLINE;j++)
{
w0[i][j]=rand()/(231200.0);
cout<<w0[i][j]<<" ";
}
}
for(i=0;i<BLINE;i++)
{
for(j=0;j<BLINE;j++)
{
w1[i][j]=rand()/(231200.0);
}
}
for(i=0;i<BLINE;i++)
{
for(j=0;j<CLINE;j++)
{
w2[i][j]=rand()/(231200.0);
}
}
cout<<endl;
for(jj=0;jj<10000;jj++)
{
rf=1.088;
if(jj>=15)
{
rf=0.88;
}
if(jj>=20)
{
rf=0.1;
}
for(i=0;i<BLINE;i++)
{
nt0[i]=0;
for(k=0;k<ALINE;k++)
nt0[i]+=x0[k]*w0[k][i];
//cout<<nt0[i]<<endl;
x1[i]=1.0/(1.0+exp(-nt0[i]));
//cout<<"x1[i]="<<x1[i]<<" ";
//printf("%10.5f",x1[i]);
printf("\n");
}
for(i=0;i<BLINE;i++)
{
nt1[i]=0;
for(k=0;k<BLINE;k++)
nt1[i]+=x1[k]*w1[k][i];
x2[i]=1.0/(1.0+exp(-nt1[i]));
//cout<<x2[i]<<endl;
//printf("%10.5f",x2[i]);
// printf("\n");
}
//printf("%6d",jj);
for(i=0;i<CLINE;i++)
{
nt2[i]=0;
for(k=0;k<BLINE;k++)
nt2[i]+=x2[k]*w2[k][i];
y[i]=1.0/(1.0+exp(-nt2[i]));
printf("%10.5f",y[i]);
}
printf("%6d",jj);
printf("\n");
for(i=0;i<CLINE;i++)
{
dtf[i]=y[i]*(1.0-y[i])*(yd[i]-y[i]);
}
for(i=0;i<BLINE;i++)
{
for(j=0;j<CLINE;j++)
{
dw2[i][j]=rf*dtf[j]*x2[i];
}
}
for(i=0;i<BLINE;i++)
{
for(j=0;j<CLINE;j++)
{
w2[i][j]=w2[i][j]+dw2[i][j];
printf("%10.5f",w2[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0;i<BLINE;i++)
{
dt2[i]=0;
for(k=0;k<CLINE;k++)
dt2[i]+=dtf[k]*w2[i][k];
for(i=0;i<BLINE;i++)
{
dtf2[i]=x2[i]*(1.0-x2[i])*dt2[i];
}
for(i=0;i<BLINE;i++)
{
for(j=0;j<BLINE;j++)
{
dw1[i][j]=rf*x1[i]*dtf2[j];
}
}
for(i=0;i<BLINE;i++)
{
for(j=0;j<BLINE;j++)
{
w1[i][j]=w1[i][j]+dw1[i][j];
}
}
for(i=0;i<BLINE;i++)
{
dt6[i]=0;
for (k=0;k<BLINE;k++)
dt6[i]+=dtf2[k]*w1[i][k];
}
for(i=0;i<BLINE;i++)
{
dtf6[i]=x1[i]*(1.0-x1[i])*dt6[i];
}
for(i=0;i<ALINE;i++)
{
for(j=0;j<BLINE;j++)
{
dw0[i][j]=rf*x0[i]*dtf6[j];
}
}
for(i=0;i<ALINE;i++)
{
for(j=0;j<BLINE;j++)
{
w0[i][j]=w0[i][j]+dw0[i][j];
}
}
cout<<endl;
}/*
cout<<"*"<<endl;*/
}
printf("Hello World!\n");
// cout<<"+";
return 0;
}