Ejecute un sistema experto en HTML

componenteseLa Inteligencia Artificial (IA) sigue siendo una ciencia para elegidos y su utilización es propiedad casi exclusiva de centros de investigación y universidades (actualmente existen muchos laboratorios de IA financiados por las transnacionales de la iformacion). Y es que, aún en estos tiempos, sigue exigiendo por parte del programador de una gran derroche de ingenio, y de gran esfuerzo y dedicación.

Un Sistema Experto simple, consta de:
1. Una base de hechos (BH).
2. Una base de conocimientos (BC).
3. Una máquina o motor de inferencias (MI).

Este es un ejemplo de un programita en Javascript. ¿Conocen el problema de las tinas?

Se tienen dos tinas, una de 3 gls y otra de 4 gls, ambas vacías y una pila o llave de agua, para ir llenándolas. Se quiere dejar dos galones en la tina de 4 gls, ejecutando las acciones de llenar una tina, vaciar una tina en la otra y botar el contenido de una tina.

(La tina es un recipiente para contener agua)

Aquí les va el programa en Javascript.

Programa TINAS

<HTML>
<HEAD>
<TITLE>Tinas</TITLE>
</HEAD>
<BODY>
<CENTER>Programa TINAS <CENTER>
<BR>
<script>
function tinas()
{//Base de hechos
var x = 0
var y = 0
if (document.ftinas.tina[0].checked)
{x = eval(document.ftinas.tina[0].value)
document.write(“Llenar la tina de 3 gls (3,0)” + “<br>” )
}
else
{y = eval(document.ftinas.tina[1].value)
document.write(“Llenar la tina de 4 gls (0,4)” + “<br>” )
}
//Maquina de inferencia
for (i=1;i<=15;i++)
{ if (y == 2)
{ document.write(“Solucion satisfactoria: Hay dos galones en la tina de 4” + “<br>” )
break
}
//Base de conocimientos
//Regla 1:
if (x == 0 && y == 0)
{ x = 3
y = 0
document.write(“Llenar la tina de 3 gls (3,0)” + “<br>” )
continue
}
//Regla 2:
if (x == 0 && y == 0)
{ x = 0
y = 4
document.write(“Llenar la tina de 4 gls (0,4)” + “<br>” )
continue
}
//Regla 3:
if (x == 3 && y == 0)
{ x = 0
y = 3
document.write(“Vaciar la tina de 3 gls en la de 4 gls (0,3)” + “<br>” )
continue
}
//Regla 4:
if (x == 0 && y == 4)
{ x = 3
y = 1
document.write(“Vaciar la tina de 4 gls en la de 3 gls (3,1)” + “<br>” )
continue
}
//Regla 5:
if (x == 0 && y == 3)
{ x = 3
y = 3
document.write(“Llenar la tina de 3 gls (3,3)” + “<br>” )
continue
}
//Regla 6:
if (x == 3 && y == 1)
{ x = 0
y = 1
document.write(“Botar el contenido de la tina de 3 gls (0,1)” + “<br>” )
continue
}
//Regla 7:
if (x == 3 && y == 3)
{ x = 2
y = 4
document.write(“Vaciar la tina de 3 gls en la de 4 gls (2,4)” + “<br>” )
continue
}
//Regla 8:
if (x == 0 && y == 1)
{ x = 1
y = 0
document.write(“Vaciar la tina de 4 gls en la de 3 gls (1,0)” + “<br>” )
continue
}
//Regla 9:
if (x == 2 && y == 4)
{ x = 2
y = 0
document.write(“Botar el contenido de la tina de 4 gls (2,0)” + “<br>” )
continue
}
//Regla 10:
if (x == 1 && y == 0)
{ x = 1
y = 4
document.write(“Llenar la tina de 4 gls (1,4)” + “<br>” )
continue
}
//Regla 11:
if (x == 2 && y == 0)
{ x = 0
y = 2
document.write(“Vaciar la tina de 3 gls en la de 4 gls (0,2)” + “<br>” )
continue
}
//Regla 12:
if (x == 1 && y == 4)
{ x = 3
y = 2
document.write(“Vaciar la tina de 4 gls en la de 3 gls (3,2)” + “<br>” )
continue
}

}
}
</script>
Cual de las tinas prefiere llenar?
<br>
<form name=”ftinas”>
<input type=”Radio” name=”tina” value=”3″ checked> Tina de 3 gls
<br>
<input type=”Radio” name=”tina” value=”4″> Tina de 4 gls
<br>
<input type=”Button” name=”” value=” Entrar ” onclick=”tinas()”>
<br>
</form>
</BODY>
</HTML>

Observen que el programa consta de una base de hechos, una máquina de inferencia y una base de conocimientos, compuesta por 12 reglas. Noten que las reglas impares se refieren a comenzar llenando la tina de 3 gls y las reglas pares son para el llenado de la tina de 4 gls.

