FUNDACIÓN UNIVERSITARIA KONRAD LORENZ FACULTAD DE INGENIERÍA LÓGICA MATEMÁTICA PRIMER SEMESTE Prof.

Pervys Rengifo Rengifo 2005 JAIRO ORLANDO RAMIREZ SANCHEZ COD.553003 TABLA DE CONTENIDO 1. Objetivos y expectativas 2. Definición de la base de conocimiento 3. Uso del Sistema Experto 4. Código Fuente 5. Recursos Utilizados 1. Objetivos y expectativas

-El objetivo de este pequeño sistema experto es mostrarle al usuario las alternativas de rutas de acuerdo a la estación que digite o el recorrido de una ruta en particular. -Expectativas: Si conociera un poco más de PROLOG, pensaría en mejorar este sistema experto, colocando funciones como: * Búsqueda de la ruta más corta a un destino, tomando en cuenta la cantidad de paradas y transbordos requeridos. * Tiempo estimado de llegada a la ruta deseada. * Rutas en funcionamiento de acuerdo al día o a la hora actual.

Aunque este programa fue algo muy sencillo, me dio una idea muy buena sobre como funcionan los sistemas expertos. 2. Definición de la base de conocimiento Tomando la lista de rutas existentes en Transmilenio, se creará una base de conocimiento que consta básicamente de dos componentes: • • Nombre de la estación Ruta

Con el fin de poder hacer las consultas de rutas y recorridos de nuestro sistema experto se creará una base de conocimiento consistente en el nombre de la estación más la ruta que para allí. Como en la mayoría de las estaciones se detiene más de una ruta, se creará un registro por cada ruta existente dentro de la estación. Ejemplo: estacion('Toberin',2). estacion('Toberin',3). estacion('Toberin',25). estacion('Toberin',60). estacion('Toberin',70). estacion('Cardio Infantil',2). estacion('Cardio Infantil',3). 3. Uso del sistema experto

-Si quiero saber que rutas pasan por determinada estación se usa la siguiente sintaxis: ej.: estacion('Banderas',X). Esto me mostrará que rutas pasan por la estación de "Banderas". -Si quiero saber el recorrido de una ruta la sintaxis es la siguiente: ej.: estacion(X,30).

