Forum Strona Główna
->
Sztuczna inteligencja
Napisz odpowiedź
Użytkownik
Temat
Treść wiadomości
Emotikony
Więcej Ikon
Kolor:
Domyślny
Ciemnoczerwony
Czerwony
Pomarańćzowy
Brązowy
Żółty
Zielony
Oliwkowy
Błękitny
Niebieski
Ciemnoniebieski
Purpurowy
Fioletowy
Biały
Czarny
Rozmiar:
Minimalny
Mały
Normalny
Duży
Ogromny
Zamknij Tagi
Opcje
HTML:
TAK
BBCode
:
TAK
Uśmieszki:
TAK
Wyłącz HTML w tym poście
Wyłącz BBCode w tym poście
Wyłącz Uśmieszki w tym poście
Kod potwierdzający: *
Wszystkie czasy w strefie CET (Europa)
Skocz do:
Wybierz forum
Semestr VII
----------------
Pakiety oprogramowania matematycznego
GIS i teledetekcja
Sztuczna inteligencja
Modelowanie procesów dynamicznych
Semestr VI
----------------
Inżynieria Oprogramowania
Projektowanie stron WWW
Bazy danych
Analiza przetwarzania obrazów
Semestr V
----------------
Geometria i grafika komp.
Architektura komp.
Systemy operacyjne
Geofizyka :/
Semestr IV
----------------
Programowanie Obiektowe
Teoria Sygnałów
Sieci Komputerowe
Mikroprocesory
Metody Numeryczne
Inne
----------------
Inne pierdoły
Przegląd tematu
Autor
Wiadomość
Gość
Wysł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;
}
Gość
Wysł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;
}
fora.pl
- załóż własne forum dyskusyjne za darmo
Jenova Template ©
digital-delusion.com
Powered by
phpBB
© 2001, 2002 phpBB Group
Regulamin