Quick actions

cmd+k|ctrl+k

Navigation

Languages

Perceptrón simple

Snippet info

Language

C

Visibility

public

Author

rcruz

Created

2016-05-09T04:13:17Z

Updated

2016-05-09T04:29:09Z

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    typedef enum { false, true } boolean;
    int main ()
    {
      float datos[3][4];
      
      datos[0][0] = 1;
      datos[1][0] = 1;
      datos[2][0] = 1;
      
      datos[0][1] = 1;
      datos[1][1] = 0;
      datos[2][1] = 0;
      datos[0][2] = 0;
      datos[1][2] = 1;
      datos[2][2] = 0;
      datos[0][3] = 0;
      datos[1][3] = 0;
      datos[2][3] = 0;
      float pesos[3];
      srand48(time(NULL));
      pesos[0] = (drand48() * 2) - 2;
      pesos[1] = (drand48() * 2) - 2;
      pesos[2] = (drand48() * 2) - 2;
      
      boolean aprendiendo = true;
      int salidaEntera;
      int cont;
      float salidaReal;
      float tasaDeAprendizaje = 0.3;
      float error;
      while (aprendiendo) {
        aprendiendo = false;
        for (cont = 0; cont <= 3; cont ++) {
          salidaReal = datos[0][cont] * pesos[0] + datos[1][cont] * pesos[1] + pesos[2];
          if ( salidaReal > 0 ){
          salidaEntera = 1;
          }else{
          salidaEntera = 0;
          }
          error =  datos[2][cont] - salidaEntera;
          if (error != 0) {
          pesos[0] = pesos[0] + tasaDeAprendizaje * error * datos[0][cont];
          pesos[1] = pesos[1] + tasaDeAprendizaje * error * datos[1][cont];
          pesos[2] = pesos[2] + tasaDeAprendizaje * error * 1;
          aprendiendo = true;
          }
        }
      }
      for (cont = 0; cont <= 3; cont++ ) {
        salidaReal = datos[0][cont]*pesos[0] + datos[1][cont]*pesos[1] + pesos[2];
        if ( salidaReal > 0 ){
          salidaEntera = 1;
        }else{
          salidaEntera = 0;
        }
        printf ("%d \n",salidaEntera);
      }
      return 0;
    }
INFO