desarrollo del algoritmo de hebb utilizando c

4
Desarrollo del algoritmo de HEBB utilizando c++. Compilador usado: Dev C++ #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int i=0;// variable de conteo // parametros de nuestra funcion double w1[5],b[5],w2[5]; double x1[5],x2[5],y[5]; //asignacion de pesos w1[0]=0; w2[0]=0; b[0]=0; //Funcion logica a Ejecutar OR x1[0]=1; x2[0]=1; y[0]=1; x1[1]=1; x2[1]=-1; y[1]=1; x1[2]=-1; x2[2]=1; y[2]=1; x1[3]=-1; x2[3]=-1; y[3]=-1; //MODELO SIMPLE DE HEBB cout << "modelo perceptron" << endl; cout<<"pesos actualizados:"<<"\n"<<"W1 W2 b"<<endl<<w1[i]<<" "<<w2[i]<<" "<<b[i]<<" "<<endl<<endl; while(i<4) { w1[i+1]=w1[i]+x1[i]*y[i]; w2[i+1]=w2[i]+x2[i]*y[i]; b[i+1]=b[i]+y[i]; cout<<"pesos actualizados:"<<"\n"<<"W1 W2 b"<<endl<<w1[i+1]<<" "<<w2[i+1]<<" "<<b[i+1]<<" "<<endl<<endl; i++; }

Upload: henriquez-valle

Post on 08-Jul-2016

219 views

Category:

Documents


7 download

DESCRIPTION

Uso de c para el desarrollo de algoritmos de RNA

TRANSCRIPT

Page 1: Desarrollo Del Algoritmo de HEBB Utilizando c

Desarrollo del algoritmo de HEBB utilizando c++.Compilador usado: Dev C++

#include <cstdlib>#include <iostream>

using namespace std;

int main(int argc, char *argv[]){ int i=0;// variable de conteo // parametros de nuestra funcion double w1[5],b[5],w2[5]; double x1[5],x2[5],y[5]; //asignacion de pesos w1[0]=0; w2[0]=0; b[0]=0; //Funcion logica a Ejecutar OR x1[0]=1; x2[0]=1; y[0]=1; x1[1]=1; x2[1]=-1; y[1]=1; x1[2]=-1; x2[2]=1; y[2]=1; x1[3]=-1; x2[3]=-1; y[3]=-1; //MODELO SIMPLE DE HEBB cout << "modelo perceptron" << endl; cout<<"pesos actualizados:"<<"\n"<<"W1 W2 b"<<endl<<w1[i]<<" "<<w2[i]<<" "<<b[i]<<" "<<endl<<endl; while(i<4) { w1[i+1]=w1[i]+x1[i]*y[i]; w2[i+1]=w2[i]+x2[i]*y[i]; b[i+1]=b[i]+y[i]; cout<<"pesos actualizados:"<<"\n"<<"W1 W2 b"<<endl<<w1[i+1]<<" "<<w2[i+1]<<" "<<b[i+1]<<" "<<endl<<endl; i++; } i--; //Funcion Inversa, a partir de los pesos calculamos la funcion logica. cout << "funcion inversa" << endl; while(i>=0)

Page 2: Desarrollo Del Algoritmo de HEBB Utilizando c

{ y[i]=b[i+1]-b[i];//b[i+1]=b[i]+y[i]; x1[i]=(w1[i+1]-w1[i])/(y[i]);//w1[i+1]=w1[i]+x1[i]*y[i]; x2[i]=(w2[i+1]-w2[i])/(y[i]);//w2[i+1]=w2[i]+x2[i]*y[i]; cout<<"entrada logica:"<<"\n"<<"X1 X2 Y"<<endl<<x1[i]<<" "<<x2[i]<<" "<<y[i]<<" "<<endl<<endl; i--; } cin.ignore(); return 0 ;}

FUNCIONAMIENTO Y RESULTDO DEL CODIGO

Desarrollo del algoritmo de HEBB utilizando python.Compilador usado: LiClipse

'''Created on 10 de mar. de 2016

@author: Luis Valle'''i=0'PARAMETROS DE NUESTRA FUNCION'W1=[0,0,0,0,0]W2=[0,0,0,0,0]X1=[0,0,0,0,0]X2=[0,0,0,0,0]B=[0,0,0,0,0]Y=[0,0,0,0,0]

Page 3: Desarrollo Del Algoritmo de HEBB Utilizando c

'ASIGNACIONES DE PESOS'W1[0]=0W2[0]=0B[0]=0

'VALORES DE ENTRADA, EJECUTANDO FUNCION LOGICA OR'X1[0]=1 X2[0]=1 Y[0]=1X1[1]=1 X2[1]=-1 Y[1]=1X1[2]=-1 X2[2]=1 Y[2]=1X1[3]=-1 X2[3]=-1 Y[3]=-1

print("MODELO DE HEBB, FUNCION LOGICA OR") print("Pesos actualizados") print("w1 w2 b") print (W1[0],' ',W2[0],' ',B[0])

while i < 4: W1[i+1]=W1[i]+X1[i]*Y[i]; W2[i+1]=W2[i]+X2[i]*Y[i]; B[i+1]=B[i]+Y[i]; print("Pesos actualizados") print("w1 w2 b") print (W1[i+1],' ',W2[i+1],' ',B[i+1]) i +=1

FUNCIONAMIENTO Y RESULTDO DEL CODIGO

Page 4: Desarrollo Del Algoritmo de HEBB Utilizando c

GUIA DE USUARIO

1. Establecemos los parámetros y variables que va a utilizar nuestro algoritmo(HEBB)2. Asignación de pesos acorde al algoritmo utilizado, en nuestro caso inicializamos W1, W2 y B

igual a 0.3. Activamos las unidades de entradas X1=S1 Y X2=S2, acorde a la función lógica a analizar

(función OR)4. Activamos las unidades de salidas y=t5. Actualizamos los pesos según las condiciones dadas para el algoritmo de HEBB

W1[Nuevo]=W1[Anterior]+X1*Y; W2[Nuevo]=W2[Anterior]+X2*Y; B[Nuevo]=B[Anterior]+Y;

6. Finalizamos el bucle