06.02.2014 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!