<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2306-0522</journal-id>
<journal-title><![CDATA[Revista Investigación y Tecnología]]></journal-title>
<abbrev-journal-title><![CDATA[Rev Inv Tec]]></abbrev-journal-title>
<issn>2306-0522</issn>
<publisher>
<publisher-name><![CDATA[Universida Mayor de San Andrés]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2306-05222012000100011</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Simplificación de expresiones Regulares]]></article-title>
<article-title xml:lang="en"><![CDATA[Regular expression simplification]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Torrico]]></surname>
<given-names><![CDATA[Lucio]]></given-names>
</name>
</contrib>
</contrib-group>
<aff id="A">
<institution><![CDATA[,  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>11</month>
<year>2012</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>11</month>
<year>2012</year>
</pub-date>
<numero>1</numero>
<fpage>93</fpage>
<lpage>99</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.br/scielo.php?script=sci_arttext&amp;pid=S2306-05222012000100011&amp;lng=en&amp;nrm=iso&amp;tlng=en"></self-uri><self-uri xlink:href="http://www.scielo.br/scielo.php?script=sci_abstract&amp;pid=S2306-05222012000100011&amp;lng=en&amp;nrm=iso&amp;tlng=en"></self-uri><self-uri xlink:href="http://www.scielo.br/scielo.php?script=sci_pdf&amp;pid=S2306-05222012000100011&amp;lng=en&amp;nrm=iso&amp;tlng=en"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[RESUMEN Hay diferentes enfoques intentando simplificar expresiones regulares (e.r.) Basados en el trabajo inicial de Alley Stoughton, "Formal Language Theory. lntegratingExperimentation and Proof' (Stoughton, 2012), hemos efectuado observaciones y algunos aportes a su perspectiva de cómo hallar e.r. menos complejas utilizando reglas de reescritura. El algoritmo denominado fuerte puede ser mejorado priorizando la aplicación de las reglas de simplificación (incluso cambiando algunas de ellas) y principalmente redefiniendo la noción de complejidad de una e.r. Se plantea además recurrir a autómatas para testear lasubsunción.]]></p></abstract>
<abstract abstract-type="short" xml:lang="es"><p><![CDATA[ABSTRACT Different approaches trying to simplify regularexpressions (r.e.) exist. Based on the initial work of Alley Stoughton, "Formal Language Theory. lntegrating Experimentation and Proof " (Stoughton, 2012), we have made comments and some contributions to their perspective ofhow to find r.e. less complex using rewrite mies. Strong algorithrn can be improved prioritizing the implementation of simplification rules (even changing some of them) and mainly redefining the 170ti011 of complexity of a r.e. It is further suggested use automata to test subsumption.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Expresiones regulares]]></kwd>
<kwd lng="es"><![CDATA[complejidad de expresiones regulares]]></kwd>
<kwd lng="es"><![CDATA[simplificación de expresiones regulares]]></kwd>
<kwd lng="es"><![CDATA[Regular expression]]></kwd>
<kwd lng="es"><![CDATA[regular expresión complexity]]></kwd>
<kwd lng="es"><![CDATA[regular expression simplification]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font face="Verdana" size="2" color="#000000"><strong>ART&Iacute;CULO DE INVESTIGACI&Oacute;N</strong></font></p>     <p align="justify">&nbsp;</p>     <p align="center"><font face="Verdana" size="4" color="#000000"><b>Simplificaci&oacute;n de expresiones Regulares</b></font></p>     <p align="center">&nbsp;</p>     <p align="center"><font face="Verdana" size="2" color="#000000"><b><font size="3">Regular expression simplification</font></b></font></p>     <p align="center">&nbsp;</p>     <p align="center"><font face="Verdana" size="2" color="#000000"><b>    <br> </b></font><font color="#000000" size="2" face="Verdana"><b>Lucio Torrico    <br> </b></font><a href="mailto:luciotorrico©gmail.com">luciotorrico@gmail.com</a></p>     <p align="center">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="center">&nbsp;</p> <hr>     <p align="justify"><font color="#000000" size="2" face="Verdana"><b>RESUMEN</b></font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Hay diferentes enfoques intentando simplificar expresiones regulares (e.r.)    <br> Basados en el trabajo inicial de Alley Stoughton, <i>&quot;Formal Language Theory. lntegratingExperimentation and Proof' </i>(Stoughton, 2012), hemos efectuado observaciones y algunos aportes a su perspectiva de cómo hallar e.r. menos complejas utilizando reglas de </font><font color="#000000" size="2" face="Verdana">reescritura.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">El algoritmo denominado fuerte puede ser mejorado priorizando la aplicación de las reglas de </font><font color="#000000" size="2" face="Verdana">simplificación (incluso cambiando algunas de ellas) y principalmente redefiniendo la noción </font><font color="#000000" size="2" face="Verdana">de complejidad de una e.r. Se plantea además recurrir a autómatas para testear la</font><font color="#000000" size="2" face="Verdana">subsunción.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana"><b>Palabras clave:</b></font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Expresiones regulares; complejidad de expresiones regulares; simplificación de expresiones regulares</font></p> <hr>     <p align="justify"><font color="#000000" size="2" face="Verdana"><b><i>ABSTRACT</i></b></font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana"><i>Different approaches trying to simplify regularexpressions (r.e.) exist.     <br> Based on the initial work of Alley Stoughton,  &quot;Formal Language Theory. lntegrating Experimentation <b>and </b>Proof &quot; (Stoughton, 2012), we have made comments and some contributions to their perspective ofhow to find </i>r.e. <i>less complex using rewrite mies. Strong algorithrn can be improved prioritizing the implementation of simplification rules (even changing some of them) and mainly redefining the 170ti011 of complexity of a r.e. It is further </i></font><font color="#000000" size="2" face="Verdana"><i>suggested use automata to test subsumption.</i></font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#000000" size="2" face="Verdana"><b><i>keywords:</i></b></font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana"><i>Regular expression; regular expresión complexity; regular expression simplification</i></font></p> <hr>     <p align="justify">&nbsp;</p>     <p align="justify">&nbsp;</p>     <p align="justify"><font color="#000000" size="3" face="Verdana"><b>INTRODUCCIÓN</b></font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Existen diferentes maneras (teóricas y en software) para simplificar una e.r. Se describen brevemente algunas y luego se opta por la perspectiva de Stoughton. De ella se indica el algoritmo más fuerte, así como una revisión somera de conceptos anexos imprescindibles para su funcionamiento.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Se plantea una discusión, los aportes efectuados, y el énfasis que debe dársele a la noción de complejidad y su cálculo. Se termina proponiendo un criterio adicional al que se sugiere dar mayor importancia.</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font color="#000000" size="3" face="Verdana"><b>MÉTODOS</b></font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Se trata de una teoría construida como un sistema lógico (definiciones. operaciones). Se han derivado y probado enunciados (teoremas, etc.), mismos que deben ser sometidos a crítica y nuevas revisiones. Se ha apelado a esquemas usuales de demostración (inducción, reducción al absurdo). Se.ha hecho uso del análisis y la deducción, la ejemplificación de resultados (que clarifica los mismos. encuentra fisuras o nuevas ideas). Se ha entablado un fluido diálogo vía e-mail. Y el software subyacente y que es producto de la teoría adoptada se ha hecho con una metodología de programación funcional y un lenguaje de programación ML.</font></p>     ]]></body>
<body><![CDATA[<p align="justify">&nbsp;</p>     <p align="justify"><font color="#000000" size="3" face="Verdana"><strong>A MODO DE REVISIÓN Y CONCEPTUALIZACIÓN</strong></font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Presumimos que el lector está familiarizado con los conceptos y nociones de la teoría de lenguajes formales, gramáticas, autómatas y e.r. en el sentido de (Martin, 2003) (Torrico, 2005), que siguen convenciones de notación muy similares. Especialmente (Stoughton. 2012).</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Una variante muy común de obtención de </font><font color="#000000" size="2" face="Verdana">expresiones regulares (e.r.) simplificadas. parte de un autómata finito y elimina estados obteniendo lo que se denomina grafos de transición generalizados, hasta obtener un grafo con sólo dos estados y la e.r. que denota al lenguaje aceptado por el autómata original (Linz, 2006).</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Hay interesantes enfoques sobre cómo hacerlo y en particular cuál estado elegir para su eliminación (Morais y Delgado, 2004) (Gruber y Holzer, 2008) (Martín. 2003) (Torrico, 2005).</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Otra alternativa igualmente popular es la utilización del teorema de Kleene o de un sistema de ecuaciones junto al lema de Arden (Martin, 2003) (Torrico, 2005).</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Dada una er podemos reutilizar estas aproximaciones obteniendo primero el autómata finito (por ej. a través del algoritmo de Thompson (Torrico. 2005)), luego un autómata equivalente de estados mínimos y a partir de él una nueva e.r. (Martin, 2003) (Torrico, 2005)</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">El software revisado, principalmente CALCHALERO (Tamagnini, 2005) y JFLAP (Rodger, 2006), aunque no enfatiza la parte de simplificación, tiende a obtener las e.r. más simples que puede a partir de la teoría indicada.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Existen, sin embargo, alternativas que toman como entrada una e.r. y no utilizan autómatas   para   obtener   otra   menos </font><font color="#000000" size="2" face="Verdana">compleja, haciendo uso más bien de avances en el cómputo simbólico y de reglas de reescritura (Trejo y Fernandez. 1996) (Mitchell, 2005).</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Hay reglas de reescritura conocidas bajo el nombre de equivalencias y son muy populares, aunque normalmente se las presenta sin un procedimiento de uso (Martin, 2003) (Torrico, 2005).</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#000000" size="2" face="Verdana">El caso de Stoughton es paradigmático no sólo porque &quot;ofrece parcialmente nóveles algoritmos y provee algunas reglas de </font><font face="Verdana" size="2" color="#000000">simplificación y conceptos no conocidos como el de complejidad en clausura&quot; (Stoughton, 2012), sino porque acompaña la teoría con el software Forlan de rendimiento nada despreciable.</font></p>     <p align="justify"><font face="Verdana" size="2" color="#000000"><b>El algoritmo más fuerte</b></font></p>     <p align="justify"><font face="Verdana" size="2" color="#000000"><i>Dada una e.r. </i>&alpha;<i> se obtiene un conjunto X de e.r. &beta;</i>, <i>fruto de la aplicación un número arbitrario de veces (a toda la e.r </i>&alpha; o a <i>una subparte de ella): De </i>la <i>simplificación débil, las reglas estructurales, las reglas de reducción o las reglas de distribución. Si </i>X es <i>vacío se devuelve </i>&alpha;.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana"><i>Si </i>X <i>no es vacío el algoritmo se llama a sí mismo recursivamente con el elemento menos complejo de </i>X. (Stoughton, 2012)</font></p>     <p align="justify"><font face="Verdana" size="2" color="#000000">La implementación en Forlan de este algoritmo puede demorar en exceso, de manera que se acepta un parámetro extra n,  limitando la cardinalidad de X en cada llamada. Ello lo hace más eficiente en términos de tiempo, pero puede no dar con la e.r. más simple posible.</font></p>     <p align="justify"><font face="Verdana" size="2" color="#000000"><b>Reglas de distribución, reglas estructurales, reglas de reducción, simplificación débil y subsunción</b></font></p>     <p align="justify"><font face="Verdana" size="2" color="#000000">Las reglas de distribución son obvias: </font></p>     <blockquote>       <p align="justify"><font face="Verdana" size="2" color="#000000">&alpha;(<i>&beta;<sub>1</sub></i> + <i>&beta;<sub>2</sub></i>) &rarr; &alpha;<i>&beta;<sub>1</sub></i> + &alpha;<i>&beta;<sub>2</sub></i> </font></p>       <p align="justify"><font face="Verdana" size="2" color="#000000">(&alpha;<sub>1</sub> + &alpha;<sub>2</sub>)<i>&beta;<sub></sub></i> &rarr; &alpha;<sub>1</sub><i>&beta;</i>  + a<sub>2</sub><i>&beta;</i></font></p> </blockquote>     ]]></body>
<body><![CDATA[<p align="justify"><font face="Verdana" size="2" color="#000000">Las 9 reglas estructurales son del tipo: </font></p>     <blockquote>       <p align="justify"><font face="Verdana" size="2" color="#000000">(&alpha; + <i>&beta;</i>) + &gamma; &rarr; &alpha; +(<i>&beta;</i> + &gamma;)</font></p>       <p align="justify"><font face="Verdana" size="2" color="#000000"> &alpha;<sup>*</sup>&alpha; &rarr; &alpha;&alpha;<sup>*</sup></font></p> </blockquote>     <p align="justify"><font face="Verdana" size="2" color="#000000">De las 26 reglas de reducción, algunas i</font><font face="Verdana" size="2" color="#000000">nteresantes son:</font></p>     <blockquote>       <p align="justify"><font face="Verdana" size="2" color="#000000">(&alpha;<sup>*</sup> +<i> &beta;</i>) &rarr; (&alpha; + <i>&beta;</i>) <sup>*</sup></font></p>       <p align="justify"><font face="Verdana" size="2" color="#000000">&alpha;<sup>*</sup> (% + <i>&beta;</i>(&alpha; + <i>&beta;</i>)<sup>*</sup>) &rarr; (&alpha; + <i>&beta;</i>)<sup>*</sup></font></p>       <p align="justify"><font face="Verdana" size="2" color="#000000">lf hasEmp &alpha; and hasEmp <i>&beta;</i>, then (&alpha;<i>&beta;</i>)<sup>*</sup> &rarr;<i> </i>(&alpha; + <i>&beta;</i>)</font><font face="Verdana" size="2" color="#000000"><sup>*</sup></font></p>       <p align="justify"><font face="Verdana" size="2" color="#000000">If sub(&alpha;&alpha;<sup>*</sup>, <i>&beta;</i>), then &alpha;<sup>*</sup> + <i>&beta;</i> &rarr; &lambda; + <i>&beta;</i></font></p> </blockquote>     ]]></body>
<body><![CDATA[<p align="justify"><font face="Verdana" size="2" color="#000000">La simplificación débil permite obtener e.r. sin subexpresiones tales como &theta;  + <i>&beta;</i>, (<i>&beta;</i><sup>*</sup>)<sup>*</sup>, ó &lambda;<i>&beta;</i><sup></sup>, donde los excesos son evidentes.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">El algoritmo para obtener e.r débilmente simplificadas es recurrente y básicamente desplaza la estrella de Kleene lo más a la derecha posible en cada subexpresión y elimina los excesos mencionados arriba.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Nótese que la aplicación de varias reglas de reducción es condicional y requiere: Determinar si el lenguaje asociado a una e.r. incluye la cadena vacía &lambda;, o bien que calculemos cuándo el lenguaje asociado a una (sub)e.r. dada está subsumido en el lenguaje asociado a otra</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">En ambos casos (junto a la determinación de si el lenguaje asociado a una e.r. incluye al símbolo a) las soluciones son funciones/algoritmos recursivos bastante intuitivos, denominados respectivamente hasEmp, hasSym y obviousSubset.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana"><b>Complejidad de una e.r.</b></font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Se han sugerido muchas medidas de complejidad respecto de e.r. (el peso-estrella y el número de símbolos alfabéticos son dos de ellas) (Ehrenfeucht y Zeiger, 1976) (Ellul, Krwetz. Shallit y Wang. 2005).</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Aquí, las e.r. son árboles.    <br> Por ejemplo, en la <a href="#f1">Figura 1</a>, para la e.r. &alpha; = <strong>0<sup>*</sup> 10<sup>*</sup>+0</strong>:</font></p>     <p align="center"><a name="f1"></a><img src="img/revistas/rit/n1/a11_figura01.gif" width="317" height="297"></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">El tamaño (size, número de nodos) de &alpha; es 9.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#000000" size="2" face="Verdana">La altura de &alpha; es: 5 (si consideramos el número de nodos del camino más largo), ó 4 (si consideramos el números de arcos).</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">A partir de:&lambda;&lt;&theta;&lt;a&lt;*&lt;•&lt; +</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Se define un orden total para las e.r. el cual se se calcula así:</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Primero la raiz, y luego recursivamente sus hijos de derecha a izquierda. </font><font color="#000000" size="2" face="Verdana">• y + son asociativos por derecha.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">La precedencia y asociatividad de los operadores es de mayor a menor: <strong>*</strong>, &bull;</font><font color="#000000" size="2" face="Verdana">, <strong>+</strong>. El alfabeto de una e.r. es el conjunto de símbolos que aparecen en ella.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">El número de símbolos de una e.r. es el número de ocurrencias de símbolos (un símbolo puede ocurrir más de una vez). El número de símbolos de a+aa es 3.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Complejidad en clausura: A partir del árbol de la e.r. se obtiene un lista <u>ordenada </u>(llamada ns) donde cada nodo(celda) de la lista representa una rama del árbol (desde la raiz a uná hoja) y contiene el número de estrellas (de Kleene) en dicha rama.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Por ejemplo (véanse las <a href="#f2">Figuras 2</a> y <a href="#f3">3</a>):</font></p>     <blockquote>       <p align="justify"><font color="#000000" size="2" face="Verdana">&alpha; = ((00<sup>*</sup>)(11<sup>*</sup>))<sup>*</sup>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ns &alpha;=[2,2,1,1]</font></p>       ]]></body>
<body><![CDATA[<p align="justify"><font color="#000000" size="2" face="Verdana">&beta; = 1+(0(0+11<sup>*</sup>0)<sup>*</sup>)(11<sup>*</sup>) &nbsp;ns &beta;=[2,1,1,1,1,0,0,0]</font></p> </blockquote>     <p align="center"><a name="f2"></a><img src="img/revistas/rit/n1/a11_figura02.gif" width="326" height="345"></p>     <p align="center"><a name="f3"></a><img src="img/revistas/rit/n1/a11_figura03.gif" width="351" height="406"></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Una e.r. es menos compleja (complejidad en clausura) que otra si su lista es menor (celda a celda) (ó si son idénticas celda a celda pero tiene menos nodos). En el ejemplo:  cc &beta; &lt;<sub>cc</sub> cc &alpha; .</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Una e.r. se dice que está estandarizada: Si no hay paréntesis innecesarios [(&beta;<sub>1</sub>+&beta;<sub>2</sub>)+&beta;, &beta;<sub>1</sub>&bull;&beta;<sub>2</sub>]; si no ocurre que las estrellas de Kleene están lo más a la izquierda posible [&beta;<sup>*</sup>&beta;, &beta;<sup>*</sup>(&beta;&gamma;), (&beta;<sub>1</sub>&beta;<sub>2</sub>)<sup>*</sup>&beta;<sub>1</sub>, (&beta;<sub>1</sub>&beta;<sub>2</sub>)<sup>*</sup>&beta;<sub>1</sub>&lambda;]; </font><font color="#000000" size="2" face="Verdana">si no ocurre que las e.r. aparecen en desorden [&beta;<sub>1</sub>+&beta;<sub>2</sub> con &beta;<sub>1</sub>&gt; &beta;<sub>2</sub>, &beta;<sub>1</sub>+(&beta;<sub>2</sub>+&beta;<sub>2</sub>) con &beta;<sub>1</sub>&gt; &beta;<sub>2</sub>].</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Para juzgar la complejidad relativa de las e.r. &alpha; y &beta; (si una es más simple -menos compleja que otra-), se calcula en orden:</font></p>     <blockquote>       <p align="justify"><font color="#000000" size="2" face="Verdana">-&nbsp;La complejidad en clausura. En caso de que sean iguales:</font></p>       <p align="justify"><font color="#000000" size="2" face="Verdana">-&nbsp;El tamaño. Si son iguales:</font></p>       <p align="justify"><font color="#000000" size="2" face="Verdana">-&nbsp;El número de concatenaciones. Si son iguales:</font></p>       ]]></body>
<body><![CDATA[<p align="justify"><font color="#000000" size="2" face="Verdana">-&nbsp;El número de símbolos. Si son iguales:</font></p>       <p align="justify"><font color="#000000" size="2" face="Verdana">-&nbsp;Si están estandarizadas o no. </font></p> </blockquote>     <p align="justify"><font color="#000000" size="2" face="Verdana">Se denota dicha relación así:</font></p>     <blockquote>       <p align="center"><font color="#000000" size="2" face="Verdana">a &le;<sub>simp</sub> &beta;.</font></p> </blockquote>     <p align="justify">&nbsp;</p>     <p align="justify"><font face="Verdana" size="3" color="#000000"><b>RESULTADOS</b></font></p>     <p align="justify"><font face="Verdana" size="2" color="#000000">Sin contar el apoyo para el proof-reading, el autor de este artículo ha sido parte de un excitante intercambio de puntos de vista por e-mail con Stoughton y ha sugerido cambios, como en la regla 15, hasta llegar a su versión actual:</font></p>     <p align="center"><img src="img/revistas/rit/n1/a11_figura04.gif" width="332" height="97"></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Que si bien aumenta el tamaño, disminuye el peso-estrella.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#000000" size="2" face="Verdana">Otro grupo de resultados se entienden mejor luego de la discusión, en lo que llamamos variante</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><strong><font color="#000000" size="3" face="Verdana">DISCUSIÓN</font></strong></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Stoughton ha proporcionado una base sólida  para  una  simplificación  de  e.r. procedimental que no apele a autómatas. La      perspectiva      merece      algunos comentarios:</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Algunas de las reglas originales de reducción privilegiaban la reducción del tamaño de la e.r. <i>(size) </i>incluso haciendo e.r con un peso-estrella <i>(star-height) </i>elevado</font>.</p>     <p align="justify"><font color="#000000" size="2" face="Verdana">La función/algoritmo que determina subsunción adolece de incompletitud como la misma autora juzga.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Si bien la definición y la determinación de complejidad son sólidas, no supera algunas pruebas.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">En particular. un sondeo realizado muestra que la e.r &alpha; = a(a(a(&lambda;+a))) es considerada por muchos entrevistados como más compleja que la e.r. &beta; = aaa+aaaa. Es decir, el número de paréntesis aporta complejidad.</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font color="#000000" size="3" face="Verdana"><b>VARIANTE</b></font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#000000" size="2" face="Verdana">Aunque requiera que apelemos a autómatas, el testeo de subsunción puede hacerse completo y, en la práctica, en tiempo aceptable.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">En efecto, se sabe que L<sub>1</sub> &sube; L<sub>2</sub> si y sólo si L<sub>1</sub> &cap; <i>L<sup>c</sup><sub>2</sub> </i>= {} (la <sup>c</sup> indica complemento) Para calcular si el lenguaje asociado a una e.r. está subsumido en el lenguaje asociado a otra e.r. basta construir los autómatas determinísticos mínimos (AFDM) A<sub>1</sub> y <i>A<sub>2</sub> </i>para ambas expresiones, el AFDM para el complemento de <i>A<sub>2</sub></i>, llamémosle Ac, y el AFD para la intersección de <i>A<sub>1</sub></i> y <i>A<sub>c</sub>. </i>Y testear si dicho AFD para la intersección acepta sólo el conjunto vacío o no</font>.</p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Existe abundante teoría para todas estas construcciones y de hecho Forlan permite hacerlo. Por ejemplo, el caso de testear si un AFD acepta sólo el conjunto vacío o no, es un conocido problema decidible: Podemos construir el conjunto de estados alcanzables desde el inicial, y si alguno de ellos es final, entonces A no acepta el conjunto vacío,; en otro caso sí. O bien seguir la alternativa de Davis: L(A) &ne; {} si y sólo si &exist;w d<sup>*</sup>(q1,w)&isin;F con |w| &lt; n (donde n es el número de estados de A). Disminuye la belleza de hacerlo todo con e.r. (sin autómatas), pero aporta completitud.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">El   número   de   paréntesis   (de   forma análoga al número de símbolos) debe ser un criterio incluido en la jerarquía de complejidad relativa: Antes del tamaño. Es decir, una e.r. &beta; que tenga mayor número    de    pares    de    paréntesis emparejados que otra e.r. a debe ser considerada como más compleja ó menos simple,   incluso   si   cuenta   con   más concatenaciones o es de mayor tamaño. </font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Es más, el caso &beta; = aa+aaa, &alpha; = (&lambda;+a)aa exige un replanteamiento aún mayor de la jerarquía, pues en este caso: </font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">tamaño &alpha; = 7        &lt; 9 = tamaño &beta;</font><font color="#000000" size="2" face="Verdana">    <br> </font><font color="#000000" size="2" face="Verdana">cc &alpha; = [0,0,0,0]      &lt; [0,0,0,0,0] = cc &beta; numConcats &alpha; = 2 &lt; 3 = numConcats &beta;</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Pero &beta; esmássimpleque &alpha; es compatible con la idea que tienen los entrevistados y no parece un exceso ni un caso excepcional.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Es  claro  que   pensamos   en   e.r.   sin paréntesis   innecesarios   (como   en   la </font><font color="#000000" size="2" face="Verdana">estandarización).</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Queda en discusión si este número de paréntesis emparejados debe estar incluso antes de la complejidad en clausura, como parece indicar el ejemplo citado, o luego.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#000000" size="2" face="Verdana">También parece razonable (mientras no podamos agotar todas las selecciones posibles  en  el  conjunto X  y en  su </font><font color="#000000" size="2" face="Verdana">obtención), plantear la posibilidad de priorizar el uso de las reglas de reescritura.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Las reglas de distribución no debieran ser una opción sino una primera elección. debido a que reducen el número de paréntesis aún a pesar de incrementar el número de concatenaciones (obviamente en cálculos intermedios esto puede relativizarse).</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Ello obliga a pensar en la posibilidad de privilegiar el uso de algunas reglas (incluso diferentes a las de distribución) antes que otras.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Por supuesto estos cambios no se han introducido en Forlan, dado que la autora de dicho software es quien debe decidirlo.</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font color="#000000" size="3" face="Verdana"><strong>CONCLUSIONES</strong></font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Se han revisado los procedimientos de simplificación existentes. tanto a nivel teórico como a nivel de software gratuito accesible.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Aunque una alternativa posible es hacer uno relativamente novel en base a ellos. hemos decidido adoptar el punto de vista de Stoughton a través de reglas de reescritura y una enriquecida conceptualización, trabajar con ella y aportar (críticamente) a su visión del proceso de simplificación.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Participando en la redefinición de complejidad relativa, considerando más simples, e.r. con menor peso-estrella (incluso con mayor tamaño).</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Modificando algunas reglas de reducción, que respeten la complejidad redefinida. Promoviendo un testeo de subsunción completo,   aún   al   costo   de   introducir autómatas en los cálculos intermedios. Planteando una nueva redefinición de la complejidad    relativa,    haciendo    más deseables   (simples)   e.r.   con   menor número de paréntesis.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#000000" size="2" face="Verdana">Y sugiriendo reflexionar sobre la ventaja de privilegiar el uso de algunas reglas antes que otras.</font></p>     <p align="justify"><font color="#000000" size="2" face="Verdana">Finalmente, mencionar que la inclusión de nuevas reglas de reducción (o afinamiento de las existentes) y el mejoramiento del cálculo de la subsunción sin autómatas son sólo dos de los tópicos que aún están abiertos. y que esperan aportes creativos.</font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font color="#000000" size="3" face="Verdana"><b>BIBLIOGRAFÍA</b></font></p>     <!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Ehrenfeucht, A. y Zeiger, P. (1976). <i>Complexity measures for regular expressions. </i></font><font color="#000000" size="2" face="Verdana">Journal of Computer and System Sciences, 12, pp. 134-146 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100001&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Ellul, K., Krawetz B., Shallit J., y Wang M. (2005) <i>Regular expressions: Newresults and open problems. </i>Journal of Automata, Languages and Combinatorics, 10(4), pp. 407-437 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100002&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Gruber H., y Holzer M. (2008). <i>Provably shorter regular expressions from </i></font><font color="#000000" size="2" face="Verdana"><i>deterministic finite autómata. </i>In DLT 2008, LNCS, vol. 5257, pp. 383-395. Springer </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100003&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Linz, P. (2006). <i>An introduction to Formal Languages and Automata. </i>(4<sup>1</sup> ed.) Londres: </font><font color="#000000" size="2" face="Verdana">Jones &amp; Bartlett </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100004&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Martín, J. (2003). <i>introduction to Languages andthe Theory ofComputation. </i>(3<sup>a</sup> ed.) </font><font color="#000000" size="2" face="Verdana">Nueva York: McGraw-Hill </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100005&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Mitchel, N. (2005). <i>Regular expression simplification. </i>[Homepage]. Consultado: [26, </font><font color="#000000" size="2" face="Verdana">Enero, 2011] Disponible en: <A href=http://community.haskelkorg/—ndm/resimplify target="_blank">http://community.haskelkorg/—ndm/resimplify</A> </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100006&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Morais, J., y Delgado, M. (2004). <i>Approximation to the Smallest Regular Expression </i></font><font color="#000000" size="2" face="Verdana"><i>for a Given Regular Language. </i>In CIAA 2004, LNCS, vol. 3317, pp. 312-314. Springer. </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100007&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Rodger, S. (2006). <i>JFLAP. </i>[Software en línea]. Consultado: [15, Enero, 2012] Disponible </font><font color="#000000" size="2" face="Verdana">en: <A href=http://jflap.org target="_blank">http://jflap.org</A> </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100008&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Stoughton, A. (2012). <i>Formal Language Theory. lntegrating Experimentation and Proof. </i></font><font color="#000000" size="2" face="Verdana">[Libro en línea]. Consultado: [15, Agosto, 2012] Disponible en: </font><font color="#000000" size="2" face="Verdana"><A href=http://alleystoughton.com/forlan/book target="_blank">http://alleystoughton.com/forlan/book</A> </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100009&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Tamagnini, J. <i>Chalchalero. </i>(2005). [Software en línea]. Consultado: [26, Enero, 2011] </font><font color="#000000" size="2" face="Verdana">Disponible en: <A href=http://www.ucse.edu.ar/fma/sepa target="_blank">http://www.ucse.edu.ar/fma/sepa</A></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100010&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Torrico, L. (2005). <i>Lenguajes Formales. </i>La Paz: Universidad Mayor de San Andrés. [Libro en línea]. Consultado: [15, Agosto, 2012] Disponible en: <a href="https://sites.google.com/site/luciotorrico/libros-escritos/LenguajesFormales.pdf" target="_blank">https://sites.google.com/site/luciotorrico/libros-escritos/LenguajesFormales.pdf </a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100011&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font color="#000000" size="2" face="Verdana">Trejo, A., y Fernandez, G. (1996). <i>Regular expressions simplification. </i>The </font><font color="#000000" size="2" face="Verdana">2nd IMACS Conference on Applications of Computer Algebra, Hagenberg, Austria</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scieloOrg/php/reflinks.php?refpid=S2306-0522201200010001100012&pid=S2306-05222012000100011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');"></a>&#160;]<!-- end-ref --><p align="justify">&nbsp;</p>     <p align="justify">&nbsp;</p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ehrenfeucht]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Zeiger]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[Journal of Computer and System SciencesComplexity measures for regular expressions]]></source>
<year>1976</year>
<numero>12</numero>
<issue>12</issue>
<page-range>134-146</page-range></nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ellul]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Krawetz]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Shallit]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Wang]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Regular expressions: Newresults and open problems]]></article-title>
<source><![CDATA[Journal of Automata, Languages and Combinatorics]]></source>
<year>2005</year>
<volume>10</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>407-437</page-range></nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gruber]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Holzer]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[In DLT 2008, LNCSProvably shorter regular expressions from deterministic finite autómata]]></source>
<year>2008</year>
<volume>5257</volume>
<page-range>383-395</page-range></nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Linz]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[An introduction to Formal Languages and Automata]]></source>
<year>2006</year>
<edition>4</edition>
<publisher-loc><![CDATA[Londres ]]></publisher-loc>
<publisher-name><![CDATA[Jones & Bartlett]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Martín]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[introduction to Languages andthe Theory ofComputation]]></source>
<year>2003</year>
<edition>3</edition>
<publisher-loc><![CDATA[Nueva York ]]></publisher-loc>
<publisher-name><![CDATA[McGraw-Hill]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mitchel]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<source><![CDATA[Regular expression simplification.]]></source>
<year>2005</year>
</nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Morais]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Delgado]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[In CIAA 2004, LNCSApproximation to the Smallest Regular Expression for a Given Regular Language]]></source>
<year>2004</year>
<volume>3317</volume>
<page-range>312-314</page-range></nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rodger]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[JFLAP. [Software en línea].]]></source>
<year>2006</year>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Stoughton]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Formal Language Theory.: lntegrating Experimentation and Proof.]]></source>
<year>2012</year>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tamagnini]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Software en línea]]></source>
<year>2005</year>
</nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Torrico]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<source><![CDATA[Lenguajes Formales.]]></source>
<year>2005</year>
<publisher-loc><![CDATA[La Paz ]]></publisher-loc>
<publisher-name><![CDATA[Universidad Mayor de San Andrés]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Trejo]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Fernandez]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[Regular expressions simplification.: The 2nd IMACS Conference on Applications of Computer Algebra]]></source>
<year>1996</year>
<publisher-loc><![CDATA[Hagenberg ]]></publisher-loc>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