La máquina de inferencia, lo único que hace es recorrer todas las reglas y en caso de que se llegue a la solución detiene el proceso.

La base de hechos inicializa los hechos (pone en cero las variables) y prepara las condiciones para la interfaz con el usuario.

Es bueno destacar que la base de conocimientos (BC) y la máquina de inferencias (MI) estan separadas lógicamente (usted puede seguir agregando reglas sin que esto afecte la ejecución del programa), pero físicamente están unidas dentro del mismo programa. En la practica la BC y la MI deben estar separadas lógica y físicamente.

Puede acceder desde aqui al programa

Acerca de Alejandro Madruga

Licenciado en Cibernética Matematica. Trabajo el tema de la Inteligencia Artificial desde 1986. He publicado articulos y ensayos sobre la Cibernetica y las tendencias tecnologicas. También he publicados narraciones de ciencia ficción
Esta entrada fue publicada en Sistemas Expertos y etiquetada , , , , , . Guarda el enlace permanente.

43 respuestas a Ejecute un sistema experto en HTML

  1. leonel dijo:

    le entindo a tu codigo, el problema es que no se como correrlo me podrias mandar el script en un archivo html

    Me gusta

  2. Alejandro313 dijo:

    Leonel

    Ya te envie el ejemplo en html compactado como SE.rar.

    Espero te llegue. Caualquier duda me puedes preguntar.

    Saludos,

    Me gusta

  3. jair dijo:

    Hola alejandro veo que eres un experto es IA y sistemas expertos, en estos momentos estoy desarrollando un prototipo de un sistema experto juridico que me permita recomendar una pena al juez en determinados casos, eleji a clips para el desarrollo estoy en el proceso de conocer la herramienta pero es bastante complicada ya que no me indica como maneja el algoritmo en el motor de inferencia.
    Si puedes recomendarme bibliografia o algun software que me sirva de base o la reomendacion que quieras estare agradecido.

    JAIR

    Me gusta

    • Alejandro dijo:

      El lenguaje que siempre he utilizado ha sido Prolog. Puedes ver algunos ejemplos de como usar prolog en el capitulo sobre prolog de una curso de Inteligencia Artificial que tengo colocado en mi pagina:
      https://sites.google.com/site/ciberneticamatematica/home
      Tambien he utilizado el lenguaje Lisp, pero Prolog tiene la ventaja que ya poses una maquina de inferencia, el curso hablo sobre las carateristicas de su maquina de inferencia.
      Estoy preparando una introducción a Prolog para publcarla en Kindle Amazon.

      Me gusta

  4. Mârcelo dijo:

    hola amigo si me puede enviar el archivo completo para mostrar en una pagina en php
    gracias de ante mano..

    Me gusta

  5. Josue dijo:

    Oye alejandro, tambien a mi me podrias mandar el php o html para correrlo??

    Me gusta

  6. ELE dijo:

    Una pregunta esto lo puedo implementar para un wap y de alguna manera lo puedo tomar de la base de datos en postgres

    Me gusta

  7. Vero dijo:

    Podrías compartir el archivo para correrlo??
    Saludos.!,!,

    Me gusta

  8. mario dijo:

    Me parece bueno tu aporte, me harías el favor de enviarlo a mi correo para tener el .html, gracias

    Me gusta

  9. juan dijo:

    me puedes enviar el html
    por favor y gracias

    Me gusta

  10. Angel dijo:

    Hola Alejandro,
    Me resulta muy interesante el sistema experto hecho en html, y por consiguiente me atrevo a solicitarte también el codigo del SE por favor.

    De antemano muchas gracias!
    Saludos

    Me gusta

  11. Joam dijo:

    Holaalejandro me puedes enviar el programa gracias

    Me gusta

  12. Omar Richard dijo:

    Hola alejandro me podrias enviar el programa .. gracias de antemano.

    Me gusta

  13. HOla, muy interesante la página. me gustaría poder disponer del código para poder implementar el sistema en una web, me dedico a la enseñanza TIC libre y gratuita y me interesa investigar sobre las aplicaciones educativas delos sistemas expertos, pero recien estoy aprendiendo programación web así que necesito ayuda porque no tengo ni idea como implementar el código. (¿a que se refiere separación física?, ¿hay que poner cada script por separado en una hoja vinculada?) – Muchas gracias.

    tmabien seria bueno saber si esta código está bajo licencia creative commons, GNU, o algo así. a ver si se lo puede modificar y reutilizar y los créditos que haya que dar a sus creador. Supongo que usted.

    Me gusta

    • Alejandro dijo:

      Hola Rafael
      Enviame tu cuenta de correo electronico, para enviarte el codigo en html.
      yo soy el autor del programa, el mismo esta incluido en los ejemplos de un curso de Inteligencia Artificial que he estado impartiendo en red21.
      Puedes utilizarlo señalando la fuente, en este caso el blog http://www.cibernetica.wordpress.com

      Saludos Alejandro

      Me gusta

      • rafael dijo:

        Ok, gracias, es bueno saber que hay gente tan avanzada en estos conocimientos, creo que en un futuro cercano de 50 años, viviremos todos rodeados de robots, pero eso depende de las miles de horas de crear código de los programadores e ingenieros y de que pongan a disposición el conocimiento para los legos y principiantes como yo .
        e dejo mi mail rafaelmessina1970@gmail.com

        Me gusta

  14. rafael dijo:

    No puedo hacer funcionar el Javscript, no entiendo como se corre el programa. se embebe en el body? en el head?,, me interesa probar su funcionamiento, entender la lógica en acción. lo probé en .html y como .js, pero ni modo. te dejé mi mail: rafaelmessina1970@gmail.com,,

    PD no tengo idea de que es red21, ¿podrías decirme la url donde enseñaste sobre este tema?

    Me gusta

  15. Javier dijo:

    Hola Alejandro muy interesante tu trabajo, me podrías enviar el programa, yo voy hacerlo pero en clips. Gracias

    Me gusta

  16. Daniela dijo:

    Hola, que tal, me gustaría saber si me puede mandar a mi correo el código en php.
    Mil gracias me ha sido de mucha utilidad sus artículos.

    Me gusta

  17. Jhames dijo:

    Hola señor Alejandro estoy interesado en el código es por motivos de estudio ya que tengo muchas incógnitas para la elaboracion de un sistema experto Web. Por favor le pediría que me envié tambien el codigo php, muchas gracias seria de gran ayuda.

    Me gusta

  18. Pedro dijo:

    Hola Alejandro,
    Me preguntaba si podrías enviarme el Código Fuente del Sistema Experto al mail para poder revisarlo.

    De antemano muchas gracias

    Me gusta

  19. OscarC dijo:

    Hola Sr. Alejandro el codigo es muy interesant y el trabajo muy bueno. Por motivos de estudio necesito exponer un sistema experto.. me podria enviar el programa….
    de antemano muchas gracias

    Me gusta

    • Alejandro dijo:

      Hola Oscar,
      Ya agregue en el Menú del blog, arriba donde dice Inicio, Acerca de… Puse un enlace: Descargas, ahi puedes entrar al sitio La Cibernetica y al final esta Tinas.html y solo tienes que dar clic en la derecha en la flecha, descargar.

      Me hace falta que me digas si no tuvistes problemas para descargarlo. Ya que acabo de ponerlo.

      Saludos
      Alejandro

      Me gusta

  20. Pingback: Ejecutar un sistema experto. Ya se puede descargar | Inteligencia Artificial

  21. Maria dijo:

    Disculpa me podria enviar el trabajo a mi correo please!!.. me interesa mucho!! =)

    Me gusta

    • Alejandro dijo:

      Hola Maria,
      Lo puedes descargar directamente en el blog como HTML.
      Para descargarlo, vaya al Menú de este blog arriba donde dice Inicio, Acerca de, Libros, etc., y ve al enlace Descargas, al dar clic irá a la pagina, La Cibernetica. al final esta Tinas.zip y a la derecha donde esta la flecha, dar clic en descargar. Y ahora solo tiene que ejecutar el html en su computadora.
      Si tienes algun problema me escribes.
      Saludos, Alejandro

      Me gusta

  22. Jorge dijo:

    hola como esta usted, quiero hace rmi tesis de pregrado en la universidad quiero mandar parametros desde mi aplicativo (en android) a un web service donde se encuentre el SE y que ala ves me devuelva uan respuesta y mostrarla en el telefono movil, puedo usar algun lenguaje en especial(clips,lips,prolog) para esto en web (php o tal ves….no se) osea si se puede conbinar lenguajes php y algun lenguaje de SE como ya los menciona, agradeceria su repsuesta y algunas refencias utiles q me puedar gracias😀

    Me gusta

    • Alejandro dijo:

      Hola Jorge
      Yo estoy retirado de la programacion en Prolog, ahora estoy concentrado en la programacion Web. Pero te puedo decir que el CiaoProlog es un sistema muy completo que incluye al lenguaje Prolog y al PHP entre otros, el problema consiste en que es bastante complejo de aprender. Si tienes tiempo, quizas con el puedas resolver. Es un GNU y lo puedes descargar gratis desde Internet.
      Saludos, Alejandro

      Me gusta

  23. chila dijo:

    hola me podrias pasar el codigo completo por favor

    Me gusta

  24. wilson roncancio dijo:

    hola, buenos dias…. estoy tratando de hacer un sistema experto de animales mamiferos, lo hize mediante java en un programa pero el docente me pide bases de datos. me podrias colabroar con un ejemplo.

    wilson198413@hotmail.com

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s