Ejecute un sistema experto en HTML

44

La Inteligencia Artificial sigue siendo una ciencia para elegidos y su utilización es propiedad casi exclusiva de centros de investigación y universidades. 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.
2. Una base de conocimientos.
3. Una máquina de inferencias.

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.

Tinas

Programa TINAS
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)” + ”
” )
}
else
{y = eval(document.ftinas.tina[1].value)
document.write(“Llenar la tina de 4 gls (0,4)” + ”
” )
}
//Maquina de inferencia
for (i=1;i<=15;i++)
{ if (y == 2)
{ document.write(“Solucion satisfactoria: Hay dos galones en la tina de 4″ + ”
” )
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)” + ”
” )
continue
}
//Regla 2:
if (x == 0 && y == 0)
{ x = 0
y = 4
document.write(“Llenar la tina de 4 gls (0,4)” + ”
” )
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)” + ”
” )
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)” + ”
” )
continue
}
//Regla 5:
if (x == 0 && y == 3)
{ x = 3
y = 3
document.write(“Llenar la tina de 3 gls (3,3)” + ”
” )
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)” + ”
” )
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)” + ”
” )
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)” + ”
” )
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)” + ”
” )
continue
}
//Regla 10:
if (x == 1 && y == 0)
{ x = 1
y = 4
document.write(“Llenar la tina de 4 gls (1,4)” + ”
” )
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)” + ”
” )
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)” + ”
” )
continue
}

}
}

Cual de las tinas prefiere llenar?

Tina de 3 gls

Tina de 4 gls

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.

Para descargarlo, vaya al Menú de este blog arriba donde dice Inicio, Aceca de, Libros, etc., y vaya al enlace Descargas, al dar clic ira 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.

 

Pings on Ejecute un sistema experto en HTML

15 agosto, 2013

Comments on Ejecute un sistema experto en HTML Leave a Comment

14 octubre, 2008

leonel @ 1:40 am #

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

15 octubre, 2008

Alejandro313 @ 5:09 pm #

Leonel

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

Espero te llegue. Caualquier duda me puedes preguntar.

Saludos,

27 julio, 2009

jair @ 2:55 am #

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

31 julio, 2009

Alejandro @ 2:24 pm #

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.

15 julio, 2010

Mârcelo @ 2:21 pm #

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

17 diciembre, 2010

Josue @ 7:07 am #

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

16 mayo, 2011

ELE @ 3:14 am #

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

11 noviembre, 2011

damisio @ 4:11 pm #

Hola alejandro, muchas gracias por poder publicar este excelente trabajo que hiciste con el problema de las tinas. Por favor serias tan amable de enviarme el ejemplo completo para poder entenderlo mejor y ejecutarlo.

Te agradeceria mucho si me lo envias

11 agosto, 2012

Vero @ 10:25 pm #

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

24 septiembre, 2012

Alejandro @ 2:25 pm #

Hola Vero

Disculpa la demora pero llevaba meses sin conexion.
No tengo aqui el programa. Mañana lo compacto y te lo envio a tu cuenta de correo.

Nuevamente disculpas.
Alejandro

19 noviembre, 2012

mario @ 6:22 pm #

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

21 noviembre, 2012

Alejandro @ 1:39 pm #

Hola Mario
Ya te lo envié a tu cuenta de correo
Saludos Alejandro

24 noviembre, 2012

juan @ 11:24 pm #

me puedes enviar el html
por favor y gracias

26 noviembre, 2012

Alejandro @ 1:16 pm #

Hola Juan

Acabo de enviartelo a tu cuenta de correo.

Saludos Alejandro

24 enero, 2013

Angel @ 5:13 pm #

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

Alejandro @ 5:35 pm #

Hola Angel

Ya te envie el programa a tu cuenta de correo

Saludos
Alejandro

Angel @ 6:05 pm #

Muchas gracias Alejandro!
Saludos!

10 febrero, 2013

Joam @ 2:17 am #

Holaalejandro me puedes enviar el programa gracias

4 marzo, 2013

Omar Richard @ 2:25 am #

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

Alejandro @ 1:07 pm #

Ya te lo envié

Saludos

10 marzo, 2013

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.

11 marzo, 2013

Alejandro @ 8:19 pm #

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

rafael @ 9:58 pm #

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

18 marzo, 2013

rafael @ 7:21 am #

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?

Alejandro @ 1:58 pm #

Hola Rafael
Lo unico que tienes que hacer es darle doble clic al programa tinas.htm y cuando se presente dar clic en entrar.

Por si acaso, ejecuta antes el navegador que usas, Internet Explorer, Mozilla Firefox, Chrome, etc., y luego el programa en html, como te indique antes.

Red 21 son cursos pagos puedes verlos en http://www.red21.com
Aunque sigo figurando como profesor, actualmente no estoy impartiendo clases.

Puedes ver parte del curso en
https://sites.google.com/site/ciberneticamatematica/

Saludos,
Alejandro

12 abril, 2013

Javier @ 4:28 pm #

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

24 abril, 2013

Daniela @ 2:01 am #

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.

Alejandro @ 12:29 pm #

Ya te lo envié.

3 mayo, 2013

Jhames @ 8:16 pm #

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.

19 mayo, 2013

Pedro @ 8:15 pm #

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

De antemano muchas gracias

21 mayo, 2013

Alejandro @ 3:43 pm #

Hola Pedro

He intentado enviarte el programa pero el correo no sale.
Enviame un mensaje a alejandro.madruga@yahoo.com
A ver si me llega.

Saludos
Alejandro

14 agosto, 2013

OscarC @ 4:35 pm #

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

15 agosto, 2013

Alejandro @ 4:13 pm #

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

24 septiembre, 2013

Maria @ 4:27 am #

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

Alejandro @ 11:30 am #

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

3 octubre, 2013

Jorge @ 5:44 am #

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 😀

4 octubre, 2013

Alejandro @ 7:22 pm #

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

28 octubre, 2014

Carlos Infante @ 7:40 pm #

Hola Jorge: me puedes facilitar el codigo

30 octubre, 2014

Manuel @ 10:22 pm #

Hola buenas tardesquisiera saber como contactarme con usted de manera mas sencilla es q tengo un lio com un sistema experto sencillo q presentar y no tengo ni idea.
Agradeceria su colaboracion.

Manuel @ 10:25 pm #

Hola alejandro seria posible obtener el codigo en c? Asi sea de otro sistema experto?

20 noviembre, 2014

Chuy Marq @ 7:48 pm #

Pasame el codigo porfavor.

25 noviembre, 2014

Vuelve a leerte el articulo, que ya actualice y ahi se explica como copiarlo y ejecutarlo.
Saludos.

26 noviembre, 2014

Puede descargarlo aqui

Leave a Comment

Fields marked by an asterisk (*) are required.