<?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>1815-5936</journal-id>
<journal-title><![CDATA[Ingeniería Industrial]]></journal-title>
<abbrev-journal-title><![CDATA[Ing. Ind.]]></abbrev-journal-title>
<issn>1815-5936</issn>
<publisher>
<publisher-name><![CDATA[Facultad de Ingeniería Industrial, Instituto Superior Politécnico José Antonio Echeverría, Cujae.]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1815-59362017000100004</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Búsquedas de caminos mínimos haciendo uso de grafos reducidos]]></article-title>
<article-title xml:lang="en"><![CDATA[Shortest path search using reduced graphs]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Rodríguez-Puente]]></surname>
<given-names><![CDATA[Rafael]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Lazo-Cortés]]></surname>
<given-names><![CDATA[Manuel]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de las Ciencias Informáticas, Facultad 3  ]]></institution>
<addr-line><![CDATA[La Habana ]]></addr-line>
<country>Cuba</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>04</month>
<year>2017</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>04</month>
<year>2017</year>
</pub-date>
<volume>38</volume>
<numero>1</numero>
<fpage>32</fpage>
<lpage>42</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S1815-59362017000100004&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S1815-59362017000100004&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S1815-59362017000100004&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Uno de los problemas de optimización ampliamente estudiados consiste en la búsqueda de caminos mínimos desde un origen a un destino. Los algoritmos clásicos que solucionan este problema no son escalables. Se han publicado varias propuestas utilizando heurísticas que disminuyen el tiempo de respuesta; pero las mismas introducen un error en el resultado. El presente trabajo propone el uso de un algoritmo de reducción de grafos sin pérdida de información, el cual contribuye a reducir el tiempo de respuesta en la búsqueda de caminos. Además, se propone una modificación al algoritmo de Dijkstra para ser utilizado sobre grafos reducidos, garantizando la obtención del óptimo en todos los casos. También se realiza una comparación entre el tiempo de ejecución de la propuesta y los algoritmos de Dijkstra y A*, la cual muestra que es posible obtener un camino óptimo en tiempos similares, e incluso inferiores, a los obtenidos por algoritmos heurísticos.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[One of the widely studied ptimization problems consistsin finding shortest paths from a source to a destination. Classical algorithmsfor solving this problemare not scalable. Several approaches have been proposed, using heuristics, to reduce the run time. These approaches introduce anerrorand, consequently, they do not guaranteean optimum value inall cases. In this paper we propose agraph reductionalgorithm without loss of information, which helps to reduce the run time of algorithms. In addition, we propose a modification to the Dijkstraalgorithmto be used on reduced graphs, guaranteeing an optimalresult in all cases. Besides, a comparison between the run time of the proposed algorithms and Dijkstraand A* algorithms is presented. This comparison shows that it ispossible to obtain an optimal pathin a similar time, and even in less time, than those obtained by heuristic algorithms.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Algoritmo de Dijkstra]]></kwd>
<kwd lng="es"><![CDATA[búsqueda de camino mínimo]]></kwd>
<kwd lng="es"><![CDATA[reducción de grafos]]></kwd>
<kwd lng="en"><![CDATA[Dijkstra algorithm]]></kwd>
<kwd lng="en"><![CDATA[shortest path search]]></kwd>
<kwd lng="en"><![CDATA[graph reduction]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  	    <p align="right" ><font face="verdana" size="2"><b>ART&Iacute;CULO ORIGINAL</b></font></p>  	     <p align="right" ><font face="verdana" size="2"></font></p>  	    <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>  	     <p align="justify"><font face="verdana" size="2"><b><font size="4">B&uacute;squedas    de caminos m&iacute;nimos haciendo uso de grafos reducidos</font></b></font></p>  	    <p align="justify"><font face="verdana" size="2"><b>&nbsp;</b></font></p>  	     <p ><font face="verdana" size="2"><b><font size="3">Shortest    path search using reduced graphs</font></b></font></p>  	    <p ><font face="verdana" size="2"><b>&nbsp;</b></font></p>  	    <p ><font face="verdana" size="2"><b>&nbsp;</b></font></p>  	     <p align="justify"><font face="verdana" size="2"><b>Rafael Rodr&iacute;guez&#45;Puente,    Manuel Lazo&#45;Cort&eacute;s</b></font></p>  	    ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">Universidad de las Ciencias Inform&aacute;ticas, Facultad 3. La Habana, Cuba</font></p>  	     <p >&nbsp;</p>  	    <p ><font face="verdana" size="2">&nbsp;</font></p> <hr>     <p ><font face="verdana" size="2"><b>RESUMEN</b></font></p>  	     <p ><font face="verdana" size="2">Uno de los problemas    de optimizaci&oacute;n ampliamente estudiados consiste en la b&uacute;squeda    de caminos m&iacute;nimos desde un origen a un destino.&nbsp; Los algoritmos    cl&aacute;sicos que solucionan este problema no son escalables. Se han publicado    varias propuestas utilizando heur&iacute;sticas que disminuyen el tiempo de    respuesta; pero las mismas introducen un error en el resultado. El presente    trabajo propone el uso de un algoritmo de reducci&oacute;n de grafos sin p&eacute;rdida    de informaci&oacute;n, el cual contribuye a reducir el tiempo de respuesta en    la b&uacute;squeda de caminos. Adem&aacute;s, se propone una modificaci&oacute;n    al algoritmo de Dijkstra para ser utilizado sobre grafos reducidos, garantizando    la obtenci&oacute;n del &oacute;ptimo en todos los casos. Tambi&eacute;n se    realiza una comparaci&oacute;n entre el tiempo de ejecuci&oacute;n de la propuesta    y los algoritmos de Dijkstra y A*,&nbsp; la cual muestra que es posible obtener    un camino &oacute;ptimo en tiempos similares, e incluso inferiores, a los obtenidos    por algoritmos heur&iacute;sticos.</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Palabras clave:</b> Algoritmo    de Dijkstra, b&uacute;squeda de camino m&iacute;nimo, reducci&oacute;n de grafos.</font></p>  	    <p ><font face="verdana" size="2"><b>ABSTRACT</b></font></p>  	     <p ><font face="verdana" size="2">One    of the widely studied ptimization problems consistsin finding shortest paths    from a source to a destination. Classical algorithmsfor solving this problemare    not scalable. Several approaches have been proposed, using heuristics, to reduce    the run time. These approaches introduce anerrorand, consequently, they do not    guaranteean optimum value inall cases. In this paper we propose agraph reductionalgorithm    without loss of information, which helps to reduce the run time of algorithms.    In addition, we propose a modification to the Dijkstraalgorithmto be used on    reduced graphs, guaranteeing an optimalresult in all cases. Besides, a comparison    between the run time of the proposed algorithms and Dijkstraand A* algorithms    is presented. This comparison shows that it ispossible to obtain an optimal    pathin a similar time, and even in less time, than those obtained by heuristic    algorithms.</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Key words:</b> Dijkstra algorithm,    shortest path search, graph reduction.</font></p>  	<hr>     <p ><font face="verdana" size="2"><i>&nbsp;</i></font></p>  	     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2"><b> <font size="3">INTRODUCCI&Oacute;N</font></b></font></p>  	    <p ><font face="verdana" size="2">La b&uacute;squeda de caminos m&iacute;nimos ha sido ampliamente estudiada, se puede encontrar aplicaciones en varias ramas de la ciencia.</font></p>  	     <p ><font face="verdana" size="2">Uno de los algoritmos    cl&aacute;sicos&nbsp; y m&aacute;s utilizados para el c&aacute;lculo&nbsp; del    camino m&iacute;nimo desde un origen a un destino es el algoritmo de Dijkstra,    el mismo fue enunciado por primera vez por Edger Dijkstra en el a&ntilde;o 1959    &#91;1&#93; y es uno de los algoritmos m&aacute;s utilizados y discutidos en    la literatura de grafos, la complejidad temporal es O(n<sup>2</sup>) . Sin embargo,    este algoritmo no es eficiente para realizar b&uacute;squedas de camino m&iacute;nimo    en grafos grandes &#91;2&#93;. Se debe aclarar que el t&eacute;rmino grande    es relativo y depende del <i>hardware</i> que se disponga.</font></p>     <p ><font face="verdana" size="2">Varios autores    definen heur&iacute;sticas para disminuir el tiempo de respuesta &#91;3, 4&#93;,    sin embargo, estas heur&iacute;sticas introducen un margen de error, el cual    no permite obtener el &oacute;ptimo en todos los casos. A continuaci&oacute;n,    se describen algunos de los algoritmos heur&iacute;sticos m&aacute;s relevantes.</font></p>  	     <p ><font face="verdana" size="2">Uno de los algoritmos    heur&iacute;sticos m&aacute;s utilizados es el algoritmo A* (A&#45;star) &#91;5&#93;.    El objetivo principal del mismo es reducir el tiempo de ejecuci&oacute;n mediante    la reducci&oacute;n del espacio de b&uacute;squeda, teniendo en cuenta solo    los v&eacute;rtices que tienen mejores posibilidades de aparecer en el camino    m&iacute;nimo. Si la heur&iacute;stica seleccionada es &oacute;ptima, la complejidad    del algoritmo se reduce a O(n) . Por esta raz&oacute;n el algoritmo A* es ampliamente    utilizado para b&uacute;squedas de caminos m&iacute;nimos.</font></p>  	     <p ><font face="verdana" size="2">Noto y Sato (2000)    proponen una extensi&oacute;n del algoritmo de Dijkstra basado en la b&uacute;squeda    bidireccional &#91;6&#93;. Este algoritmo es capaz de dar respuesta en un tiempo    dado. Si el tiempo de b&uacute;squeda especificado se alcanza por el algoritmo,    se utiliza otro enfoque para el resto de la b&uacute;squeda del camino m&iacute;nimo    utilizando algoritmos gen&eacute;ticos. Con este enfoque se logra un tiempo    de respuesta bajo, pero este algoritmo est&aacute; basado en el algoritmo de    Dijkstra por lo que no es adecuado para grafos grandes.</font></p>  	     <p ><font face="verdana" size="2">Otro enfoque estudiado    para la b&uacute;squeda de caminos m&iacute;nimos en grafos grandes est&aacute;    relacionado con el uso de determinadas propiedades de la red que representa    el grafo para la reducci&oacute;n del espacio de b&uacute;squeda. En este sentido    se pueden mencionar varios trabajos; por ejemplo, Gutman (2004) propone un algoritmo    en el cual se define un atributo formal llamado <i>reach</i> &#91;7&#93;. Este    atributo es una medida de la relevancia del v&eacute;rtice, es precalculado    utilizando el grafo y contribuye a la reducci&oacute;n del tiempo de ejecuci&oacute;n    de la b&uacute;squeda de caminos m&iacute;nimos.</font></p>  	     <p ><font face="verdana" size="2">Goldberg y Harrelson    (2005) definen el algoritmo Landmark&#45;A* &#91;8&#93;, el aporte en este caso    es una t&eacute;cnica basada en preprocesamiento para realizar el c&oacute;mputo    de los puntos de referencia. Una vez elegidos dichos puntos, se calcula y almacena    el camino m&iacute;nimo desde cada v&eacute;rtice del grafo a cada punto de    referencia y viceversa. Esta informaci&oacute;n luego es utilizada para reducir    el espacio de b&uacute;squeda. Este algoritmo es similar al propuesto por Gutman,    los dos basan su estrategia en determinar puntos "importantes" para la b&uacute;squeda    de caminos m&iacute;nimos atendiendo a distintos criterios. Como se puede apreciar,    el tiempo de preprocesamiento crece considerablemente con el crecimiento de    la cantidad de v&eacute;rtices del grafo y la cantidad de puntos de referencia.</font></p>  	     <p ><font face="verdana" size="2">Otro enfoque relevante    que utiliza las propiedades de la red sobre la que se realiza el an&aacute;lisis    est&aacute; relacionado con el uso de la jerarqu&iacute;a presente en una red    de viales. Varias estrategias utilizan este enfoque; por ejemplo, Sanders y    Shultes (2005) proponen un algoritmo para la construcci&oacute;n y consulta    de redes jer&aacute;rquicas &#91;9&#93;, los autores logran obtener un tiempo    de ejecuci&oacute;n bajo mostrando la viabilidad de este m&eacute;todo. Gonzalez    et al. (2007) utilizan la jerarqu&iacute;a de las calles para particionar la    red de viales en &aacute;reas y precalcular caminos m&iacute;nimos en estas    &aacute;reas &#91;10&#93;. Este enfoque utiliza el hecho de que algunas calles    son m&aacute;s transitadas que otras y los choferes usualmente utilizan las    calles m&aacute;s largas y anchas.</font></p>  	     <p ><font face="verdana" size="2">Geisberger et    al. (2008) proponen un enfoque que utiliza solamente las aristas que est&aacute;n    relacionadas con v&eacute;rtices "importantes" &#91;11&#93;. Efentakis et al.    presentan un algoritmo de b&uacute;squeda de camino m&iacute;nimo que imita    el comportamiento de los conductores humanos explotando la jerarqu&iacute;a    de la red de viales &#91;12&#93;.</font></p>  	     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">Delling et al.    (2009) muestran una revisi&oacute;n de algoritmos de c&aacute;lculo de rutas    &#91;13&#93;, todas las estrategias muestran importantes avances en el c&aacute;lculo    de caminos m&iacute;nimos y hacen posible un bajo tiempo de respuesta en grafos    grandes a trav&eacute;s del uso de heur&iacute;sticas.</font></p>  	     <p ><font face="verdana" size="2">Sanders y Shultes    (2007) definen un m&eacute;todo que es similar al propuesto por Gutman &#91;14&#93;.    Los autores tienen en cuenta v&eacute;rtices relevantes (<i>transitnodes</i>)    para precalcular caminos m&iacute;nimos para viajes de larga distancia. Para    ello, realizan el c&aacute;lculo del camino m&iacute;nimo entre cada par de    v&eacute;rtices relevantes y el camino m&iacute;nimo desde cada origen o destino    potencial hasta los v&eacute;rtices relevantes m&aacute;s cercanos. Este enfoque    necesita una noci&oacute;n efectiva de viaje de larga distancia, por otra parte,    el &oacute;ptimo se garantiza dependiendo del filtro seleccionado.</font></p>  	    <p ><font face="verdana" size="2">Los enfoques descritos anteriormente se basan en la idea de que para el c&aacute;lculo de caminos largos (en redes grandes), solo se necesitan las calles de los niveles m&aacute;s altos (autopistas, calles m&aacute;s transitadas, etc.) de la red jer&aacute;rquica. Esta consideraci&oacute;n reduce el tiempo de ejecuci&oacute;n de la b&uacute;squeda de caminos m&iacute;nimos pero no garantiza la obtenci&oacute;n del camino &oacute;ptimo.</font></p>  	    <p ><font face="verdana" size="2">Los sistemas comerciales utilizan algoritmos heur&iacute;sticos para el c&aacute;lculo de caminos m&iacute;nimos con el objetivo de reducir el tiempo de respuesta a este tipo de petici&oacute;n. Varios autores han dise&ntilde;ado algoritmos para este prop&oacute;sito, a continuaci&oacute;n se describen dos de ellos.</font></p>  	     <p ><font face="verdana" size="2">Liu y Yang (2009)    proponen un algoritmo heur&iacute;stico, en el cual se define una funci&oacute;n    de restricci&oacute;n espacial para disminuir el costo de la b&uacute;squeda    de caminos m&iacute;nimos &#91;15&#93;. Los autores prueban, en los resultados    experimentales, que el tiempo de respuesta de este algoritmo est&aacute; cercano    al del algoritmo A*.</font></p>  	     <p ><font face="verdana" size="2">Fei et al. (2010)    describen un sistema que puede mostrar informaci&oacute;n espacial y atributos    de varias secciones de una calle, analiza informaci&oacute;n del estado del    tr&aacute;fico y de accidentes de tr&aacute;fico y es capaz de mostrarla en    tiempo real &#91;16&#93;. Este sistema utiliza el formato TAB de MapInfo para    almacenar la cartograf&iacute;a y la informaci&oacute;n adicional (datos socio&#45;econ&oacute;micos)    la almacena en SQL Server 2000. Se utilizan completamente sistemas propietarios    que en este caso se descartan por las implicaciones que tiene en la econom&iacute;a    del pa&iacute;s y en la soberan&iacute;a tecnol&oacute;gica.</font></p>  	    <p ><font face="verdana" size="2">Los algoritmos heur&iacute;sticos son muy importantes en la soluci&oacute;n de problemas de alto costo computacional; sin embargo, introducen un margen de error y por tanto no garantizan la obtenci&oacute;n del camino &oacute;ptimo en todos los casos. La complejidad de aplicaci&oacute;n est&aacute; ligada en gran medida a la selecci&oacute;n de una heur&iacute;stica &oacute;ptima</font></p>  	     <p ><font face="verdana" size="2">Por otra parte,    existen varios algoritmos que permiten reducir un grafo &#91;17 - 19&#93;, al    aplicar cualquier algoritmo sobre el grafo reducido evidentemente se lograr&aacute;    un menor tiempo de respuesta, pero en los mismos la reducci&oacute;n trae como    consecuencia p&eacute;rdida de informaci&oacute;n,&nbsp; por lo que no se puede    garantizar que se obtenga el&nbsp; &oacute;ptimo.</font></p>  	    <p ><font face="verdana" size="2">En el presente art&iacute;culo se propone un mecanismo para disminuir el tiempo de respuesta de las b&uacute;squedas de caminos m&iacute;nimos haciendo uso de un algoritmo de reducci&oacute;n de grafos sin p&eacute;rdida de informaci&oacute;n. Adem&aacute;s, se expone una modificaci&oacute;n al algoritmo de Dijkstra para realizar b&uacute;squedas de caminos m&iacute;nimos en grafos reducidos. Los resultados experimentales muestran que los costos obtenidos por los algoritmos de Dijkstra y A* son superiores a los obtenidos por el Dijkstra modificado sobre los grafos reducidos.</font></p>  	    <p ><font face="verdana" size="2">&nbsp;</font></p>  	     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2"><b><font size="3">M&Eacute;TODOS</font></b></font></p>  	     <p ><font face="verdana" size="2">El    problema de la b&uacute;squeda de caminos m&iacute;nimos en un grafo ponderado    G = (V, E, fc) &nbsp;desde un v&eacute;rtice v<sub>i</sub>&nbsp;hasta otro v<sub>j</sub>&nbsp;consiste    en buscar un camino desde v<sub>i</sub> a v<sub>j</sub>, tal que el valor <img src="img/revistas/rii/v38n1/e0104117.jpg" width="85" height="50" align="absmiddle">&nbsp;&nbsp;sea    m&iacute;nimo.</font></p>  	    <p ><font face="verdana" size="2">En varios problemas que son resueltos haciendo uso de la teor&iacute;a de grafos, es com&uacute;n la necesidad de transformar un grafo. En particular, una transformaci&oacute;n puede tratarse como reducci&oacute;n si el nuevo grafo obtenido tiene una menor cantidad de v&eacute;rtices.</font></p>  	    <p ><font face="verdana" size="2">A continuaci&oacute;n se muestran notaciones y definiciones necesarias para la comprensi&oacute;n del presente trabajo.</font></p>  	     <p ><font face="verdana" size="2">Las gram&aacute;ticas    de grafo se pueden clasificar seg&uacute;n varios criterios, atendiendo a la    forma en que se transforman los grafos y siguiendo el enfoque cl&aacute;sico    de Janssens y Rozenberg se pueden clasificar en gram&aacute;ticas NCE &#91;20&#93;,    NLC &#91;21&#93;, HR y NR &#91;22&#93;, etc., la especificaci&oacute;n de c&oacute;mo    se debe transformar un grafo, se denomina mecanismo de empotrado.</font></p>  	     <p ><font face="verdana" size="2">Debido al mecanismo    de empotrado que utilizan los tipos de gram&aacute;ticas antes mencionadas,    se selecciona para utilizar en este trabajo el tipo de gram&aacute;ticas NCE.    Para profundizar sobre las diferencias entre los distintos mecanismos de empotrado,    el lector puede remitirse a &#91;23&#93;.</font></p>  	     <p align="justify"><font face="verdana" size="2"><b>Definici&oacute;n</b>. Una    gram&aacute;tica de grafo NCE es un sistema <img src="img/revistas/rii/v38n1/e0204117.jpg" width="111" height="20" align="absmiddle">&nbsp;donde:</font></p>     <p align="justify"><font face="verdana" size="2">&middot;&nbsp;&nbsp;&#931; es    un conjunto finito y no vac&iacute;o denominado alfabeto.</font></p>     <p align="justify"><font face="verdana" size="2">&middot;&nbsp;&nbsp;&nbsp;&#916;    es un subconjunto de &#931;&nbsp;denominado alfabeto de los s&iacute;mbolos    terminales.</font></p>  	     <p ><font face="verdana" size="2">&middot;&nbsp Prod &nbsp;es un conjunto finito    de producciones o reglas de reescritura de la forma ( &#945; , &#946; , &#968;),    donde &#945; &nbsp;es un grafo conexo, &#946; es un grafo y <img src="img/revistas/rii/v38n1/e0304117.jpg" width="125" height="19" align="absmiddle">,    &#968; se denomina funci&oacute;n de empotrado y est&aacute; determinada por    el mecanismo de empotrado que se utilice.</font></p>     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">&middot;&nbsp;&nbsp;S es el s&iacute;mbolo distinguido    o axioma.</font><font face="verdana" size="2">&nbsp;</font></p>  	     <p ><font face="verdana" size="2">La aplicaci&oacute;n    de una producci&oacute;n o regla de reescritura consiste en eliminar el subgrafo    &#945; &nbsp;del grafo al que se le va a aplicar la regla, adicionar el grafo    &#946; &nbsp;a dicho grafo y conectarlo seg&uacute;n se especifique en &#968;.</font></p>  	     <p ><font face="verdana" size="2">La formalizaci&oacute;n    de gram&aacute;tica NCE utiliza como base la definici&oacute;n de grafos no    dirigidos y etiquetados por lo que cuando el grafo es dirigido se deben tener    en cuenta consideraciones adicionales. Para dar soporte a grafos dirigidos&nbsp;    se puede seguir el mismo enfoque que en &#91;21&#93;, sustituyendo la funci&oacute;n    &#968; &nbsp;por dos funciones: &#968;<sub>in</sub> &nbsp;y &#968;<sub>out</sub> &nbsp;para las aristas    que entran o salen de un v&eacute;rtice respectivamente.</font></p>  	     <p ><font face="verdana" size="2">En correspondencia    con las definiciones y enfoques analizados, se enuncian las siguientes definiciones    de regla de reescritura y grafo reducido.</font><font face="verdana" size="2">&nbsp;</font></p>  	     <p ><font face="verdana" size="2"><b>Definici&oacute;n.</b>    Una regla de reescritura de grafos sobre un grafo G = (v, E)&nbsp;es un cu&aacute;druplo    de la forma <img src="img/revistas/rii/v38n1/e0404117.jpg" width="99" height="24" align="absmiddle">,    donde:</font></p>  	 <ul >   <li ><img src="img/revistas/rii/v38n1/e0504117.jpg" width="78" height="20" align="absmiddle">&nbsp;<font face="Verdana" size="2">es      un grafo donde <img src="img/revistas/rii/v38n1/e0604117.jpg" width="37" height="21" align="absmiddle">.</font></li>   <li ><font face="Verdana" size="2"><img src="img/revistas/rii/v38n1/e0704117.jpg" width="78" height="25" align="absmiddle">,      es un grafo.</font></li>   <li ><font face="Verdana" size="2">&nbsp;</font><font face="verdana" size="2">&#968;<sub>in</sub>      &nbsp;y &#968;<sub>out</sub> </font><font face="Verdana" size="2">&nbsp;son      dos conjuntos de informaci&oacute;n de empotrado, de la forma <img src="img/revistas/rii/v38n1/e0804117.jpg" width="74" height="24" align="absmiddle">,      donde: <img src="img/revistas/rii/v38n1/e0904117.jpg" width="225" height="24" align="absmiddle">.      En el caso de </font><font face="verdana" size="2">&#968;<sub>in</sub> </font><font face="Verdana" size="2">,      <img src="img/revistas/rii/v38n1/e1004117.jpg" width="154" height="23" align="absmiddle">,      luego de aplicar la regla de reescritura, se obtiene el grafo <img src="img/revistas/rii/v38n1/e1104117.jpg" width="96" height="21" align="absmiddle">&nbsp;y      se cumple que&nbsp; <img src="img/revistas/rii/v38n1/e1204117.jpg" width="176" height="24" align="absmiddle">.      An&aacute;logamente a </font><font face="verdana" size="2">&#968;<sub>in</sub></font><font face="Verdana" size="2">,      se define </font><font face="verdana" size="2">&#968;<sub>out</sub> </font><font face="Verdana" size="2"></font><font face="Verdana" size="2">,      con la &uacute;nica diferencia de la orientaci&oacute;n de las aristas.</font></li>     </ul>     <p ><font face="verdana" size="2">Las aristas que    unen el v&eacute;rtice v<sub>i</sub>&nbsp;y los v&eacute;rtices del grafo&nbsp;    G - G<sub>i</sub>&nbsp;se denominan aristas preempotradas. Despu&eacute;s de    aplicar una regla de reescritura, las aristas que unen los v&eacute;rtices del    grafo G<sub>j</sub>&nbsp;con los v&eacute;rtices del grafo G - G<sub>i</sub>&nbsp;&nbsp;se    denominan aristas postempotradas.</font></p>  	     <p ><font face="verdana" size="2">El conjunto &#968;<sub>in</sub></font><font face="Verdana" size="2">    </font><font face="verdana" size="2">&nbsp;permite transformar el conjunto de    aristas preempotradas que inciden en el v&eacute;rtice&nbsp; V<sub>i </sub>en    aristas postempotradas que inciden en uno o m&aacute;s v&eacute;rtices <img src="img/revistas/rii/v38n1/e1304117.jpg" width="44" height="24" align="absmiddle">,    de forma similar &#968;<sub>out</sub>&nbsp;permite transformar las aristas preempotradas    que salen de V<sub>i</sub>&nbsp;en aristas postempotradas que salen de uno o    m&aacute;s v&eacute;rtices <img src="img/revistas/rii/v38n1/e1304117.jpg" width="44" height="24" align="absmiddle">.</font></p>     <p ><font face="verdana" size="2">Teniendo en cuenta    la definici&oacute;n de regla de reescritura enunciada anteriormente, en la    <a href="#f01">Figura 1</a> se muestra un ejemplo de regla de reescritura. En    la parte izquierda se muestra el grafo <img src="img/revistas/rii/v38n1/e0504117.jpg" width="78" height="20" align="absmiddle">,    en la parte derecha se muestra el grafo G<sub>j</sub> y en la parte inferior    se muestra la informaci&oacute;n de empotrado &#968;<sub>in</sub> &nbsp;y &#968;<sub>out</sub>    </font><font face="Verdana" size="2"></font><font face="verdana" size="2">.    Se puede comprobar, que luego de aplicar dicha regla al grafo de la <a href="#f02">Figura    2 b</a> seg&uacute;n el mecanismo seleccionado, se obtiene el grafo de la <a href="#f02">Figura    2a</a>.</font></p>     <p align="justify"><font face="verdana" size="2">Para referirse a los grafos G<sub>i</sub>&nbsp;y    G<sub>j</sub> &nbsp;de la regla de reescritura asociada a un v&eacute;rtice    reducido v<sub>r</sub> &nbsp;se utilizar&aacute; la notaci&oacute;n v<sub>r</sub>    G<sub>i</sub> &nbsp;y v<sub>r</sub> G<sub>j</sub>&nbsp;respectivamente. An&aacute;logamente,    se utilizar&aacute; la notaci&oacute;n v<sub>r</sub>&#968;<sub>in</sub>&nbsp;y    v<sub>r</sub>&#968;<sub>out</sub>&nbsp;para referirse a las funciones </font><font face="Verdana" size="2">&nbsp;</font><font face="verdana" size="2">&#968;<sub>in</sub>    &nbsp;y &#968;<sub>out</sub></font><font face="verdana" size="2">&nbsp;de la    regla de reescritura asociada al v&eacute;rtice v<sub>r</sub>.</font></p>     ]]></body>
<body><![CDATA[<p align="center"><font face="verdana" size="2">&nbsp;<a name="f01"></a><img src="img/revistas/rii/v38n1/f0104117.jpg" width="280" height="148" alt="Fig. 1. Ejemplo de regla de reescritura"></font></p>  	     <p align="center" ><a name="f02"></a><img src="img/revistas/rii/v38n1/f0204117.jpg" width="471" height="186" alt="Fig. 2. Ejemplos de grafo"></p>  	     <p align="left" ><font face="verdana" size="2"><b>Definici&oacute;n.</b> Un grafo    reducido es una tuplaG= (V<sub>r</sub> , E<sub>r ,</sub> f<sub>,</sub> R), donde:</font></p>     <p align="left" ><font face="verdana" size="2">&middot;&nbsp;&nbsp;&nbsp;V<sub>r</sub>    es un conjunto de v&eacute;rtices.</font></p>     <p align="left" ><font face="verdana" size="2">&middot;&nbsp;&nbsp;&nbsp;E<sub>r</sub>    es un conjunto de aristas.</font></p>     <p align="left" ><font face="verdana" size="2">&middot;&nbsp;&nbsp;&nbsp;<img src="img/revistas/rii/v38n1/e1404117.jpg" width="154" height="21" align="absmiddle">,    es una funci&oacute;n que para cada (V<sub>i</sub>, V<sub>j</sub>, V<sub>k</sub>)    retorna el costo de ir desde&nbsp; V<sub>i</sub> hasta V<sub>k </sub>a trav&eacute;s    V<sub>j</sub></font></p>     <p align="left" ><font face="verdana" size="2">&middot;&nbsp;&nbsp;R es un conjunto    de reglas de reescritura sobre (V<sub>r,</sub> E<sub>r</sub>).</font></p>     <p ><font face="verdana" size="2"><b>Definici&oacute;n.</b>    Sean G&nbsp;y G<sub>r</sub>&nbsp;dos grafos, <img src="img/revistas/rii/v38n1/e1504117.jpg" width="85" height="22" align="absmiddle">un    conjunto de reglas de reescritura de grafos, se puede afirmar G<sub>r</sub>    que &nbsp;es un grafo reducido a partir de G&nbsp;si al aplicar las reglas de    reescritura especificadas en R&nbsp;al grafo G&nbsp;se obtiene el grafo G.</font></p>  	     <p ><font face="verdana" size="2">A    partir de lo anterior, se enuncia un algoritmo de reducci&oacute;n de grafos    sin p&eacute;rdida de informaci&oacute;n relevante para la b&uacute;squeda de    caminos m&iacute;nimos. Posteriormente, se presenta una modificaci&oacute;n    al algoritmo de Dijkstra para realizar b&uacute;squeda de caminos m&iacute;nimos    en grafos reducidos con el algoritmo de reducci&oacute;n propuesto.</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>Reducci&oacute;n de grafos</b></font></p>  	    ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">La reducci&oacute;n de grafos se realiza utilizando el Algoritmo 1, en este ep&iacute;grafe se presenta dicho algoritmo y se expone una breve explicaci&oacute;n del mismo.</font></p>  	     <p ><font face="verdana" size="2">En el caso del    algoritmo de reducci&oacute;n que se propone, se debe garantizar que no existan    v&eacute;rtices reducidos <a href="#_ftn1" name="_ftnref1" title="">&#91;1&#93;</a>    que sean adyacentes con el objetivo de poder obtener un camino &oacute;ptimo    de igual costo al obtenido en una b&uacute;squeda en el grafo original, para    contribuir al logro de este objetivo, se enuncia la siguiente definici&oacute;n:</font></p>  	     <p ><font face="verdana" size="2"><b>Definici&oacute;n</b>.    Sea un grafo G = (V, E)&nbsp;y una relaci&oacute;n de equivalencia RE sobre    V, un v&eacute;rtice <img src="img/revistas/rii/v38n1/e0604117.jpg" width="37" height="21" align="absmiddle">&nbsp;es    interior si <img src="img/revistas/rii/v38n1/e1604117.jpg" width="49" height="24" align="absmiddle">,    tal que v<sub>i</sub>&nbsp;y v<sub>j</sub>&nbsp;son adyacentes, se cumple que    RE(v<sub>i</sub>&nbsp;, v<sub>j) </sub>(o sea, ([v<sub>i</sub>] = [v<sub>j]</sub>).    Un v&eacute;rtice &nbsp;<img src="img/revistas/rii/v38n1/e0604117.jpg" width="37" height="21" align="absmiddle">    es exterior si &nbsp;o <img src="img/revistas/rii/v38n1/e1704117.jpg" width="260" height="24" align="absmiddle">.</font></p>  	     <p ><font face="verdana" size="2">Si la entrada    del algoritmo es una relaci&oacute;n de equivalencia, lo primero que se hace    es obtener una partici&oacute;n a partir de dicha relaci&oacute;n. Para&nbsp;    crear&nbsp; esta partici&oacute;n&nbsp; se puede seguir una estrategia voraz    que divida el conjunto de v&eacute;rtices V &nbsp;en subconjuntos disjuntos    seg&uacute;n RE. La estrategia consistir&iacute;a en comparar cada elemento    del conjunto V&nbsp;con los restantes elementos para determinar cu&aacute;les    est&aacute;n relacionados (seg&uacute;n RE) y a partir de estos crear las clases    que forman la partici&oacute;n. Si una clase est&aacute; formada por un solo    elemento, este ser&aacute; un v&eacute;rtice exterior. Si la clase tiene m&aacute;s    de un elemento, entonces todos estos ser&aacute;n v&eacute;rtices interiores.</font></p>  	     <p ><font face="verdana" size="2">Para construir    el conjunto de v&eacute;rtices del grafo reducido, se crea un v&eacute;rtice    por cada clase de P.</font></p>  	     <p ><font face="verdana" size="2">Para adicionar    una arista al grafo reducido, los dos v&eacute;rtices que la forman deben pertenecer    a clases distintas. En caso de que exista m&aacute;s de una arista, en el grafo    de entrada del algoritmo, entre los v&eacute;rtices que pertenecen a dos clases    distintas, se adiciona la de menor costo.</font></p>  	<hr>     <p align="justify"><font face="verdana" size="2"><b>Algoritmo 1</b>: Reducci&oacute;n    de grafos.</font></p>  	     <p ><font face="verdana" size="2"><i>Entrada</i>:    Un grafo ponderado y posiblemente reducido <img src="img/revistas/rii/v38n1/e1804117.jpg" width="98" height="22" align="absmiddle">&nbsp;que    representa un mapa, donde R&nbsp;es un conjunto de reglas de reescritura, posiblemente    vac&iacute;o. Una relaci&oacute;n de equivalencia RE&nbsp;que permite crear    una partici&oacute;n P en V&nbsp;o una partici&oacute;n P&nbsp;en V.</font></p>  	    <p align="justify"><font face="verdana" size="2"><i>Salida</i>: Un grafo ponderado reducido que representa el mapa</font></p>  	 <hr>     <p><font face="verdana" size="2">1.&nbsp;Si la entrada es una relaci&oacute;n    de equivalencia</font></p>     ]]></body>
<body><![CDATA[<p><font face="verdana" size="2">2.&nbsp;Obtener la partici&oacute;n <img src="img/revistas/rii/v38n1/e1904117.jpg" width="151" height="19" align="absmiddle">,    donde&nbsp; <img src="img/revistas/rii/v38n1/e2004117.jpg" width="127" height="21" align="absmiddle"></font></p>     <p><font face="verdana" size="2">3.&nbsp;Fin Si</font></p>     <p><font face="verdana" size="2">4.&nbsp;Construir el conjunto de v&eacute;rtices    V<sub>r</sub> &nbsp;del grafo reducido G<sub>r</sub>&nbsp;a partir de las clases    de la partici&oacute;n P</font></p>     <p><font face="verdana" size="2">5.&nbsp;Construir el conjunto de aristas E<sub>r</sub>,    donde <img src="img/revistas/rii/v38n1/e2104117.jpg" width="82" height="25" align="absmiddle">    si y s&oacute;lo si <img src="img/revistas/rii/v38n1/e2204117.jpg" width="134" height="21" align="absmiddle">&nbsp;y    <img src="img/revistas/rii/v38n1/e2304117.jpg" width="358" height="27" align="absmiddle">&nbsp;sea    m&iacute;nimo. Hacer <img src="img/revistas/rii/v38n1/e2404117.jpg" width="131" height="22" align="absmiddle"></font></p>     <p><font face="verdana" size="2">6.&nbsp;Para todo <img src="img/revistas/rii/v38n1/e2504117.jpg" width="41" height="20" align="absmiddle"></font></p>     <p><font face="verdana" size="2">7.&nbsp;&nbsp;Si <img src="img/revistas/rii/v38n1/e2604117.jpg" width="46" height="20" align="absmiddle">,    escribir una regla de reescritura que permita sustituir el v&eacute;rtice reducido    v<sub>ri</sub> &nbsp;por el subgrafo que representa dicho v&eacute;rtice.</font></p>     <p><font face="verdana" size="2">8.&nbsp;Fin Para</font></p>     <p><font face="verdana" size="2">9.&nbsp;Crear el grafo reducido <img src="img/revistas/rii/v38n1/e2704117.jpg" width="114" height="23" align="absmiddle"></font></p>     <p><font face="verdana" size="2">10. Para todo <img src="img/revistas/rii/v38n1/e2504117.jpg" width="41" height="20" align="absmiddle"></font></p>     <p><font face="verdana" size="2">11. Si <img src="img/revistas/rii/v38n1/e2604117.jpg" width="46" height="20" align="absmiddle">,&nbsp;    <img src="img/revistas/rii/v38n1/e2804117.jpg" width="228" height="24" align="absmiddle">    </font></p>     ]]></body>
<body><![CDATA[<p><font face="verdana" size="2">12. Fin para</font></p>     <p><font face="verdana" size="2">13. Retornar G<sub>r</sub></font></p> <hr>     <p ><font face="verdana" size="2">Por cada clase    de equivalencia A<sub>i</sub>, tal que en la misma existan varios v&eacute;rtices,    se crea una regla de reescritura. Este paso es esencial en el algoritmo de reducci&oacute;n,    es lo que garantiza que no haya p&eacute;rdida de informaci&oacute;n en el proceso    de reducci&oacute;n. La regla de reescritura especifica la forma en que estaban    conectados los v&eacute;rtices que pertenecen a A<sub>i</sub>&nbsp;con el resto    de los v&eacute;rtices en el grafo de entrada del algoritmo. Esta informaci&oacute;n    es vital para que el proceso de reducci&oacute;n sea reversible.</font></p>  	    <p ><font face="verdana" size="2">El paso 11 es el encargado de actualizar la funci&oacute;n de costo del grafo reducido. Esta funci&oacute;n, almacena el costo de ir desde un v&eacute;rtice hasta otro pasando por uno reducido.</font></p>  	     <p align="center" ><font face="verdana" size="2">&nbsp;<a name="f03"></a><img src="img/revistas/rii/v38n1/f0304117.jpg" width="274" height="230" alt="Fig. 3. Ejemplo de grafo reducido"></font></p>  	     <p ><font face="verdana" size="2">El Algoritmo 2    muestra una forma de calcular esta funci&oacute;n. En el caso de ir desde un    v&eacute;rtice V<sub>i</sub>a otro A<sub>i</sub>&nbsp;que no est&aacute;n reducidos,    se utilizar&iacute;a la misma funci&oacute;n f(v<sub>i</sub>, v<sub>i</sub>,    v<sub>j</sub>). Note que por definici&oacute;n f<sub>c</sub>(v, v)&nbsp;y por    tanto f(v<sub>i</sub>, v<sub>i</sub>, v<sub>j</sub>) = f<sub>c</sub>(v, v).</font></p>  	    <p align="justify"><font face="verdana" size="2"><b>B&uacute;squeda de caminos m&iacute;nimos en grafos reducidos</b></font></p>  	     <p ><font face="verdana" size="2">La modificaci&oacute;n    que se propone realizar al algoritmo de Dijkstra para realizar b&uacute;squeda    de caminos m&iacute;nimos sobre un grafo reducido es sustituir:</font></p>     <p ><font face="verdana" size="2">&middot;&nbsp;&nbsp;&nbsp;<img src="img/revistas/rii/v38n1/e2904117.jpg" width="322" height="25" align="absmiddle">&nbsp;&nbsp;&nbsp;&nbsp;</font></p>     <p ><font face="verdana" size="2">&middot;&nbsp;&nbsp;&nbsp;<img src="img/revistas/rii/v38n1/e3004117.jpg" width="327" height="24" align="absmiddle">&nbsp;</font></p>  	     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">Este    cambio es necesario porque para obtener un camino m&iacute;nimo se necesita    conocer el costo de pasar por un v&eacute;rtice reducido; este valor no queda    asociado directamente a las aristas porque en el caso de los grafos reducidos    el costo de una arista depende del v&eacute;rtice por el que se desea pasar,    del v&eacute;rtice precedente en el camino que se est&aacute; calculando y del    v&eacute;rtice al cual se va a llegar.</font></p>     <p ><font face="verdana" size="2">Como    se puede apreciar en la <a href="#f03">Figura 3</a>, el efecto que tiene el    costo de ir desde el v&eacute;rtice 2 al 13 en&nbsp; el c&aacute;lculo de un    determinado camino, depende si se llega al v&eacute;rtice 2 desde el v&eacute;rtice    6 o desde el 7. Debido a que cada v&eacute;rtice reducido representa un subgrafo    del grafo original el costo de recorrer dicho subgrafo depender&aacute;, en    cierta medida, del v&eacute;rtice desde el cual se llega al mismo.</font></p>  	 <hr>     <p ><font face="verdana" size="2"><b>Algoritmo 2:    C&aacute;lculo de la funci&oacute;n f</b></font></p>  	     <p ><font face="verdana" size="2"><i>Entrada</i>:    Un grafo ponderado y reducido G = (V, E, f, R) , los subgrafos &nbsp;y <img src="img/revistas/rii/v38n1/e0704117.jpg" width="78" height="25" align="absmiddle">&nbsp;de    la regla de reescritura asociada a una clase de equivalencia A<sub>i</sub> de la partici&oacute;n    P.</font></p>  	     <p ><font face="verdana" size="2"><i>Salida</i>:    La funci&oacute;n f para el v&eacute;rtice reducido correspondiente a A<sub>i</sub>.</font></p> <hr>     <p><font face="verdana" size="2">1.&nbsp;Crear un grafo auxiliar <img src="img/revistas/rii/v38n1/e3104117.jpg" width="234" height="17" align="absmiddle"></font></p>     <p><font face="verdana" size="2">2.&nbsp;V&eacute;rtices Adyacentes={}</font></p>     <p><font face="verdana" size="2">3.&nbsp;Para todo <img src="img/revistas/rii/v38n1/e3204117.jpg" width="47" height="18" align="absmiddle"></font></p>     <p><font face="verdana" size="2">4.&nbsp;&nbsp;tmp={}</font></p>     <p><font face="verdana" size="2">5.&nbsp;Para todo b &#8712; Adyacentes (v)</font></p>     ]]></body>
<body><![CDATA[<p><font face="verdana" size="2">6.&nbsp;Si b &#8712; A<sub>i</sub></font></p>     <p><font face="verdana" size="2">7.&nbsp;G<sub>aux</sub>. adicionar Vertice (b)</font></p>     <p><font face="verdana" size="2">8.&nbsp;G<sub>aux</sub>. adicionar Arista (v,b)</font></p>     <p><font face="verdana" size="2">9.&nbsp;<img src="img/revistas/rii/v38n1/e3304117.jpg" width="113" height="20" align="absmiddle"></font></p>     <p><font face="verdana" size="2">10. &nbsp;V&eacute;rtices Adyacentes. Adicionar(b)</font></p>     <p><font face="verdana" size="2">11. Fin Si</font></p>     <p><font face="verdana" size="2">12. Fin Para</font></p>     <p><font face="verdana" size="2">13. Fin Para</font></p>     <p><font face="verdana" size="2">14. Para todo v<sub>o</sub> &#8712; vertices Adyacentes</font></p>     <p><font face="verdana" size="2">15. Dijkstra (v<sub>o</sub>,G<sub>aux</sub>)</font></p>     ]]></body>
<body><![CDATA[<p><font face="verdana" size="2">16. Para todo v<sub>d</sub> &#8712; vertices    Adyacentes, v<sub>o</sub> &#8800; v<sub>d</sub></font></p>     <p><font face="verdana" size="2">17. <img src="img/revistas/rii/v38n1/e3404117.jpg" width="226" height="21" align="absmiddle">(D&nbsp;y    P&nbsp;forman parte del resultado del paso 15)</font></p>     <p><font face="verdana" size="2">18. Fin Para</font></p>     <p><font face="verdana" size="2">19. Fin Para</font></p>     <p><font face="verdana" size="2">20. Retornar f</font></p> <hr>     <p align="justify"><font face="verdana" size="2"><b>Experimentos</b></font></p>  	     <p ><font face="verdana" size="2">Para    las pruebas experimentales se utilizaron dos grafos. El primero, obtenido a    partir de la cartograf&iacute;a del estado Carolina del Norte <a href="#_ftn2" name="_ftnref2" title="">&#91;2&#93;</a>,    tiene 41810 v&eacute;rtices (G<sub>1</sub>). Este grafo fue reducido dos veces    (utilizando una relaci&oacute;n de equivalencia basada en el c&oacute;digo postal)    obteni&eacute;ndose un grafo de 250 v&eacute;rtices (G<sub>r1.1</sub>)y otro    de 1826 v&eacute;rtices (G<sub>r1.2</sub>). El segundo grafo, representa la    red de viales de la ciudad de San Francisco <a href="#_ftn3" name="_ftnref3" title="">&#91;3&#93;</a>,    cuenta con 149756 v&eacute;rtices&nbsp; (G<sub>2</sub>) y tambi&eacute;n fue    reducido dos veces, obteni&eacute;ndose un grafo de 769 v&eacute;rtices (G<sub>r2.1</sub>)    y otro de 2617 v&eacute;rtices (G<sub>r22</sub>).</font></p>  	    <p ><font face="verdana" size="2">Los    algoritmos propuestos fueron implementados utilizando el Lenguaje de Programaci&oacute;n    Python, la biblioteca de clases NetworkX &#91;24&#93;, entre otras bibliotecas    auxiliares. La biblioteca NetworkX, brinda una implementaci&oacute;n de los    algoritmos de Dijkstra, A*, entre otros; esto permiti&oacute; comparar el tiempo    de ejecuci&oacute;n del algoritmo de b&uacute;squeda de camino m&iacute;nimo    propuesto (algoritmo de Dijkstra modificado) con el tiempo de ejecuci&oacute;n    de los dos antes mencionados haciendo uso de la misma tecnolog&iacute;a.</font></p>  	     <p ><font face="verdana" size="2">Los    experimentos fueron ejecutados en una computadora con un procesador Intel(R)    Pentium(R) 4 de 3.20 GHz &#91;512 Kb de cache&#93; con 1.5 Gb RAM, sobre el    sistema operativo Kubuntu 11.10.</font></p>  	    <p ><font face="verdana" size="2">A continuaci&oacute;n se enumeran los experimentos realizados:</font></p>  	     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">&middot;&nbsp;Experimento    1: Aplicar los algoritmos de Dijkstra y A* a los dos grafos originales.</font></p>  	     <p ><font face="verdana" size="2">&middot;&nbsp;Experimento    2: Aplicar el algoritmo de Dijkstra modificado a los cuatro grafos reducidos.</font></p>  	 <font face="verdana" size="2">Cada algoritmo se ejecut&oacute; 10 veces, descart&aacute;ndose  el mayor y menor valor en cada caso. Finalmente, se calcul&oacute; el promedio  de los restantes 8 valores.</font>     <p ><font face="verdana" size="2"><b>&nbsp;</b></font></p>  	     <p ><font face="verdana" size="2"><b><font size="3">RESULTADOS    Y DISCUSI&Oacute;N</font></b></font></p>  	     <p ><font face="verdana" size="2">Los resultados    de los experimentos 1 y 2 se muestran en la <a href="img/revistas/rii/v38n1/t0104117.jpg">Tabla    1</a>.</font></p>     <p ><font face="verdana" size="2">La    complejidad temporal del algoritmo A*, utilizando una heur&iacute;stica &oacute;ptima,    es O(n),donde n es el n&uacute;mero de v&eacute;rtices del grafo sobre el cual    se realiza el an&aacute;lisis. Por otra parte, la complejidad temporal del algoritmo    de Dijkstra modificado que se propone es O(n<sub>1</sub><sup>2</sup>), donde    n<sub>1</sub> &nbsp;es la cantidad de v&eacute;rtices del grafo reducido. Por    tanto, si en el proceso de reducci&oacute;n se obtiene un grafo G<sub>r</sub>    = (V<sub>r</sub>, E<sub>r</sub>)a partir de un grafo G = (V, E), tal que <img src="img/revistas/rii/v38n1/e3504117.jpg" width="140" height="23" align="absmiddle">,    la complejidad temporal del algoritmo propuesto ser&iacute;a, en teor&iacute;a,    similar y en ocasiones menor, a la complejidad del algoritmo A* utilizando una    heur&iacute;stica &oacute;ptima. Los resultados experimentales obtenidos est&aacute;n    en correspondencia con este an&aacute;lisis.</font></p>  	     <p ><font face="verdana" size="2">El    an&aacute;lisis anterior se corresponde con los resultados mostrados en la <a href="img/revistas/rii/v38n1/t0104117.jpg">Tabla    1</a>, solo se obtuvo un tiempo superior al algoritmo A* en el grafo G<sub>r1.2</sub>,    el cual tiene una cantidad de v&eacute;rtices superior, en m&aacute;s de 1500    unidades, a la ra&iacute;z cuadrada de la cantidad de v&eacute;rtices del grafo    G<sub>1</sub> (el grafo a partir del cual se obtuvo G<sub>r1.2</sub>). En el    caso del grafo G<sub>r22</sub> pasa algo similar con relaci&oacute;n a la cantidad    de v&eacute;rtices, sin embargo se obtiene un tiempo inferior al algoritmo A*    debido a la diferencia que hay entre la cantidad de v&eacute;rtices de los grafos&nbsp;    G<sub>2</sub> y G<sub>r22</sub>.</font></p>  	    <p ><font face="verdana" size="2">Adicionalmente se puede observar que el algoritmo propuesto obtiene el &oacute;ptimo en todos los casos, mientras que el algoritmo A* no obtiene el &oacute;ptimo en ninguno de los casos, para los experimentos realizados.</font></p>  	     <p ><font face="verdana" size="2">Es    importante se&ntilde;alar que la complejidad del algoritmo de Dijkstra puede    ser menor <img src="img/revistas/rii/v38n1/e3604117.jpg" width="68" height="21" align="absmiddle">,    si se utiliza una cola con prioridad, en particular si se utiliza la implementaci&oacute;n    que hace uso de la estructura de datos <i>heap</i>de <i>Fibonacci</i>. En este    trabajo no se utiliz&oacute; la implementaci&oacute;n antes mencionada para    evitar tiempos de respuesta inferiores debido al uso de estructuras de datos    diferentes en los algoritmos utilizados.</font></p>  	    <p ><font face="verdana" size="2">Generalmente existe una relaci&oacute;n inversamente proporcional entre la eficiencia y la exactitud de un algoritmo que tiene como entrada un volumen elevado de datos. El principal resultado que se muestra en este trabajo es la mejora en la eficiencia en la b&uacute;squeda de camino m&iacute;nimo sin afectar la exactitud del resultado.</font></p>  	    ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2">La propuesta brinda la posibilidad de realizar b&uacute;squeda de caminos m&iacute;nimos entre cada par de v&eacute;rtices del grafo sin reducir. Esto puede ser llevado a cabo aplicando la regla de reescritura asociada a un v&eacute;rtice escogido convenientemente. Sin embargo, esto trae consigo costo adicional. No obstante, si el sistema que se utiliza para realizar la b&uacute;squeda de caminos m&iacute;nimos, cada vez que se seleccione un origen o destino, se realiza la expansi&oacute;n del v&eacute;rtice reducido correspondiente (en caso de que el origen o el destino est&eacute;n como parte de un v&eacute;rtice reducido), cuando se ejecute la acci&oacute;n de buscar el camino m&iacute;nimo la expansi&oacute;n de un v&eacute;rtice reducido no tendr&iacute;a efecto alguno sobre el tiempo de respuesta del algoritmo.</font></p>  	     <p ><font face="verdana" size="2">Adicionalmente,    Inda et al. presentan una implementaci&oacute;n de la propuesta realizada en    esta investigaci&oacute;n, mostrando la viabilidad de implementaci&oacute;n    como parte de un motor de persistencia de grafos que realiza el an&aacute;lisis    en memoria externa &#91;25&#93;; lo cual ser&iacute;a conveniente si se cuenta    con una computadora que no tiene recursos de <i>hardware</i> suficientes para    realizar el an&aacute;lisis en Memoria de Acceso Aleatorio.</font></p>  	     <p ><font face="verdana" size="2">En    este caso, la implementaci&oacute;n relacionada con an&aacute;lisis de redes    se realiz&oacute; como parte del propio motor de persistencia, lo que garantiza    la eficiencia en cuanto al acceso a los datos, sin necesidad de utilizar memoria    adicional para los mismos.</font></p>     <p >&nbsp;</p>     <p ><font face="verdana" size="2"><b><font size="3">CONCLUSIONES</font></b></font></p>  	    <p ><font face="verdana" size="2">Como resultado de la presente investigaci&oacute;n se obtuvo un algoritmo de reducci&oacute;n de grafos sin p&eacute;rdida de informaci&oacute;n, el mismo permite obtener tiempos menores en la b&uacute;squeda de caminos m&iacute;nimos. Adem&aacute;s se realiz&oacute; una modificaci&oacute;n al algoritmo de Dijkstra para ser utilizado en grafos reducidos, lo cual contribuye a disminuir el tiempo de respuesta ante una petici&oacute;n de b&uacute;squeda de camino m&iacute;nimo. En base a los resultados obtenidos se ha arribado a las siguientes conclusiones:</font></p>  	     <p ><font face="verdana" size="2">&middot;&nbsp;La b&uacute;squeda de caminos    m&iacute;nimos en grafos reducidos con el algoritmo propuesto permite obtener    un camino &oacute;ptimo de igual costo al obtenido en una b&uacute;squeda realizada    en el grafo sin reducir haciendo uso de algoritmos cl&aacute;sicos (Dijkstra,    etc.).</font></p>     <p ><font face="verdana" size="2">&middot;&nbsp;Con la propuesta realizada se    garantiza escalabilidad respecto al tama&ntilde;o del grafo sobre el que se    realiza el an&aacute;lisis.</font></p>     <p ><font face="verdana" size="2">&middot;&nbsp;Haciendo uso de grafos reducidos    se disminuye considerablemente el tiempo de respuesta en la b&uacute;squeda    de caminos m&iacute;nimos por lo que se garantiza la eficiencia, lo cual queda    evidenciado en los resultados experimentales obtenidos.</font></p>     <p >&nbsp;</p>     ]]></body>
<body><![CDATA[<p ><font face="verdana" size="2"><b><font size="3">REFERENCIAS</font></b></font></p>  	    <!-- ref --><p ><font face="verdana" size="2">1. Dijkstra EW. A Note on Two Problems in Connection with Graphs. Numerische Mathematik. 1959;1:269&#45;71.     ISSN 0945&#45;3245.</font></p>  	     <!-- ref --><p ><font face="verdana" size="2">2. Fuhao Z, Jiping L. An Algorithm of Shortest    Path Based on Dijkstra for Huge Data. In: Fourth International Conference on    Fuzzy Systems and Knowledge Discovery. p. 244&#45;7. ISBN 978&#45;0&#45;7695&#45;3735&#45;1.    DOI <a href="http://doi.ieeecomputersociety.org/10.1109/FSKD.2009.848">http://doi.ieeecomputersociety.org/10.1109/FSKD.2009.848</a>.    </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">3. Nazari S, Meybodi MR, Salehigh MA, et al. An Advanced Algorithm for Finding Shortest Path in Car Navigation System. En: First International Conference on Intelligent Networks and Intelligent Systems. p. 671&#45;4. DOI 10.1109/icinis.2008.147.    </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">4. Shao F, Deng W, Zhang B. Traffic Information Management and Promulgating System Based on GIS. En: Optoelectronics and Image Processing (ICOIP), 2010 International Conference on. p. 676&#45;9. DOI 10.1109/icoip.2010.243.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">5.    Hart PE, Nilsson NJ, Raphael B. A Formal Basis for the Heuristic Determination    of Minimum Cost Paths. Systems Science and Cybernetics, IEEE Transactions on.    1968;4(2):100&#45;7.     ISSN 0536&#45;1567. DOI 10.1109/tssc.1968.300136.</font></p>     <!-- ref --><p ><font face="verdana" size="2">6.    Noto M, Sato H. A method for the shortest path search by extended Dijkstra algorithm.    IEEE International Conference on Systems, Man, and Cybernetics. 2000;2313:2316&#45;20.        DOI 10.1109/icsmc.2000.886462.</font></p>  	    <!-- ref --><p ><font face="verdana" size="2">7. Gutman RJ. Reach&#45;Based Routing: A New Approach to Shortest Path Algorithms Optimized for Road Networks. En: Proceedings of the Sixth Workshop on Algorithm Engineering and Experiments and the First Workshop on Analytic Algorithmics and Combinatorics. New Orleans, LA, USA.     p. 100&#45;11. Citado 20 de mayo de 2013 Disponible en: <a href="http://www.siam.org/meetings/alenex04/abstacts/rgutman1.pdf">http://www.siam.org/meetings/alenex04/abstacts/rgutman1.pdf</a>.</font></p>  	    <!-- ref --><p ><font face="verdana" size="2">8. Goldberg AV, Harrelson C. Computing the shortest path: A search meets graph theory. In: Proceedings of the sixteenth annual ACM&#45;SIAM symposium on Discrete algorithms; Vancouver, British Columbia: Society for Industrial and Applied Mathematics; 2005.     p. 156&#45;65. Citado 5 de febrero de 2013 Disponible en: <a href="http://dl.acm.org/citation.cfm?id=1070432.1070455">http://dl.acm.org/citation.cfm?id=1070432.1070455</a>.</font></p>  	    <!-- ref --><p ><font face="verdana" size="2">9. Sanders P, Schultes D. Highway hierarchies hasten exact shortest path queries. In: Proceedings of the 13th annual European conference on Algorithms; Palma de Mallorca, Spain: Springer&#45;Verlag; 2005. p. 568&#45;79.     ISBN DOI 10.1007/11561071_51.</font></p>  	    <!-- ref --><p ><font face="verdana" size="2">10. Gonzalez H, Han J, Li X, et al. Adaptive fastest path computation on a road network: a traffic mining approach. In: Proceedings of the 33rd international conference on Very large data bases Vienna, Austria: VLDB Endowment; 2007.     p. 794&#45;805. Citado 25 de abril de 2013 Disponible en: <a href="http://dl.acm.org/citation.cfm?id=1325851.1325942">http://dl.acm.org/citation.cfm?id=1325851.1325942</a>.</font></p>  	    <!-- ref --><p ><font face="verdana" size="2">11. Geisberger R, Sanders P, Schultes D, et al. Contraction hierarchies: faster and simpler hierarchical routing in road networks. In: Proceedings of the 7th international conference on Experimental algorithms; Provincetown, MA, USA: Springer&#45;Verlag; 2008.     p. 319&#45;33.&#91;Citado 20 de febrero de 2013 Disponible en: <a href="http://dl.acm.org/citation.cfm?id=1788888.1788912">http://dl.acm.org/citation.cfm?id=1788888.1788912</a></font></p>  	     <!-- ref --><p ><font face="verdana" size="2">12.    Efentakis A, Pfoser D, Voisard A. Efficient data management in support of shortest&#45;path    computation. In: Proceedings of the 4th ACM SIGSPATIAL International Workshop    on Computational Transportation Science Chicago, Illinois: ACM; 2011.     p. 28&#45;33.    DOI 10.1145/2068984.2068990.</font></p>     <!-- ref --><p ><font face="verdana" size="2">13.    Delling D, Sanders P, Schultes D, et al. Engineering Route Planning Algorithms.    In: Algorithmics of Large and Complex Networks; Springer&#45;Verlag; 2009. p.    117&#45;39. DOI 10.1007/978&#45;3&#45;642&#45;02094&#45;0_7.    </font></p>     <!-- ref --><p ><font face="verdana" size="2">14.    Sanders P, Schultes D. Engineering fast route planning algorithms. In: Proceedings    of the 6th international conference on Experimental algorithms; Rome, Italy:    Springer&#45;Verlag; 2007.     p. 23&#45;36.</font></p>     <!-- ref --><p ><font face="verdana" size="2">15.    Liu YC, Yang DH. A Spatial Restricted Heuristic Algorithm of Shortest Path.    In: International Conference on Artificial Intelligence and Computational Intelligence;    2009. p. 36&#45;9. DOI 10.1109/aici.2009.160.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">16. Fei S, Wei D, Bing Z. Traffic Information    Management and Promulgating System Based on GIS. In: Proceedings of the 2010    International Conference on Optoelectronics and Image Processing; IEEE Computer    Society; 2010. p. 676&#45;9. DOI 10.1109/icoip.2010.243.    </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">17. Qing xiu L, Baoxiang C, Yi wei Z. An improved verification method for workflow model based on Petri net reduction. In: The 2nd IEEE International Conference on Information Management and Engineering (ICIME); 2010. p. 252&#45;6. DOI 10.1109/ICIME.2010.5477436.    </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">18. Sadiq W, Orlowska ME. Analyzing process models using graph reduction techniques. In: Information Systems &#45; The 11th international conference on advanced information systems engineering; 2000. p. 117&#45;34. DOI 10.1016/s0306&#45;4379(00)00012&#45;0.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">19. Kai L, Qiang L. An Algorithm Combining Graph&#45;Reduction    and Graph&#45;Search for Workflow Graphs Verification. In: 11th International    Conference on Computer Supported Cooperative Work in Design; 2007. p. 772&#45;6.    DOI 10.1109/cscwd.2007.4281534.    </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">20. Janssens D, Rozenberg G. Graph grammars with neighbourhood&#45;controlled embedding. Theoretical Computer Science. 1982;21(1):55&#45;74.     ISSN 0304&#45;3975.</font></p>  	    <!-- ref --><p ><font face="verdana" size="2">21. Janssens D, Rozenberg G. On the structure of node&#45;label&#45;controlled graph languages. Information Sciences. 1980;20(3):191&#45;216.     ISSN 0020&#45;0255.</font></p>  	     <!-- ref --><p ><font face="verdana" size="2">22.    Rozenberg G, Salomaa A. Handbook of Formal Languages: Springer; 1997. ISBN 9783540614869.    </font></p>  	     <!-- ref --><p ><font face="verdana" size="2">23.    Blostein D, Fahmy H, Grbavec A. Issues in the Practical Use of Graph Rewriting.    Graph Grammars and Their Application to Computer Science. Berlin Heidelberg:    Springer 1996. p. 38&#45;55. DOI 10.1007/3&#45;540&#45;61228&#45;9_78.    </font></p>  	    <!-- ref --><p ><font face="verdana" size="2">24. Hagberg A, Schult D, Swart P. Exploring network structure, dynamics, and function using NetworkX. In: Proceedings of the 7th Python in Science Conference; 2008. p.11&#45;5. &#91;Citado 20 de mayo de 2013 Disponible en: <a href="http://conference.scipy.org/proceedings/SciPy2008/paper_2/">http://conference.scipy.org/proceedings/SciPy2008/paper_2/</a></font><!-- ref --><p ><font face="verdana" size="2">25. Inda Herrera JA, Rodr&iacute;guez Puente R, Lazo Cort&eacute;s M. Sistema para la b&uacute;squeda de caminos m&iacute;nimos en grafos grandes. In: I Taller de Geoninform&aacute;tica; UCIENCIA; 2012.    </font></p>  	     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p>&nbsp;</p>     <p ><font face="verdana" size="2">Recibido:    22 de octubre de 2013.    <br>   Aprobado: 21 de octubre de 2016.</font></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p align="justify"><font face="verdana" size="2"><i>Rafael Rodr&iacute;guez&#45;Puente</i>.    Universidad de las Ciencias Inform&aacute;ticas, Facultad 3. La Habana, Cuba    <br>   Correo electr&oacute;nico: <a href="mailto:rafaelrp@uci.cu">rafaelrp@uci.cu</a></font></p> <hr align="left" size="1" width="33%">  	     <p align="justify"><font face="verdana" size="2"><a href="#_ftnref1" name="_ftn1" title="">&#91;1&#93;</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    Si un v&eacute;rtice de un grafo reducido es creado a partir de una clase de    equivalencia Ai , tal que |Ai| &gt; 1, el v&eacute;rtice se considera reducido.    Si |Ai| = 1 el v&eacute;rtice se considera no reducido.</font></p>  	    <p align="justify"><font face="verdana" size="2"><a href="#_ftnref2" name="_ftn2" title="">&#91;2&#93;</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Disponible en http://grass.osgeo.org/sampledata/north_carolina/</font></p>  	    ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2"><a href="#_ftnref3" name="_ftn3" title="">&#91;3&#93;</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Disponible en http://www.cs.fsu.edu/~lifeifei/SpatialDataset.htm</font></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dijkstra]]></surname>
<given-names><![CDATA[EW]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Note on Two Problems in Connection with Graphs]]></article-title>
<source><![CDATA[Numerische Mathematik]]></source>
<year>1959</year>
<volume>1</volume>
<page-range>269-71</page-range></nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fuhao]]></surname>
<given-names><![CDATA[Z]]></given-names>
</name>
<name>
<surname><![CDATA[Jiping]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An Algorithm of Shortest Path Based on Dijkstra for Huge Data]]></article-title>
<source><![CDATA[In: Fourth International Conference on Fuzzy Systems and Knowledge Discovery]]></source>
<year></year>
<page-range>244-7</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Nazari]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Meybodi]]></surname>
<given-names><![CDATA[MR]]></given-names>
</name>
<name>
<surname><![CDATA[Salehigh]]></surname>
<given-names><![CDATA[MA]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An Advanced Algorithm for Finding Shortest Path in Car Navigation System]]></article-title>
<source><![CDATA[En: First International Conference on Intelligent Networks and Intelligent Systems]]></source>
<year></year>
<page-range>671-4</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Shao]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Deng]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
<name>
<surname><![CDATA[Zhang]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Traffic Information Management and Promulgating System Based on GIS]]></article-title>
<source><![CDATA[En: Optoelectronics and Image Processing (ICOIP), 2010 International Conference on]]></source>
<year></year>
<page-range>676-9</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hart]]></surname>
<given-names><![CDATA[PE]]></given-names>
</name>
<name>
<surname><![CDATA[Nilsson]]></surname>
<given-names><![CDATA[NJ]]></given-names>
</name>
<name>
<surname><![CDATA[Raphael]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Formal Basis for the Heuristic Determination of Minimum Cost Paths]]></article-title>
<source><![CDATA[Systems Science and Cybernetics, IEEE Transactions on]]></source>
<year>1968</year>
<volume>4</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>100-7</page-range></nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Noto]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Sato]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A method for the shortest path search by extended Dijkstra algorithm]]></article-title>
<source><![CDATA[IEEE International Conference on Systems, Man, and Cybernetics]]></source>
<year>2000</year>
<volume>2313</volume>
<page-range>2316-20</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gutman]]></surname>
<given-names><![CDATA[RJ]]></given-names>
</name>
</person-group>
<source><![CDATA[Reach-Based Routing: A New Approach to Shortest Path Algorithms Optimized for Road Networks. En: Proceedings of the Sixth Workshop on Algorithm Engineering and Experiments and the First Workshop on Analytic Algorithmics and Combinatorics]]></source>
<year></year>
<page-range>100-11</page-range><publisher-loc><![CDATA[New Orleans^eLA LA]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Goldberg]]></surname>
<given-names><![CDATA[AV]]></given-names>
</name>
<name>
<surname><![CDATA[Harrelson]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Computing the shortest path: A search meets graph theory]]></article-title>
<source><![CDATA[Proceedings of the sixteenth annual ACM-SIAM symposium on Discrete algorithms; Vancouver,]]></source>
<year>2005</year>
<page-range>156-65</page-range><publisher-loc><![CDATA[British Columbia ]]></publisher-loc>
<publisher-name><![CDATA[Society for Industrial and Applied Mathematics]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sanders]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Schultes]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Highway hierarchies hasten exact shortest path queries]]></article-title>
<source><![CDATA[Proceedings of the 13th annual European conference on Algorithms; Palma de Mallorca,]]></source>
<year>2005</year>
<page-range>568-79</page-range><publisher-loc><![CDATA[Spain ]]></publisher-loc>
<publisher-name><![CDATA[Springer-Verlag]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gonzalez]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Han]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Adaptive fastest path computation on a road network: a traffic mining approach]]></article-title>
<source><![CDATA[Proceedings of the 33rd international conference on Very large data bases Vienna,]]></source>
<year>2007</year>
<page-range>794-805</page-range><publisher-loc><![CDATA[Austria ]]></publisher-loc>
<publisher-name><![CDATA[VLDB Endowment]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Geisberger]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Sanders]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Schultes]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Contraction hierarchies: faster and simpler hierarchical routing in road networks]]></article-title>
<source><![CDATA[Proceedings of the 7th international conference on Experimental algorithms;]]></source>
<year>2008</year>
<page-range>319-33</page-range><publisher-loc><![CDATA[Provincetown^eMA MA]]></publisher-loc>
<publisher-name><![CDATA[Springer-Verlag]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Efentakis]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Pfoser]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Voisard]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Efficient data management in support of shortest-path computation]]></article-title>
<source><![CDATA[Proceedings of the 4th ACM SIGSPATIAL International Workshop on Computational Transportation Science]]></source>
<year>2011</year>
<page-range>28-33</page-range><publisher-loc><![CDATA[Illinois^eChicago Chicago]]></publisher-loc>
<publisher-name><![CDATA[ACM]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Delling]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Sanders]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Schultes]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Engineering Route Planning Algorithms]]></article-title>
<source><![CDATA[Algorithmics of Large and Complex Networks]]></source>
<year>2009</year>
<page-range>117-39</page-range><publisher-name><![CDATA[Springer-Verlag]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sanders]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Schultes]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Engineering fast route planning algorithms]]></article-title>
<source><![CDATA[Proceedings of the 6th international conference on Experimental algorithms;]]></source>
<year>2007</year>
<page-range>23-36</page-range><publisher-loc><![CDATA[Rome ]]></publisher-loc>
<publisher-name><![CDATA[Springer-Verlag]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Liu]]></surname>
<given-names><![CDATA[YC]]></given-names>
</name>
<name>
<surname><![CDATA[Yang]]></surname>
<given-names><![CDATA[DH]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Spatial Restricted Heuristic Algorithm of Shortest Path]]></article-title>
<source><![CDATA[International Conference on Artificial Intelligence and Computational Intelligence]]></source>
<year>2009</year>
<page-range>36-9</page-range></nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fei]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Wei]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Bing]]></surname>
<given-names><![CDATA[Z]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Traffic Information Management and Promulgating System Based on GIS]]></article-title>
<source><![CDATA[Proceedings of the 2010 International Conference on Optoelectronics and Image Processing]]></source>
<year>2010</year>
<page-range>676-9</page-range><publisher-name><![CDATA[IEEE Computer Society]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Qing xiu]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Baoxiang]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Yi wei]]></surname>
<given-names><![CDATA[Z]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An improved verification method for workflow model based on Petri net reduction]]></article-title>
<source><![CDATA[The 2nd IEEE International Conference on Information Management and Engineering]]></source>
<year>2010</year>
<page-range>252-6</page-range><publisher-name><![CDATA[ICIME]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sadiq]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
<name>
<surname><![CDATA[Orlowska]]></surname>
<given-names><![CDATA[ME]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Analyzing process models using graph reduction techniques]]></article-title>
<source><![CDATA[Information Systems - The 11th international conference on advanced information systems engineering]]></source>
<year>2000</year>
<page-range>117-34</page-range></nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kai]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Qiang]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An Algorithm Combining Graph-Reduction and Graph-Search for Workflow Graphs Verification]]></article-title>
<source><![CDATA[11th International Conference on Computer Supported Cooperative Work in Design]]></source>
<year>2007</year>
<page-range>772-6</page-range></nlm-citation>
</ref>
<ref id="B20">
<label>20</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Janssens]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Rozenberg]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Graph grammars with neighbourhood-controlled embedding]]></article-title>
<source><![CDATA[Theoretical Computer Science]]></source>
<year>1982</year>
<volume>21</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>55-74</page-range></nlm-citation>
</ref>
<ref id="B21">
<label>21</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Janssens]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Rozenberg]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[On the structure of node-label-controlled graph languages]]></article-title>
<source><![CDATA[Information Sciences]]></source>
<year>1980</year>
<volume>20</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>191-216</page-range></nlm-citation>
</ref>
<ref id="B22">
<label>22</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rozenberg]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Salomaa]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Handbook of Formal Languages]]></source>
<year>1997</year>
<publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B23">
<label>23</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Blostein]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Fahmy]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Grbavec]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Issues in the Practical Use of Graph Rewriting. Graph Grammars and Their Application to Computer Science]]></source>
<year>1996</year>
<page-range>38-55</page-range><publisher-loc><![CDATA[Berlin ]]></publisher-loc>
<publisher-name><![CDATA[Heidelberg: Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B24">
<label>24</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hagberg]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Schult]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Swart]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Exploring network structure, dynamics, and function using NetworkX]]></article-title>
<source><![CDATA[Proceedings of the 7th Python in Science Conference]]></source>
<year>2008</year>
<page-range>11-5</page-range></nlm-citation>
</ref>
<ref id="B25">
<label>25</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Inda Herrera]]></surname>
<given-names><![CDATA[JA]]></given-names>
</name>
<name>
<surname><![CDATA[Rodríguez Puente]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[Lazo Cortés]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Sistema para la búsqueda de caminos mínimos en grafos grandes]]></article-title>
<source><![CDATA[I Taller de Geoninformática]]></source>
<year>2012</year>
<publisher-name><![CDATA[UCIENCIA]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
