Main Search
Forum  Strona Główna
 
 
FAQ Members Groups Profile Private Messages

prog

 
Napisz nowy temat   Odpowiedz do tematu    Forum Strona Główna -> Sztuczna inteligencja
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Gość







PostWysłany: Sob 16:54, 19 Sty 2008    Temat postu: prog

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

int cu[4][4] = {
{0,0,1,0},
{0,1,1,1},
{1,0,1,1},
{1,1,1,1}
};
int beta = 1;
int a = 0;
double eta = 0.1;
double s[4] = {0.0, 0.0, 0.0, 0.0};
double w[3]={0.1, -0.3, 0.2};
double wzbudzenie[4]= {0.0, 0.0, 0.0, 0.0};
double roznica[3] = {0.0, 0.0, 0.0};
int main()
{

for(int i=0; i<=3; i++){
printf("ciag wejsciowy %d %d %d %d\n", cu[i][0],cu[i][1],cu[i][2],cu[i][3]);
}

//-------------WAGI /wyświetlanie
printf("\n\n");
for(int i=0; i<=2; i++){ printf("w[%d]= %f \n", i, w[i]);}
printf("\n\n");
//---------------

do{ printf("========epoka %d===========\n", a++);
for(int k=0;k<=2; k++){

for(int i=0; i<=3; i++){
for(int j=0; j<=2; j++){
s[i]+=w[j]*cu[i][j];
}

wzbudzenie[i] = 1/(1+ exp(-beta*s[i]));
printf("s[%d]= %f\n", i, s[i]);
printf("wzbudzenie[%d]= %f\n\n", i, wzbudzenie[i]);
roznica[k] += wzbudzenie[i]-cu[i][3];
printf("roznica[%d] = %f\n\n",k, roznica[k]);

}
}

printf("\n\n");
for(int k=0;k<=2; k++){
for( int i=0; i<=3; i++){
w[k]-= eta*roznica[k]*cu[k][i]*beta*(1-wzbudzenie[i])*wzbudzenie[i];
}
printf("w[%d] = %f\n\n",k, w[k]);
}
for(int k=0;k<=2; k++){
for(int i=0; i<=3; i++){
roznica[k] += wzbudzenie[i]-cu[i][3];

}
printf("roznica[%d] = %f\n\n",k, roznica[k]);
}
}
while( roznica[0]*roznica[0]>=0.1 && roznica[1]*roznica[1]>=0.1 && roznica[2]*roznica[2]>=0.1);




// for(int i=0; i<=3; i++){
// for(int j=0; j<=2; j++){















/* for(int j=0; j<=2; j++){
s+= w[j]*cu[i][j];
}

if(s>=0) y=1; else y=0;

delta[i] = cu[i][3]-y;

printf("s=%f \n", s);
printf("y=%d \n", y);
printf("delta=%d \n", delta[i]);

for(int u=0; u<=2; u++){
w[u]+= eta*2*delta[i]*cu[i][u];
printf("w[%d]=%f \n", u, w[u]);
}
s=0;

}
for(int i=0; i<=3; i++){
printf("\ndelta[%d] = %d \n" , i, delta[i]);
}
z++;
}
while( delta[0]==delta[1]==delta[2]==delta[3]==0);


*/

system("PAUSE");
return EXIT_SUCCESS;
}
Powrót do góry
Gość







PostWysłany: Sob 17:35, 19 Sty 2008    Temat postu:

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

int cu[4][4] = {
{0,0,1,0},
{0,1,1,1},
{1,0,1,1},
{1,1,1,1}
};
int beta = 1;
int a = 0;
double eta = 0.1;
double s[4] = {0.0, 0.0, 0.0, 0.0};
double w[3]={0.1, -0.3, 0.2};
double wzbudzenie[4]= {0.0, 0.0, 0.0, 0.0};
double roznica = 0.0;
int main()
{

for(int i=0; i<=3; i++){
printf("ciag wejsciowy %d %d %d %d\n", cu[i][0],cu[i][1],cu[i][2],cu[i][3]);
}

//-------------WAGI /wyświetlanie
printf("\n\n");
for(int i=0; i<=2; i++){ printf("w[%d]= %f \n", i, w[i]);}
printf("\n\n");
//---------------

do{ printf("\n\n========epoka %d===========\n\n", a++);

for(int i=0; i<=3; i++){
for(int j=0; j<=2; j++){
s[i]+=w[j]*cu[i][j];
}

wzbudzenie[i] = 1/(1+ exp(-beta*s[i]));
printf("s[%d]= %f\n", i, s[i]);
printf("wzbudzenie[%d]= %f\n\n", i, wzbudzenie[i]);
roznica+= wzbudzenie[i]-cu[i][3];
printf("roznica = %f\n\n",roznica);

}


printf("\n\n");
for(int k=0;k<=2; k++){
for( int i=0; i<=3; i++){
w[k]-= eta*roznica*cu[k][i]*beta*(1-wzbudzenie[i])*wzbudzenie[i];
s[i]=0.0;

}
printf("w[%d] = %f\n\n",k, w[k]);
}

for(int i=0; i<=3; i++){
roznica+= wzbudzenie[i]-cu[i][3];


}
printf("roznica^2 = %f\n\n", roznica*roznica);
}
while( pow(roznica,2)>=0.1);




// for(int i=0; i<=3; i++){
// for(int j=0; j<=2; j++){















/* for(int j=0; j<=2; j++){
s+= w[j]*cu[i][j];
}

if(s>=0) y=1; else y=0;

delta[i] = cu[i][3]-y;

printf("s=%f \n", s);
printf("y=%d \n", y);
printf("delta=%d \n", delta[i]);

for(int u=0; u<=2; u++){
w[u]+= eta*2*delta[i]*cu[i][u];
printf("w[%d]=%f \n", u, w[u]);
}
s=0;

}
for(int i=0; i<=3; i++){
printf("\ndelta[%d] = %d \n" , i, delta[i]);
}
z++;
}
while( delta[0]==delta[1]==delta[2]==delta[3]==0);


*/

system("PAUSE");
return EXIT_SUCCESS;
}
Powrót do góry
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Strona Główna -> Sztuczna inteligencja Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Back to Top              
fora.pl - załóż własne forum dyskusyjne za darmo
Jenova Template © digital-delusion.com
Powered by phpBB © 2001, 2002 phpBB Group

Regulamin