[C con Clase] Ejemplo sencillo Inteligencia Artificial.

Adolfo Cárdenas adocardenas en gmail.com
Sab Nov 14 16:53:39 CET 2009


También me parece mejor hacer una implementación propia.

Pienso que se debería empezar por una rutina de aprendizaje
Sería la parte principal del programa.

El programa debe tender a: 1) imitar un "cerebro" con su respectiva
"memoria", 2) tener "sentidos" y 3)"acciones externas".

ej:

class memoria
 {
  public:
  int archivo;
  BYTE buffer;
  /*aquí siga diseñando una memoria(aunque con un archivo y un buffer es
suficiente) del programa donde se guarden impresiones que el programa tuvo
de las captaciones de datos externos que hizo mediante sus "sentidos". Aquí
también se guardan las "deducciones" que el programa hizo de acuerdo a un
análisis de la misma memoria y de otros datos externos captados";*/
};

struct S
 {
  int sentido_actual =  0;
  int otrosdatos;
};

class Aprende() //Cerebro
{

  memoria mem;
  S my_s;
  int acciones[100];

  public:
  void actividad();
  void sentidos();
  void modificar_exterior();
  void revisar_memoria();
  void deducir();
};

void Aprende::Aprende()
 {
   /* inicializar el archivo de la memoria puede llamarlo memoria.txt y
asignarlo a la veriable mem.m;
  crearlo, llenarlo con algunos valores, etc.*/
};

//Su funcion actividad tiene el mando de la forma de inteligencia.

void Aprende::actividad()
{
  for(int x = 0; x < 100; i++)
  {
    switch(acciones[x])
    {
      case 0: break;//No hacer nada.
      case 2: ...... break;
      case 1:
        //Autoprogramar acciones.
       for (n = 0; n < 100; n++)
        acciones[n] = ... //Llenar valores de acuerdo a alguna estructura
"S" que usted diseñe
       break;
       case 3:
         sentidos(); //Captar datos del "mundo exterior"
       break;
       case 4:
         modificar_exterior();//Modificar algunos datos del "mundo exterior"
       break;
       case 5: //variar sentido que se usa en el momento de acuerdo a su
propia fórmula.
          if(my_s.sentido_actual) my_s.sentido_actual--;
       break;
       case 6:
          revisar_memoria();
       break;
    }
  }
}

void Aprende::sentidos() //Captar datos del mundo exterior
{
  switch(my_s.sentido_actual)
   {
    case 0:
       //LEER ALGUN ARCHIVO
    break;
    case 1:
       //LEER DATOS DE ALGUN PUERTO
    break;
    case 2:

    break;
  }
}

void Aprende::modificar_exterior()
{
  //GRABAR DATOS EN ARCHIVOS, ENVIAR DATOS POR PUERTOS AL EXTERIOR.
}

 void Aprende::revisar_memoria()
{
  //LEER EL ARCHIVO DE MEMORIA mem.archivo Y EL BUFFER DE MEMORIA
mem.buffer;
  //QUE EL PROGRAMA SAQUE ALGUNA DEDUCCION DE ACUERDO A LOS DATOS LEIDOS.
    deducir();
}
void Aprende::deducir()
 {
  ...SACAR ALGUNA DEDUCCION DE ACUERDO ALGUNA FORMULA O ESTRUCTURA DISEÑADA
POR USTED Y GRABARLA TAMBIEN EN LA MEMORIA mem.archivo y
mem.buffer(AUTOALIMENTACION)
LA FORMULA  O LAS FORMULAS PUEDEN ESTAR GUARDADAS EN LA ESTRUCTURA S Y EN LA
MISMA MEMORIA POR EJEMPLO SI SE LEYERON.
}
void main()
 {
  Aprende IE;

  while(duracion)
   {
    IE.actividad();
   }
}
Si hay alguna duda preguntar para continuar con el ejemplo.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20091114/62c63139/attachment.html>


Más información sobre la lista de distribución Cconclase