Ruta de procesos de una empresa textil, una aplicaci ... - Wiphala.net
Ruta de procesos de una empresa textil, una aplicaci ... - Wiphala.net
Ruta de procesos de una empresa textil, una aplicaci ... - Wiphala.net
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Ruta</strong> <strong>de</strong> <strong>procesos</strong> <strong>de</strong> <strong>una</strong> <strong>empresa</strong> <strong>textil</strong>, <strong>una</strong> <strong>aplicaci</strong>ón en Blackbox<br />
Universidad Nacional <strong>de</strong> Ingeniería<br />
Joseph Ramos Valdivia<br />
Aldo Mallma Granados<br />
Edith Santos Lorenzo<br />
joseph matrix@hotmail.com<br />
aldomg84@hotmail.com<br />
edithsantos@hotmail.com<br />
Resumen<br />
Este trabajo muestra <strong>una</strong> <strong>aplicaci</strong>ón básica <strong>de</strong> la planeación<br />
para casos reales, como el problema <strong>de</strong> encontrar la<br />
ruta <strong>de</strong> <strong>procesos</strong> para insumos <strong>de</strong> <strong>una</strong> <strong>empresa</strong> <strong>textil</strong>, que<br />
elabora tejidos y prendas <strong>de</strong> vestir.<br />
En el presente documento se <strong>de</strong>sarrolla <strong>una</strong> <strong>aplicaci</strong>ón<br />
en Blackbox 4.2; la versión <strong>de</strong>l leguaje PDDL utilizado es<br />
la 1.1.<br />
I. Introducción<br />
Se le ha criticado mucho a la inteligencia artificial <strong>de</strong><br />
solucionar problemas sin <strong>aplicaci</strong>ones reales. Veremos con<br />
un caso sencillo, como es posible vincular estas <strong>aplicaci</strong>ones<br />
a un contexto industrial.<br />
como pima y otra fibra estándar. En la Tabla 1 <strong>de</strong>scribimos<br />
los insumos con los que se cuentan.<br />
La fábrica <strong>textil</strong> cuenta con los <strong>procesos</strong> <strong>de</strong> teñido, mercerizado,<br />
tejido, corte, costura, acabado, estampado y bordado.<br />
Los <strong>procesos</strong> y los insumos están relacionados <strong>de</strong> la<br />
siguiente manera:<br />
Proceso <strong>de</strong> mercerizado, para materias primas <strong>de</strong> fibra<br />
pima.<br />
Proceso <strong>de</strong> teñido, utilizado para cualquier insumo.<br />
Proceso <strong>de</strong> corte, utilizado para materias primas.<br />
Proceso <strong>de</strong> tejido, utilizado para cualquier insumo.<br />
II.<br />
Objetivos<br />
Proceso <strong>de</strong> costura, utilizado para insumos en proceso.<br />
Presentar en forma sencilla <strong>una</strong> <strong>aplicaci</strong>ón <strong>de</strong> planeación<br />
<strong>de</strong> inteligencia artificial, para el caso <strong>de</strong> encontrar la<br />
ruta apropiada <strong>de</strong> <strong>procesos</strong> <strong>de</strong> los insumos <strong>una</strong> <strong>empresa</strong><br />
<strong>textil</strong>.<br />
III.<br />
Problema<br />
Proceso <strong>de</strong> estampado y bordado, utilizado para insumos<br />
en proceso <strong>de</strong> fibra estándar.<br />
Proceso <strong>de</strong> acabado, utilizado para insumos en proceso.<br />
Representar el problema, <strong>de</strong> encontrar la ruta apropiada<br />
<strong>de</strong> <strong>procesos</strong> <strong>de</strong> ciertos tipos <strong>de</strong> insumos, que serán convertidos<br />
a tejidos o polos y llevados luego a los almacenes <strong>de</strong><br />
tejidos y <strong>de</strong> prendas <strong>de</strong> vestir.<br />
Existen dos clases <strong>de</strong> insumos, sin tratamiento alguno<br />
o materia prima y con tratamiento o en proceso. Estos a<br />
su vez pue<strong>de</strong>n ser <strong>de</strong> dos clases <strong>de</strong> fibra <strong>de</strong> algodón, tales<br />
1
Inteligencia Artificial 2<br />
IV.<br />
Marco teórico<br />
Enfoques para la Resolución <strong>de</strong>l Problema <strong>de</strong> Planeamiento<br />
Dentro <strong>de</strong> la historia <strong>de</strong> los planeadores se conoce como<br />
primer planeador a STRIPS, <strong>de</strong>l cual sólo se aprovechó su<br />
lenguaje <strong>de</strong> representación.<br />
De allí en a<strong>de</strong>lante, se pue<strong>de</strong>n i<strong>de</strong>ntificar cuatro enfoques<br />
importantes <strong>de</strong> solución <strong>de</strong> problemas <strong>de</strong> planeamiento,<br />
los cuales en or<strong>de</strong>n <strong>de</strong> aparición son: Búsqueda en Espacio<br />
<strong>de</strong> Estados, Planeamiento <strong>de</strong> Or<strong>de</strong>n Parcial, Grafo<br />
<strong>de</strong> Planeamiento, Planeamiento con Lógica Proposicional<br />
(Oviedo, 2005). Existen dos tipos <strong>de</strong> planeamiento (Bo<strong>net</strong><br />
and Geffner, 2000):<br />
Planeamiento in<strong>de</strong>pendiente <strong>de</strong>l dominio.- Se centra<br />
en técnicas <strong>de</strong> búsqueda, técnicas <strong>de</strong> control <strong>de</strong><br />
búsqueda y <strong>de</strong> representación <strong>de</strong> problemas <strong>de</strong> planeamiento,<br />
los cuales se caracterizan por presentar incertidumbre,<br />
alto consumo <strong>de</strong> recursos y tiempo, entre<br />
otros.<br />
Planeamiento <strong>de</strong>pendiente <strong>de</strong>l dominio.- Está relacionado<br />
con la <strong>aplicaci</strong>ón <strong>de</strong> planeamiento <strong>de</strong>ntro <strong>de</strong><br />
dominios particulares.<br />
El Problema <strong>de</strong> Planeamiento<br />
Un problema <strong>de</strong> planeamiento se diferencia por su tipo<br />
<strong>de</strong> entrada y salida, es más complejo mientras tenga más<br />
flexibilidad en sus entradas y requiera <strong>de</strong> menos constantes<br />
<strong>de</strong> salida. Sus elementos son:<br />
Objetos y Tipos.- Se <strong>de</strong>fine un objeto <strong>de</strong>l problema<br />
como cualquier entidad que participa <strong>de</strong>l problema.<br />
Un tipo restringe el comportamiento <strong>de</strong> un objeto,<br />
permitiéndole participar en el problema sólo bajo alg<strong>una</strong>s<br />
condiciones.<br />
Predicados.- Un predicado es <strong>una</strong> propiedad que se<br />
pue<strong>de</strong> afirmar sobre el problema o sobre uno o más<br />
objetos <strong>de</strong>l problema.<br />
Estado.- Un estado representa <strong>una</strong> situación en el dominio<br />
y es <strong>de</strong>finido por el conjunto <strong>de</strong> átomos que son<br />
verda<strong>de</strong>ros en esa situación.<br />
Acción.- Una acción (u operador) incluye un conjunto<br />
<strong>de</strong> objetos sobre los cuales la acción es aplicada.<br />
Esta <strong>de</strong>finida a<strong>de</strong>más por precondiciones o conjunto<br />
<strong>de</strong> átomos que <strong>de</strong>ben ser verda<strong>de</strong>ros en un estado para<br />
que la acción pueda ser aplicada en el. Los efectos<br />
positivos son un conjunto <strong>de</strong> átomos que se vuelven<br />
verda<strong>de</strong>ros <strong>de</strong>spués <strong>de</strong> aplicar la acción; es <strong>de</strong>cir, en<br />
el estado generado por la acción.<br />
Dominio.- El dominio <strong>de</strong> un problema <strong>de</strong> planeamiento<br />
engloba los tipos, los predicados y las acciones.<br />
Planeador Blackbox<br />
El Sistema <strong>de</strong> Planeamiento Blackbox unifica las i<strong>de</strong>as<br />
<strong>de</strong> los grafos <strong>de</strong> planeamiento (Blum and Furst, 1995) con<br />
las <strong>de</strong> planeamiento <strong>de</strong> lógica proposicional (Kautz and<br />
Selman, 1992).<br />
El algoritmo <strong>de</strong> Blackbox genera un grafo <strong>de</strong> planeamiento<br />
para el problema original, <strong>de</strong>l mismo modo que el<br />
sistema Graphplan, generando un conjunto <strong>de</strong> acciones y<br />
átomos mutuamente exclusivos, los cuales se traducen a<br />
un problema SAT y pue<strong>de</strong>n ser resueltos eficientemente<br />
con cualquier algoritmo SAT genérico.<br />
Lenguaje PDDL 1.1<br />
A partir <strong>de</strong>l lenguaje STRIPS, se han <strong>de</strong>sarrollado otros<br />
lenguajes <strong>de</strong> planificación. Con motivo <strong>de</strong> la primera competición<br />
<strong>de</strong> planificadores que se celebró durante la conferencia<br />
AIPS’98, se presentó PDDL (Planning Domain<br />
Definition Language) mc<strong>de</strong>rmott98.<br />
El objetivo <strong>de</strong> este nuevo lenguaje era que todos los planificadores<br />
participantes en la competición manejaran las<br />
mismas <strong>de</strong>scripciones <strong>de</strong> dominios, <strong>de</strong> forma que la superioridad<br />
<strong>de</strong> uno u otro se manifestara como resultado <strong>de</strong><br />
su funcionamiento y no <strong>de</strong> mayor información especificada<br />
en el problema. El lenguaje PDDL permite la <strong>de</strong>finición<br />
<strong>de</strong> problemas que requieran las siguientes características<br />
sintácticas:<br />
Acciones tipo STRIPS.<br />
Efectos condicionales.<br />
Cuantificación universal sobre universos dinámicos<br />
(es <strong>de</strong>cir, creación y <strong>de</strong>strucción <strong>de</strong> objetos).<br />
Axiomas <strong>de</strong>l dominio.<br />
Especificación <strong>de</strong> restricciones <strong>de</strong> seguridad.<br />
Especificación <strong>de</strong> acciones jerárquicas compuestas <strong>de</strong><br />
subacciones y subobjetivos.<br />
Manejo <strong>de</strong> problemas múltiples en múltiples dominios<br />
utilizando diferentes subconjuntos <strong>de</strong> características<br />
<strong>de</strong>l lenguaje (para soportar la compartición<br />
<strong>de</strong> dominios entre diferentes planificadores que manejan<br />
distintos niveles <strong>de</strong> expresividad).<br />
V. Aplicación<br />
Para po<strong>de</strong>r resolver el problema <strong>de</strong>scrito en la sección<br />
III, es necesario abstraer los elementos (u objetos) y relaciones<br />
que representarán el problema. Se presenta el código<br />
en PDDL, en el que se muestra todos los elementos <strong>de</strong>l<br />
lenguaje.
Inteligencia Artificial 3<br />
Objetos<br />
A1, A2, A3, A4 representan los insumos <strong>de</strong> materia prima.<br />
A1, A2 son <strong>de</strong> fibra <strong>de</strong> algodón pima y A3, A4 son<br />
<strong>de</strong> fibra estándar. B1, B2, B3 representan los insumos en<br />
proceso. B1, B3 son <strong>de</strong> fibra <strong>de</strong> algodón pima y B2 <strong>de</strong> fibra<br />
estándar. N1, N2, N3, N4, N6, N7, N8, N9 representan<br />
los <strong>procesos</strong> <strong>de</strong> teñido, mercerizado, corte, tejido, costura,<br />
estampado, acabado, bordado respectivamente. N0 es<br />
el almacén <strong>de</strong> don<strong>de</strong> parten todos los insumos, N5 y N10<br />
son los almacenes <strong>de</strong> tejidos y <strong>de</strong> prendas <strong>de</strong> vestir respectivamente.<br />
Predicados<br />
Se han <strong>de</strong>finido los predicados ”esta en” y ”pasan”. Con<br />
el primero indicamos que el insumo se encuentra en un<br />
<strong>de</strong>terminado nodo (<strong>de</strong> proceso o almacén); con el segundo<br />
precisamos que el proceso ?y admite para su tratamiento<br />
un tipo especial <strong>de</strong> insumo; ?x es el nodo previo al ?y. A<br />
continuación mostramos <strong>una</strong> parte <strong>de</strong>l dominio en PDDL<br />
referido a los predicados:<br />
(<strong>de</strong>fine (domain <strong>textil</strong>)<br />
(:requirements :strips :equality)<br />
(:predicates<br />
(esta_en ?p ?x)<br />
)<br />
....<br />
(pasan ?x ?y ?p)<br />
Acciones<br />
Se ha consi<strong>de</strong>rado solo <strong>una</strong> acción, la acción ”ir a”, dado<br />
que es la única que nos sirve para representar el problema<br />
tratado. Para que un insumo se dirija al proceso a<strong>de</strong>cuado,<br />
es necesario que este consi<strong>de</strong>re el tratamiento <strong>de</strong><br />
ese tipo <strong>de</strong> insumo. Las precondiciones y efectos para este<br />
caso son obvios, tal como apreciamos:<br />
(:action ir_a<br />
:parameters (?p ?x ?y)<br />
:precondition (and<br />
(esta_en<br />
(pasan<br />
:effect<br />
)<br />
(and<br />
(esta_en ?p ?y)<br />
(not (esta_en ?p ?x))))<br />
Dominio <strong>de</strong>l problema<br />
Descripción <strong>de</strong>l grafo <strong>de</strong>l problema<br />
?p ?x)<br />
?x ?y ?p)<br />
Se muestra el mapa <strong>de</strong> <strong>procesos</strong> y almacenes. Cerca a<br />
las líneas que conectan los nodos, tal como vemos en el<br />
círculo rojo, se indica los tipos <strong>de</strong> insumos que pue<strong>de</strong>n ser<br />
tratados por el proceso <strong>de</strong> tejido, o sea A1, A2, A3, A4.<br />
A diferencia <strong>de</strong>l diagrama <strong>de</strong> nodos inicial (sección III),<br />
en este se muestra en forma <strong>de</strong>tallada la disposición <strong>de</strong> los<br />
nodos, ampliándose en dos gráficos.<br />
Lenguaje PDDL para el dominio <strong>de</strong>l problema<br />
(<strong>de</strong>fine (problem problema_<strong>textil</strong>)<br />
(:domain ciuda<strong>de</strong>s)<br />
(:objects N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N10<br />
A1 A2 A3 A4 B1 B2 B3)<br />
(:init<br />
(esta_en A1 N0) (esta_en A2 N0)(esta_en A3 N0)<br />
(esta_en A4 N0) (esta_en B1 N0)(esta_en B2 N0)<br />
(esta_en B3 N0) (pasan N0 N1 A3)(pasan N0 N1 A4)<br />
(pasan N0 N1 B1) (pasan N0 N1 B2)(pasan N0 N1 B3)<br />
(pasan N0 N2 A1) (pasan N0 N2 A2)(pasan N2 N1 A1)<br />
(pasan N2 N1 A2) (pasan N1 N3 A1)(pasan N1 N3 A2)<br />
(pasan N1 N3 A3) (pasan N1 N3 A4)(pasan N3 N4 A1)<br />
(pasan N3 N4 A2) (pasan N3 N4 A3)(pasan N3 N4 A4)<br />
(pasan N1 N4 B1) (pasan N1 N4 B2)(pasan N1 N4 B3)<br />
(pasan N4 N5 A1) (pasan N4 N5 A2)(pasan N4 N5 A3)
Inteligencia Artificial 4<br />
(pasan N4 N5 A4) (pasan N4 N6 B1)(pasan N4 N6 B2)<br />
(pasan N4 N6 B3) (pasan N6 N8 B1)(pasan N6 N8 B3)<br />
(pasan N6 N7 B2) (pasan N7 N9 B2)(pasan N9 N8 B2)<br />
(pasan N8 N10 B1) (pasan N8 N10 B2)(pasan N8 N10 B3)<br />
)<br />
(:goal<br />
(and<br />
(esta_en A1 N5)(esta_en A2 N5)(esta_en A3 N5)<br />
(esta_en A4 N5)(esta_en B1 N10)(esta_en B2 N10)<br />
(esta_en B3 N10)<br />
)<br />
)<br />
)<br />
Resultados <strong>de</strong> la ejecución <strong>de</strong>l programa<br />
((ir-a a2 n0 n2) (ir-a b2 n0 n1) (ir-a b3 n0 n1)<br />
(ir-a a3 n0 n1) (ir-a b1 n0 n1) (ir-a a1 n0 n2)<br />
(ir-a b1 n1 n4) (ir-a b2 n1 n4) (ir-a a1 n2 n1)<br />
(ir-a a2 n2 n1) (ir-a b3 n1 n4) (ir-a a3 n1 n3)<br />
(ir-a b3 n4 n6) (ir-a a1 n1 n3) (ir-a a2 n1 n3)<br />
(ir-a b1 n4 n6) (ir-a a3 n3 n4) (ir-a b2 n4 n6)<br />
(ir-a a3 n4 n5) (ir-a b1 n6 n8) (ir-a b2 n6 n7)<br />
(ir-a b3 n6 n8) (ir-a a1 n3 n4) (ir-a a2 n3 n4)<br />
(ir-a a1 n4 n5) (ir-a a2 n4 n5) (ir-a b3 n8 n10)<br />
(ir-a b1 n8 n10) (ir-a b2 n7 n9) (ir-a b2 n9 n8)<br />
(ir-a b2 n8 n10))<br />
Representación gráfica <strong>de</strong> los resultados<br />
Las rutas <strong>de</strong> <strong>procesos</strong> para los insumos A1, A2, A3, A4,<br />
B1, B2 y B3, se muestran en la figuras 3, 4 y 5. De los<br />
resultados obtenidos en la ejecución <strong>de</strong>l programa, or<strong>de</strong>naremos<br />
uno a continuación <strong>de</strong>l otro las rutas para un tipo<br />
<strong>de</strong> insumos.<br />
<strong>Ruta</strong> <strong>de</strong> proceso para A1: (ir-a a1 n0 n2)(ir-a a1 n2<br />
n1)(ir-a a1 n1 n3)(ir-a a1 n3 n4)(ir-a a1 n4 n5) <strong>Ruta</strong> <strong>de</strong><br />
proceso para A2: (ir-a a2 n0 n2)(ir-a a2 n2 n1)(ir-a a2 n1<br />
n3)(ir-a a2 n3 n4)(ir-a a2 n4 n5)<br />
VI.<br />
Conclusión<br />
Se pue<strong>de</strong> representar y solucionar problemas reales <strong>de</strong><br />
planeación con las técnicas <strong>de</strong> inteligencia artificial. En este<br />
trabajo se ha visto un caso bien sencillo utilizando <strong>una</strong><br />
sola acción como operador. Sin embargo la representación<br />
tuvo un dominio <strong>de</strong> varios nodos u objetos.<br />
Es muy sencilla la utilización <strong>de</strong>l lenguaje PDDL para<br />
representar dominios <strong>de</strong> casos <strong>de</strong> planeación. A diferencia<br />
<strong>de</strong> otros métodos <strong>de</strong> la investigación <strong>de</strong> operaciones como<br />
los <strong>de</strong> simulación y mo<strong>de</strong>los <strong>de</strong> asignación, con los que se<br />
pue<strong>de</strong> encontrar soluciones <strong>de</strong> un conjunto <strong>de</strong> posibilida<strong>de</strong>s,<br />
este lenguaje esta más cercano al aprendizaje <strong>de</strong> las<br />
personas que el que manejan dichos métodos, como en el<br />
caso <strong>de</strong>l programa GPSS para <strong>de</strong> simulación <strong>de</strong> colas.<br />
VII.<br />
Recomendaciones<br />
<strong>Ruta</strong> <strong>de</strong> proceso para A3: (ir-a a3 n0 n1)(ir-a a3 n1<br />
n3)(ir-a a3 n3 n4)(ir-a a3 n4 n5) <strong>Ruta</strong> <strong>de</strong> proceso para<br />
A4:(ir-a a4 n0 n1)(ir-a a4 n1 n3)(ir-a a4 n3 n4)(ir-a a4 n4<br />
n5)<br />
<strong>Ruta</strong> <strong>de</strong> proceso para B1: (ir-a b1 n0 n1)(ir-a b1 n1<br />
n4)(ir-a b1 n4 n6)(ir-a b1 n6 n8)(ir-a b1 n8 n10) <strong>Ruta</strong> <strong>de</strong><br />
proceso para B2: <strong>Ruta</strong> <strong>de</strong> proceso para B2: (ir-a b2 n0<br />
n1)(ir-a b2 n1 n4)(ir-a b2 n4 n6)(ir-a b2 n6 n7)(ir-a b2 n7<br />
n9)(ir-a b2 n9 n8)(ir-a b2 n8 n10) <strong>Ruta</strong> <strong>de</strong> proceso para<br />
B3: (ir-a b3 n0 n1)(ir-a b3 n1 n4)(ir-a b3 n4 n6)(ir-a b3 n6<br />
n8)(ir-a b3 n8 n10)<br />
Es preferible trabajar con la versión 2.1 <strong>de</strong> PDDL, que<br />
no es soportada por el planeador Blackbox 4.2, utilizado en<br />
este trabajo. La razón es que se pue<strong>de</strong> representar mejor el<br />
mundo, incluyéndole más <strong>de</strong>talles <strong>de</strong> él, como el tiempo<br />
<strong>de</strong> duración <strong>de</strong> las acciones, la suma, resta, multiplicación<br />
y división, etc. De esta forma se pue<strong>de</strong> solucionar problemas<br />
más complejos <strong>de</strong> planeación vinculados a fenómenos<br />
reales.<br />
Se <strong>de</strong>be estar al tanto <strong>de</strong> los resultados <strong>de</strong> las competiciones<br />
internacionales <strong>de</strong> planeamiento, llevadas <strong>de</strong>s<strong>de</strong><br />
1998. La última se llevó el 2002, según las fuentes revisadas,<br />
e incluía más ventajas que la versión inicial <strong>de</strong> PDDL
Inteligencia Artificial 5<br />
1.1. De esta forma ir abarcando problemas mas complejos<br />
relacionados con planeaciones reales, <strong>de</strong> industrias, economía,<br />
etc. La investigación <strong>de</strong> operaciones, cuenta con<br />
métodos para solucionar problemas <strong>de</strong> asignación <strong>de</strong> recursos,<br />
etc. Recomendamos para las generaciones que vienen,<br />
hacer <strong>una</strong> comparación con algunos métodos <strong>de</strong> la investigación<br />
<strong>de</strong> operaciones, que dan solución a problemas<br />
<strong>de</strong> asignación <strong>de</strong> recursos.<br />
Referencias<br />
[1] Maria Fox and Derek Long. ”PDDL 2.1 : An Extension<br />
to pddl for Expressing Temporal Planning<br />
Domains”<br />
Department of Computer and Information Sciences.<br />
University of Strathcly<strong>de</strong>, Glasgow, UK. Journal of<br />
Artificial Intelligence Research 20 (2003) 61-124<br />
[2] Daniel S. Weld. ”Recent Advances in AI Planning”<br />
Department of Computer Science & Engineering.<br />
University of Washington. 1998.<br />
[3] Cipriano Galindo, Juan Fernán<strong>de</strong>z y Javier<br />
González. ”Planificación <strong>de</strong> tareas en entornos<br />
mo<strong>de</strong>lados con jerarquías <strong>de</strong> abstracción”<br />
System Engineering and Automation Departament.<br />
University of Málaga. 2002<br />
[4] Stuart Russell y Meter Norvig. ”Inteligencia Artificial<br />
un Enfoque Mo<strong>de</strong>rno”<br />
Colección <strong>de</strong> Inteligencia Artificial <strong>de</strong> Pretince<br />
Hall. Traducido <strong>de</strong> la obra: Artificial Intelligence a<br />
mo<strong>de</strong>rn approach. Primera edición.