Beruflich Dokumente
Kultur Dokumente
.) '1
INTRODUCCI~N
.....................................................................................................................................
CLASIFICADORES TRADICIONALES Y DE REDES NEURONALES
.............................................
3
5
ELCLASIFICADOR
TRADICIONAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
.................................................................................
ELELEMENTO
DE PROCESAMIESTO
GENERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
14
INTRODUCCI~N
..........................................................................................................................................
DESCRIPCI~N
DE LARED DEHOPFIELD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ALGORITMO
DE LA RED DEHOPFIELD
..........................................................................................................
LIMITACIONES DE LARED DEHOPFIELD
.......................................................................................................
14
20
15
18
19
INTRODUCCI~N
.......................................................................................................................................... 20
DESCRIPCI~N
DE LA RED DEH ~ ~ I I . .N
. . . .G
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
ALGORITMO
DE LA RED DEHAMMING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
LIMITACIONES
Y VENTAJAS DE LARED DEHAhlMING.................................................................................... 24
EL CLASIFICADOR DE CARPENTER-GROSSBERG ......................................................................
25
INTRODUCCI~N
.........................................................................................................................................
2~
DESCRIPCI~N
DE LA RED DE ChRPEN'rEK-GKOSSBI~R
................................................................................... 26
ALGORITMO
DE LA RED DE CARPENTEK-GROSSUEIlG.................................................................................... 28
LIMITACIONES
Y VENTAJAS DE LARED DE CARPENTER-GROSBERG ............................................................... 30
IMPLEMENTACION .............................................................................................................................
31
31
38
BIBLIOGRAFIA ..................................................................................................................................... 53
Introduccin
El desarrollo de las redes neuronales artificiales comenz
aproximadamente hace 50 aos, motivado por por un deseo de tratar
de comprender ambos, el cerebro y para simular algunas de sus
capacidades.
Las redes neuronales son bsicamente modelos matemticos
de procesamiento de informacin. La.s redes proporcionan un mtodo
de representar relaciones que son bastante diferentes de las
maquinas de programa almacenado. Como con otros mtodos
numricos, la disponibilidad de recursos de computadora, sea
hardware o software, mejora en mucho la utilidad del enfoque,
especialmente para problemas grandes.
Hay muchas tareas que son adecuadas para resolverse en las
computadoras convencionales, corno por ejemplo : solucin de
problemas cientficos y matemticos, creacin, manipulacin y
mantenimiento de bases de datos, comunicacin electrnica y
procesamiento de palabras entre otras.
En contraste hay muchas aplicaciones que desearan
automatizarse debido a la complejidad asociada con programar una
computadora para realizar tareas. Hay una amplia variedad de
problemas que pueden resolverse, pero su solucin es difcil
empleando sistemas secuenciales; esta distincin es importante. Si
la nica herramienta de que se dispone es una computadora
secuencial, entonces trataremos de atacar cada problema en
trminos de algoritmos secuenciales.
En muchas aplicaciones se desea que las computadoras
resuelvan problemas complejos de reconocimiento de patrones.
Unaventaja significativa del enfoque de redes neuronales
para resolver problemas es que no SE?requiere tener un proceso bien
definido para convertir a travs de un algoritmo, una entrada a una
salida. Mas que nada se requiere, para la mayora de las redes una
coleccin de ejemplos representativos de interpretacin deseada.
Una red neuronal se adapta a si rnlisma para producir las salidas
deseadas cuando se le proporciona una entrada.
Por otra parte una red neuronal es una estructura robusta en
el sentido que responder con una salida aun cuando se presenten
entradas desconocidas, tales como patrones conteniendo ruido,
Recientemente el campo de las redes neuronales artificiales
ha cobrado mayor importancia, provocada principalmente por la
creacin de nuevas topologas y algoritmos, as como tambin por el
desarrollo de tcnicas analgicas \/LSI y la creencia de que el
procesamiento
en
paralelo es esencial para el reconocimiento
eficiente de voz e imagen.
Los clasificadores ptimos de error mnimo son una clase de
modelos de redes neuronales que se emplean en el reconocimiento
de patrones binarios alterados.
En vez de ejecutar un programa de instrucciones
secuencialmente como enel caso de unacomputadorade
Von
Neumann, los modelos de redes neuronales exploran muchas
hiptesis compitiendo simultneamente, usando redes masivas en
paralelo compuestas de muchos'
elementos
computacionales
conectados por ligas con pesos variables.
a bloques para
Smbolos de
entrada
Clasificador Tradicional
Smbolo de salida para
la clase mas parecida
entrada,
analgicos
valores
x0
x1
scores intermedios
b
x0
X.
deCalculo
"matching
Seleccin y
mximo mejoramiento
score"
Xm:
b
A
__c_
Clasificador de Red Neuronal
El clasificador tradicional
El clasificador tradicional tiene dosetapas.Laprimeretapa
calcula los matching scores para cada clase y la segunda selecciona
la clase con el mximo score. Lasentradas a la primeretapa son
smbolos que representan valoresde los N elementos de entrada.
Estos smbolos entran secuencialmente y son decodificados de una
formasimblicaexterna
en una representacin interna til para
realizar operaciones aritmticas y simlblicas. Un algoritmo calcula un
matching score para cada una de las M clases el cual indica que tan
cercanamente la entrada apareja el patrn muestra para cada clase.
Este patrn muestra es aquel patrn el cual es el mas representativo
de cada clase. En muchas situaciones se emplea un modelo
probabilistico para modelar la generacin de patrones de entrada a
partir de muestras y los matching scores representan la probabilidad
de que el patrn de entrada haya sidlo generado de cada una de las
M posibles muestras. En esos casos se hacen suposiciones fuertes
concernientes a las distribuciones subordinadas de los elementos de
entrada.Entoncesse pueden estimar parmetros de distribuciones
usando un datos de entrenamiento como se muestra en la figura. A
menudo se emplean distribuciones Gaussianas multivariadas para
algoritmos relativamente simples para calcular matching scores. Los
matching scores se codifican en representaciones simblicas y pasan
secuencialmente a la segunda etapa del clasificador. En esta
segunda etapa son decodificadas y La clase con el mximo score es
seleccionada. Un smbolo representando esa clase se enva al
exterior para completar la tarea de clasificacin.
~
3.
4.
5.
6.
7.
[OJ]
= ( x = ( X l , X 2 , ..., xn)
&I
o < xi I 1 v 1si I n )
Los dos ltimos cubos se llaman cuba binario discreto y cubo bipolar
discreto respectivamente.
Los vectores en
{-l,l]'
son llamados vectores bipolares.
10
!
Xi).
11
Comosemuestra
en la figulra, las entradas al EP estn
separadas en varios tipos. Una entrada de conexin puede ser
excitadora o inhibitoria.
Cada EP determina un valor de entrada total basado en todas
sus conexiones de entrada. En ausencia de conexiones especiales,
tpicamente se calcula la entrada total sumando los valores de
entrada, multiplicados por sus correspondientes pesos.
La entrada total a la i-esima unidad es :
net = S xjwij
Donde el ndice j corre sobre todas las conexiones al elemento
de procesamiento. Las excitacio,nes e ihnibiciones pueden
determinarse por el signo de los pesols. Dado que hay por lo general
un numero muy grande de interconexiones en una red , la rapidez a
la cual pueda realizarse este calculo determina generalmente la
ejecucin de la simulacin de cualquier red dada.
Una vez que la entrada es calculada, esta se convierte a un
valor de activacin, para el EP. Este valor de activacin se puede
escribir como sigue:
ai(t) = Fi (ai(t-l),neti(t))
La red de Hopfield
Introduccin
Lamemoria
asociativa pareceser
una de las funciones
principales del cerebro. Nosotros fcilmente asociamos el rostro de
un amigo consu
nombre, o bien un nombre conun
numero
telefnico.
Muchos dispositivos exhiben caractersticas de
memoria
asociativa. Por ejemplo, el banco de memoria en una computadora es
un tipo de memoria asociativa: este asocia direcciones con datos.
La
memoria
de
Hopfield, en particular juega
un
papel
importante en el resurgimiento actual de inters en el rea de
sistemas neuronales artificiales.
La red de Hopfield esuna red de entrada binaria del tipo
supervisada; estas redes son mas apropiadas cuando es posible una
representacin binaria exacta como er;l el caso de patrones.
En el presente trabajo se realiza la implementacion de la red
de Hopfield tratndola como
una
memoria
direccionable de
contenido, aplicndola al reconocimiento de patrones.
Hopfield escribi dos documentos altamente confiables sobre
redes neuronales en 1982 y 1984 y esto persuadi a cientos de
cientficos altamente calificados, matemticos y tcnologos a unirse
al campo naciente de las redes neuronlales. El trabajo de Hopfield fue
la mas importante contribucin al revitalizado campo.
14
para i = 42,. . . y
Los elementos de procesamiento de la red se actualizan uno a
la vez. La nica restriccin en lo que se refiere a estas
actualizaciones es que todos los elementos de procesamiento deben
actualizarse a la misma razn promedio.
La red de Hopfield no tiene una1 ley de aprendizaje asociada a
su funcin de transferencia. La matriz de pesos (n x n )
W =( WIJ)(la
w . . = w . .para todo i, j
{1,2!7...7n},
y
w.
.= O para todo i E {1,2,..., n ]
I1
15
Red neuronal de Hopfield que puede emplearse como una rnernoria direccionable de contenido
Paso Uno
Asignarpesos de conexidn
En estaformula
!I
la
cual
puede ser a+ o - esel
nodoj y
muestra para la clase S .
Paso Dos
elemento i de la
X,
la
Iterarhastaconvergencia
18
19
La red de Hamming
lntroduccin
La memoria
es
crtica para cualquier sistema
de
procesamiento de informacin que recuerde o deduzca la misma. La
memoria de una red neuronal reside en los pesos, los cuales
pueden ser prealmacenados o entrenados adaptivamente por un
mecanismo de aprendizaje.
En trminos de cmo los pe:;os son obtenidos, las redes
neuronales pueden ser clasificadas en tres categoras, a saber:
pesos fijos, supervisadas y no supervisadas.
Vamos a estudiar un tipo de redde
memoria asociativa
conocida como Red de Hamming. Dicha red pertenece a la
categora de pesos fijos, es decir, stos son almacenados
previamente. Este tipo de redes estn diseadas para recuperar el
patrn original (libre de errores) de una seal que se considera ha
sufrido distorsin.
20
Y1
YO
ym-I
..................
MAXNET, selecciona
el mximo
....................
x0
XI
xn-2
xn-I
La distancia de Hamming es el nmero de bits en los que difiere el patron de entrada con los patrones
almacenados en la red.
N
2
1"-
OrZ<N-l,O~jI"l
En la subred superior:
k=l
En esta ecuacin
(1) es la
22
I V .
23
24
El clasificador de Carpenter-Grossberg
/nffoduccin
Carpenter y Grossberg en el desarrollo de su teora de
resonancia adaptativa han diseado una red la cual forma grupos y
es entrenada sin supervisin. Esta red implementa un algoritmo de
agrupamiento gua
que
selecciona
la primera entrada como la
muestra para el primer grupo. La siguiente entrada es comparada a
la primera muestra agrupada. Esta sigue al gua y es agrupada con
la primera, si la distancia a la primeral es menor que un umbral. De
otra forma esta es la muestra para un nuevo grupo. El numero de
grupos entonces crece con el tiempo y depende de ambos, el umbral
y la distancia mtrica empleada para comparar entradas a muestras
agrupadas.
25
Salida
Entrada
26
27
Paso Uno
Inicializacin
O<i<N-l
O<j<M-1
setp, 0 1 p < l
Aplicarunaentradanueva
Paso Tres
28
Prueba de vigilancia
entonces ir a1 paso 7,
Otro ir al paso 6
Paso Seis
Paso Siete
ij
Paso Ocho
* ( t + l ) = ? *(?)x.
ij
1
29
30
Implementacin
Los programas para la simulacin del comportamiento de las
redes aqutratadas fueron escritos en lenguaje C, empleando la
versin 2.0 del compilador Turbo C de Borland.
31
1O /* Tamao horizontal */
12 /* Tamao vertical */
1
#define NUMREN 6
#define NUMCOL 120
#define NUMARCH6
int MatrizP[NumClases][NumElem];
int Sel,PorcAlteracion,Cont;
int PatronSel[l20],PatronAlt[l20],PatronSal[l20];
LeePatrones(argv[l],MatrizP);
Sel=atoi(argv[2]);
SeleccionaPat(Sel,MatrizP,PatronSel);
PorcAlteracion=atoi(argv[3]);
AlteraPatron(PatronSel,PatronAlt,PorcAlteracion);
GuardaPatron(PatronAIt,"c:\\proyecto\\s\O");
AlgoritmoDeHopfield(MatrizP,PatronAlt,PatronSal,&Cont);
GuardaPatron(PatronSal,"c:\\proyecto\\s\O");
}I' main *I
32
FILE *Arch;
int Col;
charCaracter;
if ( (Arch=fopen(NomArch,"rl"))==NULL) {
printf("Error : ");
else {
Col=O;
do {
Caracter=getc(Arch);
if ( Caracter-='O ) {
Matriz[Ren][Col++]=l ;/*atoi(Caracter);*/
if ( Caracter=='l' ) {
Matriz[Ren][Col++J=-1 ;/*atoi(Caracter);*/
} while (!feof(Arch));
fclose(Arch);
}/* LeeMuestra *I
/* Esta funcin lee todo el conjunto de muestras almacenadasen archivos de texto, las cuales
pueden ser muestras proporcionadas como ejemplo
o bien mluestras proporcionadas por el
usuario *I
void
LeePatrones(char
Indicadoru,int
Matrizuu)
{
1;
("c:\\proyecto\\salida\\muestra2.txt\0"},
{"c:\\proyecto\\salida\\muestra3.txt\O"},
("c:\\proyecto\\salida\\muestra4.txt\O},
{"c:\\proyecto\\salida\~uestra5.txt\O"},
~c:\\proyecto\\saIida\\muestra6.txt\O")
33
1;
int Ind,Valor;
Valot=atoi(lndicador);
switch (Valor) {
case O : for ( Ind=O ; IndcNUMARCH ; Ind++ ) {
LeeMuestra(lnd,NomArchEjemplo[lnd],Matriz);
break;
case 1 : for ( Ind=O ; IndcNUMARCH ; Ind++ ) {
LeeMuestra(lnd,NomArchMuestra[lnd],Matriz);
1
break;
default :
break;
}PLeePatrones */
lista *I
void BuscaValor(int Lista[l20],int Valorjnt Ind,int *Esta)
{
int Ap;
*Esta = CIERTO;
Ap = O;
if (Ind==O)
*Esta = FALSO;
else {
while ( (Lista[ApJ!=Valor)&&(Ap<lnd) )
Ap++;
if ( Ap>=lnd )
*Esta = FALSO;
}/* Buscavalor */
34
int Ap,i,lnd,Valor,Esta,Cant;
int Lista[l20];
Cant = (N*PorcAlteracion)/lOO;
for ( Ap=O ; ApcN ; Ap++ )
PatronAlt[Ap] = PatronSel[Ap];
Ind = O;
while ( IndcCant ) {
Valor = random(N);
BuscaValor(Lista,Valor,lnd,&Esta);
if ( !Esta ) {
Lista[lnd] = Valor;
Ind++;
}/* AlteraPatron */
/* Esta funcin guardala representacin de un patron enun archivo de texto *I
1
1
fclose(Sa1ida);
else {
printf("E1 archivo no se abrio
...\n");
35
}/* for */
}/* CalculaMatrizT *I
valores de salida */
void ActualizaSalida(int MatrizT[120][120],int PatronAnt[l20],
int PatronAct[l20],int Patronlnicial[l20],int Cont)
{
int Ind,i,Aux;
for ( Ind=O ; IndcN ; Ind++ ) {
Aux = O;
for ( i=O ; icN ; i++)
if ( Cont==l )
Aux = Aux + (MatrizT[i][lnd]*PatronAnt[i])+Patronlnicial[i];
else
Aux = Aux + (MatrizT[i][lnd]*PatronAnt[i])+FatronAct[i];
if ( Aux>O )
PatronAct[lnd] = 1;
else
PatronAct[lnd) = -1;
36
/* AlgoritmoDeHopfield : */
InicializaSalida(Patronlnicial,PatronSalAct);
do { (*Cant)++;
InicializaSalida(PatronSalAct,PatronSal);
ActualizaSalida(MatrizT,PatronSal,PatronSal,kt,
Patronlnicial,*Cont);
RealizaComparacion(PatronSal,PatronSalAc~,&Continua);
} while (Continua);
}/* AlgoritmoDeHopfield */
38
39
Carpenter-Grossberg
*/
40
40
I;
static float MatrizB[N][M] = {
{B_INI,B_INI,B_INI,B_INI),
{B_INI,B_lNl,B_INl,B_INI},
{B_INI,B_INI,B_INI,B_INI),
{B_lNl,B_lNl,B_lNl,B_INI},
{B_INI,B_INI,B_INI,B_INI),
{B~lNl,B~lNl,B_lNI,B_INI},
{B~lNl,B~lNl,B_lNl,B_INI),
{B_lNl,B_lNl,B_lNI,B_lNI},
41
{B_lNl,B_lNI,B_INI,B_lNI},
{B_lNl,B_lNl,B~lNI,B_INI),
{B_INI,B_INI,B_INI,B_lNI},
{B_INI,B_INI,B_INI,B_INI},
{B_INI,B_INI,B_INI,B_INI},
{B_INI,B_INI,B~INI,B_INI},
{B_INI,B_INI,B_INI,B_INI},
{B_INI,B_INI,B_INI,B_INI},
{B~lNl,B_lNl,B~lNl,B~lNI},
{B_lNl,B~lNl,B_lNl,B~INI},
{B_INI,B_INI,B_INI,B~INI},
{B_INI,B_INI,B_INI,B_INI},
{F3_INl,6_lNI,B_INI,B~INI},
{B_lNl,B_lNl,B_lNl,B_INI),
{B~INl,B_INI,B_INl,B~INI},
{B_INI,B_INI,B_INI,B_INI},
{B_INl,B~lNl,B~lNl,B_INI),
{B_lNl,B~lNl,B_lNl,B~iNI},
{B_INl,B~INI,B_INI,B_INI},
{B_INI,B_INI,B_INI,B_INI},
ValidaArgumentosDeEntrada(argc,argv,&RHO);
gettextinfo(&lnicialInfo);
textcolor@VHITE);
textbackground(6LUE);
MuestraEntradasDisponibles(argv[l]);
LeeEntrada(argv[l],VectorX);
for(; ; 1 {
CornputeMatchingScores(MatrizB,VectorX,VectorU);
SelectBestMatchingExernplar(VectorU,&lndiceJ);
VigilanceTestO/ectorX,MatrizT,lndiceJ,RHO,&EsMayor);
if ( !EsMayor) {
TemporarilySetToZero(MatrizB,IndiceJ,MatrizAuxiliar,
Arreglolndicador);
}
42
EnableNodes(MatrizAuxiliar,MatrizB,Arreglolndicador);
gotoxy(2,17); printf("Ultima");
gotoxy(2,18); printf("Entrada");
MuestraVectorX(VectorX,10,14,"");
gotoxy(l7,17); printf("Muestras");
MuestraMatrizT(Matriz~;
LeeEntrada(argv[l],VectorX);
1
J
}/* for */
textmode(lnicial1nfo.currmode);
}/* main */
programa.
Entrada : Argumentos de entrada de la linea de comandos
Salida : Valor validado para RHO
*/
clrscro;
if ( argc!=3 ) {
printf("Nfmer0 de parametros incorrecto...by;
printf("La linea de comandos debe ser : \n\n");
printf("<NombreDelProgramaOpcion ValorRHO>\n\n");
printf("Donde...\n\n");
printf("NombreDe1Programa : CARPNEW\n");
: O (Ejemplo), 1 (Muestras Propias)\n");
printf("0pcion
: Valor
Real
en
[O,l]\n");
printf("ValorRH0
exit (O);
else {
1h'3;
switch ( atoi(argv[l]) ) {
case O : break;
, case 1 : break;
default : printf("E1 parametro2 es incorrecto...\n");
printf("Su valor debe ser O o
exit (O);
break;
if ( (atof(argv[2])<0)[[(atof(argv[2])>1) ) {
printf("E1 parametro 3 es incorrecto...\n\n");
43
else {
}/* ValidaArgumentosDeEntrada */
/* Esta funcien tiene como objetivo validar que la entrada que sera leida de
*I
int VaIidaNumEntrada(void)
{
int NumEntrada;
char Respuesta,Car;
char NumEntradaCad[3]="1 O\O";
do {
'I);
else {
do {
1
NumEntrada=atoi(NumEntradaCad);
if ( (NurnEntradacl) 11 (NumEntrada>S) ) {
gotoxy(2,25);printf("La entrada debe ser un
valor entero en [l
,S]");
}while( ((NumEntrada)<l)
return NumEntrada;
}/* ValidaNumEntrada */
44
11 ((NumEntradapS) );
1
else {
=O;
do {
Caracter=getc(Arch);
if ( Caracter=='O' ) {
VectorX[i++]=O;
if ( Caracter=='l' ) {
VectorX[i++]=l ;
1
}while( !feof(Arch) );
fclose(Arch);
)I* else *I
I/* LeeMuestra */
/* Esta funcign muestraen modo texto las entradas que pueden estar
void MuestraEntradasDisponibles(charIndicadorn)
{
int VaIorlx0=26,y0=5,lnd,Aux;
intVectorX[N];
char CadAux[3];
static char NomArchEjemplo[5][50]= {
rc:\\proyecto\\carpent\\entrada\\ejemplol .txt\O"},
("c:\\proyecto\\carpent\\entrada\\ejemplo5.txt\O"}
1:
45
Valot=atoi(lndicador);
clrscro;
gotoxy(l5,2); printf("Programa para simular lared de Carpenter-Grossberg");
gotoxy(2,8); printf("Entradas");
gotoxy(2,9);printf("Disponibles");
switch (Valor) {
/* Para el ejemplo */
1;
break;
/* Para las muestras proporcionadas porel usuario *I
1;
break;
default : break;
}/* switch */
} P MuestraEntradasDisponibles*/
46
("c:\\proyecto\\carpent\\entrada\\ejemplo.txt\O"},
{"c:\\proyecto\\carpent\\entrada\\muestral.txt\O"},
int NumEntrada,Valor;
Valot=atoi(lndicador);
switch (Valor) {
/* Para el ejemplo */
case O : NumEntrada=ValidaNumEntradaO;
LeeMuestra(NomArchEjemplo[NumEntrada-l],VectorX);
break;
/* Para las muestras del usuario *I
47
}/* switch *I
}/* LeeEntrada */
Carpenter-Grossberg
*/
int iJ;
for ( j = O
: j<M ; j++ ) {
VectorUh]=O;
for ( i=O ; <N ; i++)
VectorU[j] = VectorUo] + MatrizB[i][j] * VectorX[i]:
}/* ComputeMatchingScores */
Carpenter-Grossberg
*I
*IndiceJ = O;
Maximo = VectorU[i];
; icM ; i++ )
for ( =I
if ( VectorU[i]>Maximo ) {
Maximo = VectorU[i];
'IndiceJ = i;
}/* SelectBestMatchingExemplar */
48
Carpenter-Grossberg
*I
int "EsMayor)
{
float Razon,NormaX=O.O,NormaTPuntoX=O.O;
int i;
*EsMayor=FALSO;
for ( i=O ; <N ; i++) {
NormaX = NormaX + VectorX[i];
NormaTPuntoX = NormaTPuntoX + MatrizT[i][lndiceJ]*VectorX[i];
if ( NormaX==O ) {
exit (O);
else {
Razon = NormaTPuntoNNormaX;
if ( RazowRHO )
*EsMayor = CIERTO;
}/* VigilanceTest */
/*
*/
int i;
Arreglolndicador[lndiceJ]=l;
for ( i=O ; icN ; i++) {
MatrizAuxiliar[i][lndiceJ1= MatrizB[i][lndiceJ];
MatrizB[i][lndiceJ) = 0.0;
}
}/* TemporarilySetToZero */
4s
Carpenter-Grossberg
*/
Carpenter-Grossberg
*/
Arreglolndicador[lnd]=O;
}/* for */
}/* EnableNodes */
50
muestra
*/
gotoxy(xO+Z,yO-l); printf("%s",Titulo);
while ( <N ) {
for ( Ind=O; lndc5 ; Ind++ ) {
if ( VectorX[i]==l ) {
gotoxy(x,y); printf("k");
}
else {
i++;
x++;
x = xo;
y++;
}/*while */
}/* MuestraVectorX */
*/
int i,lnd,lnd2;
int x0=26,y0=14;
int x,y;
i = o;
x = xo;
Y = Yo;
Redes neuronales d e entrada binaria/* Esta funcign solo despliega en modo caracter la representacignde una
muestra
*/
int i,lnd;
int x,y;
i = o;
x = xo;
Y = Yo;
gotoxy(x0+2,y0-1); printf("%s",Titulo);
while ( <N ) {
for ( Ind=O; l n d 4 ; Ind++ ) {
if ( VectorX[i]==l ) {
gotoxy(x,y); printf("k");
else {
gotoxy(x,y); printf("
'I);
i++;
x++;
x = xo;
y++;
}/* while */
I/* MuestraVectorX */
int i,lnd,lnd2;
int x0=26,y0=14;
int x,y;
i = o;
x = xo;
Y = yo;
=O;
gotoxy(x0+2,y0-1); printf("M%d",Ind);
while ( <N ) {
for ( lnd2=0 ; l n d 2 ~ 5; lnd2++ ) {
if ( MatrizT[i][lnd]==l ) {
51
ibliografia
1. An introduction to Computing with Neural Nets
Richard P. Lippmann
/EASSP Magazine, April 1987
2. NeuralNetworks,Algorithms,Applications
Techniques
James A. Freeman
David M. Skapura
and Programming
3. Neurocomputing
Robert Hetch-Nieisen
Addison- Wesley
4. FundamentalsofNeuralNetworks,Architectures,Algorithms
and Applications
Laurene Fausett
Prentice Hall
5. Turbo C Reference Guide
Borland lnternational
53