Esto me mostrará el recorrido de la ruta 30. (Siempre se verá de Norte a Sur) -Si quiero saber si en una estación determinada pasa una ruta específica, la sintaxis es así: ej.: estacion('Alcala',50). Esto me generará una respuesta afirmativa "yes" si la ruta pasa por la estación consultada o "no" si no es así. -Una consulta como: estacion(X,Y). , devolverá todo el contenido de la base de conocimiento. -Existe un comando adicional para saber si una estación existe: parada('Nombre Estación'). Este comando simplemente mostrará "yes" o "no" si existe o no la estación digitada. 4. Código Fuente Este código fuente se puede copiar y pegar en el editor de SWI-Prolog para ser ejecutado y probar la aplicación:
% % % % % % % % % % % % % % % % % % % % % % % % % % % Fundación Universitaria Konrad Lorenz Facultad de Ingenieria Autor: Jairo Orlando Ramirez Sánchez Cod. 553003 Fecha: 24/May/2005 -*- Pequeño Sistema Experto con las rutas del Transmilenio -*Recursos utilizados: Compilador PROLOG Libre SWI-Prolog (http://www.swi-prolog.org) Editor complementario SWI-Prolog Editor: (http://www.bildung.hessen.de/abereich/inform/skii/material/swing/indexe.htm) -El objetivo de este pequeño sistema experto es mostrarle al usuario las alternativas de rutas de acuerdo a la estación que digite o el recorrido de una ruta en particular. -Expectativas: Si conociera un poco más de PROLOG, pensaría en mejorar este sistema experto, colocando funciones como: * Búsqueda de la ruta más corta a un destino, tomando en cuenta la cantidad de paradas y transbordos requeridos. * Tiempo estimado de llegada a la ruta deseada. * Rutas en funcionamiento de acuerdo al día o a la hora actual. Aunque este programa fue algo muy sencillo, me dio una idea muy buena sobre como funcionan los sistemas expertos.

%-Uso: % En términos generales se usa el comando asi: % estacion('Nombre Estación',Ruta). %Donde 'Nombre Estacion' es un valor alfa-numérico y debe ir con las comillas sencillas, %y Ruta es el número de la ruta de Transmilenio. La sentencia siempre debe terminar con %con un punto(.) para indicar el fin del comando % %-Si quiero saber que rutas pasan por determinada estación se usa la siguiente sintaxis: % ej.: estacion('Banderas',X). % Esto me mostrará que rutas pasan por la estación de "Banderas". %-Si quiero saber el recorrido de una ruta la sintaxis es la siguiente: % ej.: estacion(X,30). % Esto me mostrará el recorrido de la ruta 30. (Siempre se verá de Norte a Sur) %-Si quiero saber si en una estación determinada pasa una ruta específica, la sintaxis es así: % ej.: estacion('Alcala',50). % Esto me generará una respuesta afirmativa "yes" si la ruta pasa por la estación consultada o % "no" si no es así. %-Una consulta como: estacion(X,Y). , devolverá todo el contenido de la base de conocimiento. %-Existe un comando adicional para saber si una estación existe: % parada('Nombre Estación'). % Este comando simplemente mostrará "yes" o "no" si existe o no la estación digitada. estacion('Portal Norte',2). estacion('Portal Norte',3). estacion('Portal Norte',110). estacion('Portal Norte',25). estacion('Portal Norte',50). estacion('Portal Norte',60). estacion('Portal Norte',70). estacion('Portal Norte',100). estacion('Toberin',2). estacion('Toberin',3). estacion('Toberin',25). estacion('Toberin',60). estacion('Toberin',70). estacion('Cardio Infantil',2). estacion('Cardio Infantil',3). estacion('Mazuren',2). estacion('Mazuren',3). estacion('Mazuren',60). estacion('Calle 146',2). estacion('Calle 146',3). estacion('Calle 146',50). estacion('Calle 146',25). estacion('Calle 146',100). estacion('Calle 146',110). estacion('Calle 142',2). estacion('Calle 142',3). estacion('Calle 142',50). estacion('Alcala',2). estacion('Alcala',3). estacion('Alcala',50). estacion('Alcala',60). estacion('Alcala',100). estacion('Alcala',110). estacion('Alcala',25). estacion('Prado',2). estacion('Prado',3). estacion('Prado',70). estacion('Calle 127',2). estacion('Calle 127',3). estacion('Calle 127',70). estacion('Calle 127',60). estacion('Calle 127',100).

estacion('Calle 127',25). estacion('Pepe Sierra',2). estacion('Pepe Sierra',3). estacion('Pepe Sierra',50). estacion('Calle 106',2). estacion('Calle 106',3). estacion('Calle 100',2). estacion('Calle 100',3). estacion('Calle 100',50). estacion('Calle 100',60). estacion('Calle 100',70). estacion('Calle 100',100). estacion('Calle 100',110). estacion('Calle 100',25). estacion('Virrey',2). estacion('Virrey',3). estacion('Virrey',60). estacion('Virrey',110). estacion('Calle 85',2). estacion('Calle 85',3). estacion('Calle 85',70). estacion('Calle 85',100). estacion('Heroes',2). estacion('Heroes',3). estacion('Heroes',50). estacion('Heroes',60). estacion('Heroes',70). estacion('Heroes',100). estacion('Heroes',25). estacion('Portal 80',1). estacion('Portal 80',10). estacion('Portal 80',20). estacion('Portal 80',30). estacion('Portal 80',40). estacion('Portal 80',80). estacion('Portal 80',90). estacion('Portal 80',35). estacion('Portal 80',15). estacion('Quirigua',1). estacion('Quirigua',30). estacion('Quirigua',35). estacion('Carrera 90',1). estacion('Carrera 90',20). estacion('Carrera 90',90). estacion('Avenida Cali',1). estacion('Avenida Cali',10). estacion('Avenida Cali',15). estacion('Avenida Cali',35). estacion('Granja',1). estacion('Granja',10). estacion('Carrera 77',1). estacion('Carrera 77',10). estacion('Carrera 77',80). estacion('Carrera 77',15). estacion('Carrera 77',35). estacion('Minuto de Dios',1). estacion('Minuto de Dios',20). estacion('Minuto de Dios',90). estacion('Minuto de Dios',35). estacion('Avenida Boyaca',1). estacion('Ferias',1). estacion('Ferias',15). estacion('Avenida 68',1). estacion('Avenida 68',40).

estacion('Avenida 68',90). estacion('Avenida 68',15). estacion('Avenida 68',35). estacion('Carrera 53',1). estacion('Carrera 47',1). estacion('Escuela Militar',1). estacion('Escuela Militar',40). estacion('Escuela Militar',90). estacion('Polo',1). estacion('Polo',40). estacion('Polo',90). estacion('Calle 76',1). estacion('Calle 76',2). estacion('Calle 76',3). estacion('Calle 76',10). estacion('Calle 76',25). estacion('Calle 76',30). estacion('Calle 76',50). estacion('Calle 76',70). estacion('Calle 76',110). estacion('Calle 76',15). estacion('Calle 76',35). estacion('Calle 72',1). estacion('Calle 72',2). estacion('Calle 72',3). estacion('Calle 72',20). estacion('Calle 72',25). estacion('Calle 72',30). estacion('Calle 72',50). estacion('Calle 72',80). estacion('Calle 72',110). estacion('Calle 72',15). estacion('Flores',1). estacion('Flores',2). estacion('Flores',3). estacion('Flores',30). estacion('Flores',35). estacion('Calle 63',1). estacion('Calle 63',2). estacion('Calle 63',3). estacion('Calle 63',20). estacion('Calle 63',60). estacion('Calle 63',80). estacion('Calle 63',90). estacion('Calle 63',15). estacion('Calle 63',25). estacion('Calle 63',35). estacion('Calle 63',110). estacion('Calle 57',1). estacion('Calle 57',2). estacion('Calle 57',3). estacion('Calle 57',20). estacion('Calle 57',40). estacion('Calle 57',60). estacion('Calle 57',90). estacion('Calle 57',15). estacion('Marly',1). estacion('Marly',2). estacion('Marly',3). estacion('Marly',20). estacion('Marly',40). estacion('Marly',60). estacion('Marly',90). estacion('Marly',100).

estacion('Marly',25). estacion('Calle 45',1). estacion('Calle 45',2). estacion('Calle 45',3). estacion('Calle 45',10). estacion('Calle 45',40). estacion('Calle 45',60). estacion('Calle 45',90). estacion('Calle 45',100). estacion('Calle 45',25). estacion('Calle 45',35). estacion('Avenida 39',1). estacion('Avenida 39',2). estacion('Avenida 39',3). estacion('Avenida 39',10). estacion('Avenida 39',20). estacion('Avenida 39',40). estacion('Avenida 39',60). estacion('Avenida 39',90). estacion('Avenida 39',15). estacion('Profamilia',1). estacion('Profamilia',2). estacion('Profamilia',3). estacion('Profamilia',10). estacion('Profamilia',100). estacion('Calle 26',1). estacion('Calle 26',2). estacion('Calle 26',3). estacion('Calle 26',10). estacion('Calle 26',50). estacion('Calle 26',100). estacion('Calle 26',110). estacion('Calle 26',15). estacion('Calle 22',1). estacion('Calle 22',2). estacion('Calle 22',3). estacion('Calle 22',10). estacion('Calle 22',60). estacion('Calle 22',70). estacion('Calle 22',80). estacion('Calle 22',25). estacion('Calle 22',35). estacion('Calle 19',1). estacion('Calle 19',2). estacion('Calle 19',3). estacion('Calle 19',30). estacion('Calle 19',40). estacion('Calle 19',50). estacion('Calle 19',70). estacion('Calle 19',80). estacion('Calle 19',15). estacion('Calle 19',25). estacion('Calle 19',35). estacion('Las Aguas',10). estacion('Las Aguas',35). estacion('Museo del Oro',10). estacion('Museo del Oro',35). estacion('Estacion Sabana',4). estacion('San Facon',4). estacion('San Facon',120). estacion('San Facon',45). estacion('Ricaurte',4). estacion('Ricaurte',80). estacion('Carrera 32',4).

estacion('Carrera 32',100). estacion('Zona Industrial',4). estacion('Zona Industrial',120). estacion('Zona Industrial',45). estacion('Carrera 43',4). estacion('Puente Aranda',4). estacion('Carrera 53A',4). estacion('Carrera 53A',80). estacion('Carrera 53A',45). estacion('Pradera',4). estacion('Pradera',100). estacion('Marsella',4). estacion('Marsella',80). estacion('Marsella',45). estacion('Mundo Aventura',4). estacion('Mandalay',4). estacion('Banderas',4). estacion('Banderas',80). estacion('Banderas',100). estacion('Banderas',120). estacion('Banderas',45). estacion('Transversal 86',4). estacion('Biblioteca Tintal',4). estacion('Biblioteca Tintal',100). estacion('Biblioteca Tintal',45). estacion('Patio Bonito',4). estacion('Patio Bonito',120). estacion('Portal Americas',4). estacion('Portal Americas',100). estacion('Portal Americas',120). estacion('Portal Americas',45). estacion('Avenida Jimenez',1). estacion('Avenida Jimenez',2). estacion('Avenida Jimenez',3). estacion('Avenida Jimenez',4). estacion('Avenida Jimenez',10). estacion('Avenida Jimenez',20). estacion('Avenida Jimenez',30). estacion('Avenida Jimenez',50). estacion('Avenida Jimenez',70). estacion('Avenida Jimenez',90). estacion('Avenida Jimenez',110). estacion('Avenida Jimenez',120). estacion('Avenida Jimenez',15). estacion('Avenida Jimenez',25). estacion('Avenida Jimenez',35). estacion('Tercer Milenio',2). estacion('Tercer Milenio',3). estacion('Tercer Milenio',30). estacion('Tercer Milenio',15). estacion('Hospital',2). estacion('Hospital',3). estacion('Hortua',2). estacion('Hortua',3). estacion('Hortua',20). estacion('Hortua',90). estacion('Hortua',25). estacion('Nariño',2). estacion('Nariño',3). estacion('Nariño',20). estacion('Nariño',90). estacion('Fucha',2). estacion('Fucha',3). estacion('Fucha',30).

estacion('Fucha',25). estacion('Restrepo',2). estacion('Restrepo',3). estacion('Restrepo',40). estacion('Restrepo',50). estacion('Restrepo',60). estacion('Restrepo',90). estacion('Restrepo',15). estacion('Restrepo',25). estacion('Olaya',2). estacion('Olaya',3). estacion('Olaya',30). estacion('Olaya',60). estacion('Olaya',70). estacion('Olaya',15). estacion('Quiroga',2). estacion('Quiroga',3). estacion('Calle 40 Sur',2). estacion('Calle 40 Sur',3). estacion('Calle 40 Sur',20). estacion('Calle 40 Sur',30). estacion('Calle 40 Sur',50). estacion('Calle 40 Sur',60). estacion('Calle 40 Sur',90). estacion('Calle 40 Sur',15). estacion('Calle 40 Sur',25). estacion('Santa Lucia',2). estacion('Santa Lucia',3). estacion('Santa Lucia',40). estacion('Santa Lucia',70). estacion('Santa Lucia',90). estacion('Santa Lucia',15). estacion('Santa Lucia',25). estacion('Biblioteca',4). estacion('Biblioteca',100). estacion('Biblioteca',45). estacion('Parque',4). estacion('Portal Tunal',3). estacion('Portal Tunal',20). estacion('Portal Tunal',30). estacion('Portal Tunal',60). estacion('Portal Tunal',15). estacion('Socorro',2). estacion('Consuelo',2). estacion('Molinos',2). estacion('Portal Usme',2). estacion('Portal Usme',40). estacion('Portal Usme',50). estacion('Portal Usme',70). estacion('Portal Usme',90). estacion('Portal Usme',25). parada(Estacion) :estacion(Estacion,Y). % ---- Fin del Programa ----

5. Recursos Utilizados

Compilador PROLOG Libre SWI-Prolog

(http://www.swi-prolog.org) • Editor complementario SWI-Prolog Editor: (http://www.bildung.hessen.de/abereich/inform/skii/material/swing/in dexe.htm)