Sunteți pe pagina 1din 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++;
}
i--;
//Funcion Inversa, a partir de los pesos calculamos la funcion logica.
cout << "funcion inversa" << endl;
while(i>=0)
{
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]
'ASIGNACIONES DE PESOS'
W1[0]=0
W2[0]=0
B[0]=0

'VALORES DE ENTRADA, EJECUTANDO FUNCION LOGICA 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
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

GUIA DE USUARIO

1. Establecemos los parmetros y variables que va a utilizar nuestro


algoritmo(HEBB)
2. Asignacin 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 funcin
lgica a analizar
(funcin OR)
4. Activamos las unidades de salidas y=t
5. Actualizamos los pesos segn 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

S-ar putea să vă placă și