<?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>1692-3324</journal-id>
<journal-title><![CDATA[Revista Ingenierías Universidad de Medellín]]></journal-title>
<abbrev-journal-title><![CDATA[Rev. ing. univ. Medellín]]></abbrev-journal-title>
<issn>1692-3324</issn>
<publisher>
<publisher-name><![CDATA[Universidad de Medellín]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1692-33242011000200019</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[EVALUACIÓN DE LA IMPLEMENTACIÓN EN UN DSP DEL ALGORITMO HÍBRIDO DE OPTIMIZACIÓN POR ENJAMBRES DE PARTÍCULAS Y EL SIMPLEX]]></article-title>
<article-title xml:lang="en"><![CDATA[Evaluation of a Digital Signal Processor (DSP) Implementation of Hybrid Particle Swarm Optimization (PSO) Algorithm and the Simplex]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Cote]]></surname>
<given-names><![CDATA[Julián]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Moncada]]></surname>
<given-names><![CDATA[Camilo]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Correa]]></surname>
<given-names><![CDATA[Rodrigo]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Industrial de Santander  ]]></institution>
<addr-line><![CDATA[Bucaramanga ]]></addr-line>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Industrial de Santander  ]]></institution>
<addr-line><![CDATA[Bucaramanga ]]></addr-line>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad Industrial de Santander  ]]></institution>
<addr-line><![CDATA[Bucaramanga ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2011</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2011</year>
</pub-date>
<volume>10</volume>
<numero>19</numero>
<fpage>201</fpage>
<lpage>210</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S1692-33242011000200019&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S1692-33242011000200019&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S1692-33242011000200019&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[En este artículo se presentan los principales resultados de la evaluación que se llevó a cabo relacionada con la implementación del método de optimización PSO de convergencia garantizada en topología alternante con el método simplex, en un procesador digital de señales (DSP). Se comparó desempeño con funciones de prueba convencionalmente utilizadas en la evaluación de algoritmos de optimización. Se hizo la programación en el DSP confirmando la viabilidad de su implementación en este tipo de dispositivo caracterizado por ser transportable, de reducido tamaño, flexibilidad y bajo costo. No obstante este logro, se encontró que su mayor tiempo de cómputo sigue siendo aún su principal debilidad, al menos con el tipo de funciones probadas.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[This article shows the main results of an evaluation related to the implementation of the convergence PSO method assured in alternating topology with the simplex method, in a Digital Signal Processor (DSP). Comparisons on the performance of testing functions conventionally used for the evaluation of optimization algorithms were made. A programming was executed on the DSP confirming the feasibility of its implementation in this kind of device characterized by its small size, low cost, and portable feature. Despite this achievement, it was found that its longest computation time is still its main weakness, at least with the kind of functions tested.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[PSO]]></kwd>
<kwd lng="es"><![CDATA[simplex]]></kwd>
<kwd lng="es"><![CDATA[DSP]]></kwd>
<kwd lng="es"><![CDATA[optimización]]></kwd>
<kwd lng="es"><![CDATA[algoritmo híbrido]]></kwd>
<kwd lng="en"><![CDATA[PSO]]></kwd>
<kwd lng="en"><![CDATA[simplex]]></kwd>
<kwd lng="en"><![CDATA[DSP]]></kwd>
<kwd lng="en"><![CDATA[optimization]]></kwd>
<kwd lng="en"><![CDATA[algorithm]]></kwd>
<kwd lng="en"><![CDATA[hybrid]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  	    <p align="right"><FONT SIZE="2" FACE="Verdana"><B> ART&Iacute;CULOS</B></FONT></p> 	    <p align="right">&nbsp;</p>     <p ALIGN="CENTER"><FONT SIZE="4" FACE="Verdana"><B> EVALUACI&Oacute;N DE LA IMPLEMENTACI&Oacute;N EN UN DSP DEL ALGORITMO H&Iacute;BRIDO DE OPTIMIZACI&Oacute;N POR ENJAMBRES DE PART&Iacute;CULAS Y EL SIMPLEX </B></FONT></p>     <p ALIGN="CENTER">&nbsp;</p>     <p ALIGN="CENTER"><B><FONT SIZE="3" FACE="Verdana">Evaluation of a Digital Signal Processor (DSP) Implementation of Hybrid Particle Swarm Optimization (PSO) Algorithm and the Simplex </FONT></B></p>     <p>&nbsp;</p>     <p align="center"><FONT SIZE="2" FACE="Verdana"> <b>Juli&aacute;n Cote<SUP>*</SUP>; Camilo Moncada<SUP>**</SUP>; Rodrigo Correa<SUP>***</SUP></b><SUP></SUP>	</FONT></p>     <p align="center">&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> <SUP>*  </SUP>Ingeniero electr&oacute;nico, Universidad Industrial de Santander, Bucaramanga, <a href="mailto:julian.cote@correo.uis.edu.co">julian.cote@correo.uis.edu.co</a> </FONT></p>     ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana"> <SUP>**  </SUP>Ingeniero electr&oacute;nico, Universidad Industrial de Santander, Bucaramanga, <a href="mailto:camilo.moncada@correo.uis.edu.co">camilo.moncada@correo.uis.edu.co</a></FONT></p>     <p><FONT SIZE="2" FACE="Verdana"> <SUP>*** </SUP>Ph. D., profesor titular, Universidad Industrial de Santander, Bucaramanga, <a href="mailto:crcorrea@uis.edu.co">crcorrea@uis.edu.co</a></FONT></p>     <p>&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"><B>Recibido:</B> 09/12/2010    <br> <B>Aceptado:</B> 14/07/2011</FONT></p>     <p>&nbsp;</p> <hr size="1" noshade>     <P><font size="2" face="Verdana"><B>RESUMEN	 </B></font></P>     <p><FONT SIZE="2" FACE="Verdana"> En este art&iacute;culo se presentan los principales resultados de la evaluaci&oacute;n que se llev&oacute; a cabo relacionada con la implementaci&oacute;n del m&eacute;todo de optimizaci&oacute;n PSO de convergencia garantizada en topolog&iacute;a alternante con el m&eacute;todo simplex, en un procesador digital de se&ntilde;ales (DSP). Se compar&oacute; desempe&ntilde;o con funciones de prueba convencionalmente utilizadas en la evaluaci&oacute;n de algoritmos de optimizaci&oacute;n. Se hizo la programaci&oacute;n en el DSP confirmando la viabilidad de su implementaci&oacute;n en este tipo de dispositivo caracterizado por ser transportable, de reducido tama&ntilde;o, flexibilidad y bajo costo. No obstante este logro, se encontr&oacute; que su mayor tiempo de c&oacute;mputo sigue siendo a&uacute;n su principal debilidad, al menos con el tipo de funciones probadas.</FONT></p>     <p><FONT SIZE="2" FACE="Verdana"><B>Palabras clave:</B> PSO, simplex, DSP, optimizaci&oacute;n, algoritmo h&iacute;brido. </FONT></p> <hr size="1" noshade>     <P><font size="2" face="Verdana"><B>Abstract  </B></font></P>     ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana"> This article shows the main results of an evaluation related to the implementation of the convergence PSO method assured in alternating topology with the simplex method, in a Digital Signal Processor (DSP). Comparisons on the performance of testing functions conventionally used for the evaluation of optimization algorithms were made. A programming was executed on the DSP confirming the feasibility of its implementation in this kind of device characterized by its small size, low cost, and portable feature. Despite this achievement, it was found that its longest computation time is still its main weakness, at least with the kind of functions tested.</FONT></p>     <p><FONT SIZE="2" FACE="Verdana"><B>Key words:</B> PSO; simplex; DSP; optimization; algorithm; hybrid. </FONT></p> <hr size="1" noshade>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>INTRODUCCI&Oacute;N  </B></FONT></p>     <p><FONT SIZE="2" FACE="Verdana">La optimizaci&oacute;n por enjambre de part&iacute;culas (PSO) es una t&eacute;cnica de optimizaci&oacute;n aleatoria basada en poblaciones, desarrollada por Eberhart y Kennedy en 1995 &#91;1&#93;, e inspirada en el comportamiento social de animales, como bandadas de aves o card&uacute;menes. Actualmente, el PSO se combina con otras t&eacute;cnicas de b&uacute;squeda para mejorar su rendimiento y velocidad &#91;2, 4&#93;. Los algoritmos evolutivos est&aacute;n siendo programados en diferentes plataformas de desarrollo y el &uacute;nico trabajo af&iacute;n reportado en la literatura fue el realizado por Palangpour et al. &#91;5&#93;, en el que se utiliz&oacute; el algoritmo PSO original como estabilizador para un sistema de generaci&oacute;n el&eacute;ctrica, con el prop&oacute;sito de reducir la desviaci&oacute;n de la velocidad en dos de los cuatro generadores de energ&iacute;a. Ellos lograron implementar satisfactoriamente el PSO en un DSP (Texas Instruments<SUP>&#174;</SUP>), reducir as&iacute; las oscilaciones en la velocidad de los generadores y demostrar la viabilidad del PSO b&aacute;sico como controlador en un proceso real, aunque no detallan la caracter&iacute;sticas de la funci&oacute;n objetivo. El presente art&iacute;culo muestra los principales resultados obtenidos de la implementaci&oacute;n del h&iacute;brido de optimizaci&oacute;n de enjambre de part&iacute;culas y el simplex de topolog&iacute;a alternante en un DSP (Motorola<SUP>&#174;</SUP>), evaluando su desempe&ntilde;o mediante funciones de prueba com&uacute;nmente utilizadas para ello. Se obtuvieron resultados favorables en cuanto a su precisi&oacute;n y convergencia, lo que indica la posibilidad de utilizarlo como un sistema de optimizaci&oacute;n portable y preciso mediante un DSP, en procesos donde el uso de un computador es complicado por su ubicaci&oacute;n, disponibilidad, o aun, costo. </FONT></p>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>1 FUNDAMENTOS  </B></FONT></p>     <p><FONT SIZE="2" FACE="Verdana">A continuaci&oacute;n se presentan algunos conceptos relacionados con el algoritmo h&iacute;brido que se implement&oacute; en el DSP. Este h&iacute;brido lo compone el tradicional m&eacute;todo simplex desarrollado en los a&ntilde;os 60, junto con el algoritmo de enjambre de part&iacute;culas (PSO) creado a mediados de los a&ntilde;os 90. Con relaci&oacute;n al primero, se trata de una t&eacute;cnica de optimizaci&oacute;n determin&iacute;stica caracterizada por tener un proceso iterativo definido por varias reglas, que permite ir mejorando la soluci&oacute;n en cada paso. Se utiliza ampliamente en la b&uacute;squeda de valores &oacute;ptimos locales y se describe en detalle en &#91;6&#93;. El segundo, el PSO, se considera como una estrategia metaheur&iacute;stica reciente, en donde se define una poblaci&oacute;n de posibles soluciones (part&iacute;culas) que se desenvuelven dentro del espacio de b&uacute;squeda para encontrar la mejor soluci&oacute;n a un problema. Cada part&iacute;cula explora el dominio de la funci&oacute;n objetivo teniendo presente su direcci&oacute;n anterior, la direcci&oacute;n de la mejor posici&oacute;n en que ella ha estado y la direcci&oacute;n de la part&iacute;cula mejor ubicada &#91;1, 7&#93;. </FONT></p>     <p><FONT SIZE="2" FACE="Verdana"><B>1.1 El h&iacute;brido </B></FONT></p>     ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana"> Existen al menos dos posibles formas de combinar estas dos estrategias num&eacute;ricas, como son la topolog&iacute;a secuencial y la alternate &#91;8&#93;. De an&aacute;lisis preliminares, y fundamentalmente por su alto porcentaje de efectividad para hallar la soluci&oacute;n &oacute;ptima global, se decidi&oacute; utilizar el segundo tipo topolog&iacute;a. Este h&iacute;brido entonces involucra el algoritmo PSO de convergencia garantizada dada por: </FONT></p>     <p align="center"><a name="e1"></a><img src="/img/revistas/rium/v10n19/v10n19a19e1.jpg"></p>     <p><FONT SIZE="2" FACE="Verdana"> donde    <BR> V<SUB>1</SUB> &#8594; Velocidad de la part&iacute;cula en la siguiente interaci&oacute;n    <BR> V<SUB>2</SUB> &#8594; Velocidad de la part&iacute;cula en la iteraci&oacute;n actual    <BR> X<SUB>1</SUB> &#8594; Posici&oacute;n de la part&iacute;cula en la siguiente iteraci&oacute;n    <BR> X<SUB>0</SUB> &#8594; Posici&oacute;n de la part&iacute;cula en la iteraci&oacute;n actual    <BR> W &#8594; Factor de inercia    <BR> L<SUB>BEST</SUB> &#8594; Mejor posici&oacute;n de la part&iacute;cula    <BR> C<SUB>1</SUB> &#8594; Coeficiente de confianza relacionado al L<SUB>BEST</SUB>; C<SUB>1</SUB> = C    ]]></body>
<body><![CDATA[<BR> C<SUB>2</SUB> &#8594; Coeficiente de confianza relacioando al G<SUB>BEST</SUB>; C<SUB>2</SUB>= Cr<SUB>1,2</SUB> &#8594; N&uacute;meros pseudoaleatorios entre 0 y 1</FONT></p>     <p><FONT SIZE="2" FACE="Verdana"> Combinado con el tradicional algoritmo del simplex, se caracteriza esta topolog&iacute;a porque el espacio de b&uacute;squeda de cada uno de los algoritmos participantes es totalmente diferente e independiente el uno del otro. El espacio de b&uacute;squeda del PSO lo determina el problema de optimizaci&oacute;n que consta de las D dimensiones (variables) de la funci&oacute;n objetivo; por otra parte, las dimensiones del espacio de b&uacute;squeda del simplex se definen a partir de los par&aacute;metros del m&eacute;todo PSO y su labor es optimizarlos, para que, a su vez, este &uacute;ltimo mejore su desempe&ntilde;o. Posteriormente, hay un intercambio de informaci&oacute;n entre ambos algoritmos para la realimentaci&oacute;n de cada uno de ellos &#91;8&#93;. </FONT></p>     <p><FONT SIZE="2" FACE="Verdana"><B>1.2 Desarrollo del algoritmo y su implementaci&oacute;n en el DSP </B></FONT></p>     <p><FONT SIZE="2" FACE="Verdana"> A diferencia del trabajo reportado por Palangpour et al. &#91;5&#93;, en el que se implementa el PSO original en un DSP, en este trabajo se desarroll&oacute; un algoritmo h&iacute;brido combinado de forma alternante y que mostr&oacute; consistentemente mejores resultados. Para elaborar el algoritmo, se definieron las matrices S (puntos <I>G, B y W</I> del simplex) y B (puntos en las reglas del simplex) para el m&eacute;todo simplex. Para el PSO se emplearon las matrices X (X<SUB>i</SUB>-coordenadas de las part&iacute;culas del PSO junto con su respectivo valor en la funci&oacute;n objetivo), L (<I>L<SUB>Best</SUB></I>-&oacute;ptimo local de cada part&iacute;cula con su valor evaluado por la funci&oacute;n objetivo) y V (V<SUB>0</SUB>-velocidad de cada part&iacute;cula de la iteraci&oacute;n anterior) y el vector G (<I>G<SUB>Best</SUB> </I>-mejores coordenadas halladas por el PSO junto con su valor en la funci&oacute;n objetivo). La matriz S tienes tres dimensiones ya que en ella est&aacute;n los par&aacute;metros relacionados con el n&uacute;mero de part&iacute;culas (Part), factor de inercia (W) y las constantes de confianza (C), que son valores requeridos por el PSO. En el momento en que se ordene la matriz S respecto a la columna descrita por el PSO, se deben aplicar las reglas del simplex, teniendo en cuenta que todas las compresiones son en un factor de 0.5 y las expansiones son en un factor de 2. Como criterio de parada del proceso de optimizaci&oacute;n implementado en el DSP se recurri&oacute; a determinar un n&uacute;mero fijo de iteraciones, para que cuando el simplex realice la iteraci&oacute;n final, autom&aacute;ticamente se termine el proceso. Otra forma consisti&oacute; en definir que cada cinco iteraciones el m&eacute;todo revisar&aacute; si el valor de la posici&oacute;n S<SUB>0.3</SUB> (soluci&oacute;n) es menor que la precisi&oacute;n buscada y si esto se cumple, se almacena en un vector de cinco posiciones y se calcula la varianza de los datos. Por otro lado, si esta es menor que un error definido elevado al cuadrado, el m&eacute;todo se termina, ya que no evolucion&oacute; m&aacute;s en el tiempo y cumpli&oacute; la precisi&oacute;n deseada. Al finalizar el m&eacute;todo, la primera fila de la matriz S ser&aacute; la mejor soluci&oacute;n encontrada. </FONT></p>     <p><FONT SIZE="2" FACE="Verdana"><B>1.3 El DSP	</B></FONT></p>     <p><FONT SIZE="2" FACE="Verdana"> Un DSP es un procesador que se especializa en la ejecuci&oacute;n de operaciones de manera digital. En comparaci&oacute;n con los microprocesadores tiene un mejor desempe&ntilde;o de c&oacute;mputo. El DSP utilizado para implementar el algoritmo h&iacute;brido se muestra como una herramienta eficiente ya que est&aacute; dise&ntilde;ado para las operaciones matem&aacute;ticas sencillas (acumulaci&oacute;n y ponderaci&oacute;n), repetitivas (lazos) y de acceso a memoria. El DSP tiene la ventaja de trabajar sobre se&ntilde;ales reales y, adem&aacute;s, de ejecutar instrucciones, logrando que estos dos procesos se realicen en un mismo dispositivo. </FONT></p>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>2 EXPERIMENTOS	</B></FONT></p>     <p><FONT SIZE="2" FACE="Verdana">Con el prop&oacute;sito de comparar resultados en cuanto a precisi&oacute;n y tiempo de procesamiento se refiere, se decidi&oacute; realizar las mismas pruebas en un computador y en el DSP. </FONT></p>     <p><FONT SIZE="2" FACE="Verdana"><B>2.1 El computador  </B></FONT></p>     ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana"> Se desarroll&oacute; el algoritmo en lenguaje C, con el fin de evaluar su desempe&ntilde;o en un computador personal, teniendo una RAM de 4 GB DDR2, un procesador INTEL CORE 2 DUO E8400 de 64 bits, trabaja con punto flotante a 24 GFLOPS, una memoria cach&eacute; L1 de 64 KB, una L2 de 6 MB, una frecuencia del bus del sistema frontal de 1.333 MHz y una frecuencia de reloj de 3 GHz. Para la programaci&oacute;n del algoritmo se utiliz&oacute; el programa DEV CPP, que es un compilador de c&oacute;digo C y C++. Para calcular el tiempo de ejecuci&oacute;n del algoritmo se utiliz&oacute; la funci&oacute;n <I>clock</I>, que arroja el valor del reloj en ese instante. Se utiliz&oacute; la funci&oacute;n <I>srand</I> para generar los n&uacute;meros aleatorios. </FONT></p>     <p><FONT SIZE="2" FACE="Verdana"><B>2.2 El DSP	</B></FONT></p>     <p><FONT SIZE="2" FACE="Verdana"> Se utiliz&oacute; un DSP 56F8357PY60 es de la familia de Freescale con una frecuencia de 60 MHz, 256 KB de memoria flash de programa, 4KB de RAM de programa, 8 KB de flash de datos, 16 KB de RAM de datos, 16 KB de flash de arranque, el formato de manejo de datos es de punto fijo de 16 bits y ejecuta hasta 60 millones de instrucciones por segundo. Adem&aacute;s, posee perif&eacute;ricos internos para funciones de tiempo, conversi&oacute;n an&aacute;logo-digital, pines para prop&oacute;sito general y otros m&oacute;dulos de comunicaci&oacute;n. La tarjeta DSP se program&oacute; con <I>Codewarrior Development Studio</I><SUP>&#174;</SUP> para la serie 56800E. Para medir el tiempo de ejecuci&oacute;n del programa, se implement&oacute; un anexo al c&oacute;digo original que no modifica significativamente el tiempo de ejecuci&oacute;n. Mediante la herramienta de Processor Expert<SUP>&#174;</SUP>, se aplic&oacute; el m&eacute;todo de ''<I>TimeDate</I>'', que configura los <I>Timers</I> para obtener un reloj en tiempo real con una resoluci&oacute;n de cent&eacute;simas de segundo. </FONT></p>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>3 RESULTADOS Y AN&Aacute;LISIS	 </B></FONT></p>     <p><FONT SIZE="2" FACE="Verdana">Inicialmente se definieron los rangos para los experimentos realizados con las funciones de prueba, ver <a href="#t1">tabla 1</a>.</FONT></p>     <p>&nbsp;</p>     <p align="center"><a name="t1"></a><img src="/img/revistas/rium/v10n19/v10n19a19t1.jpg"></p>     <p align="center">&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> De la amplia gama de funciones disponibles para probar la eficiencia de un algoritmo de optimizaci&oacute;n se seleccionaron seis de ellas. En la <a href="#t2">tabla 2</a> se recopilan algunos de los resultados obtenidos. Para todos los casos, tanto el computador como el DSP, lograron los resultados correctos en el 100% de los experimentos. La diferencia radic&oacute; en el tiempo de c&oacute;mputo. Consistentemente, el computador lo hizo en menor tiempo. Tambi&eacute;n se not&oacute; que a mayor dimensi&oacute;n de la funci&oacute;n, mayor es el tiempo de c&oacute;mputo. </FONT></p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p align="center"><a name="t2"></a><img src="/img/revistas/rium/v10n19/v10n19a19t2.jpg"></p>     <p align="center">&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> En la <a href="#f1">figura 1</a> se ilustra el n&uacute;mero de part&iacute;culas utilizadas por cada uno de los dos dispositivos. La tabla que acompa&ntilde;a la figura muestra el valor promedio de todas las pruebas realizadas. </FONT></p>     <p>&nbsp;</p>     <p align="center"><a name="f1"></a><img src="/img/revistas/rium/v10n19/v10n19a19f1.jpg"></p>     <p>&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> Se puede apreciar que el DSP en general utiliza una cantidad de part&iacute;culas similar a las requeridas por el computador para hallar el &oacute;ptimo en las funciones de prueba. Con el objeto de dilucidar igualmente el efecto del factor de inercia sobre la soluci&oacute;n, se realizaron varias pruebas como se muestra en la <a href="#f2">figura 2</a>. Al igual que en el n&uacute;mero de part&iacute;culas, no hay una diferencia apreciable para los dos dispositivos. Sin embargo, a medida que el problema se torna m&aacute;s complejo (mayor n&uacute;mero de dimensiones y complejidad de la funci&oacute;n), el valor de W se incrementa ligeramente. </FONT></p>     <p>&nbsp;</p>     <p align="center"><a name="f2"></a><img src="/img/revistas/rium/v10n19/v10n19a19f2.jpg"></p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> La <a href="#f3">figura 3</a> resalta el comportamiento de los coeficientes de confianza (C) para algunas de las funciones objetivo, seleccionadas. Se defini&oacute; desde un inicio el rango para este coeficiente entre 1.5 y 3.5. Se observ&oacute; que su valor se mantiene cercano a 2.0; se puede con ello reducir a&uacute;n m&aacute;s el rango y lograr una b&uacute;squeda m&aacute;s directa.</FONT></p>     <p>&nbsp;</p>     <p align="center"><a name="f3"></a><img src="/img/revistas/rium/v10n19/v10n19a19f3.jpg"></p>     <p>&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> El siguiente factor que se consider&oacute; para cualificar el desempe&ntilde;o del h&iacute;brido, operando en el DSP frente al computador, fue la precisi&oacute;n. De la <a href="#f4">figura 4</a> se puede apreciar que la precisi&oacute;n entre estos dos dispositivos se mantuvo en un valor cercano para las funciones esfera, Zakharov y Rosenbrock, pero al momento de evaluarla para la funci&oacute;n Rastrigin, se nota una diferencia considerable, ya que el DSP tuvo valores muy cercanos a los te&oacute;ricos. </FONT></p>     <p>&nbsp;</p>     <p align="center"><a name="f4"></a><img src="/img/revistas/rium/v10n19/v10n19a19f4.jpg"></p>     <p>&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> Si se observan los datos obtenidos para esta prueba, ninguno de ellos se ajusta a los resultados te&oacute;ricos en forma exacta. Cuando se ejecut&oacute; el algoritmo en el DSP y &eacute;ste generaba una respuesta inferior a 1x10<SUP>-4</SUP>, autom&aacute;ticamente se aproximaba a cero. Para las funciones de prueba esfera, Zakharov y Rastrigin, en los dos dispositivos se calcularon los errores tal y como se observa en la <a href="#f5">figura 5</a>. A diferencia de lo anterior, para la funci&oacute;n Rosenbrock (<a href="#f5">figura 5-c</a>), la implementaci&oacute;n en el computador arroja resultados m&aacute;s cercanos al error establecido que el DSP. </FONT></p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p align="center"><a name="f5"></a><img src="/img/revistas/rium/v10n19/v10n19a19f5.jpg"></p>     <p>&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> Se observ&oacute; igualmente que cuando se incrementan las dimensiones, el proceso de optimizaci&oacute;n requiere m&aacute;s iteraciones con el prop&oacute;sito de cumplir la precisi&oacute;n exigida. Para 2D, el n&uacute;mero de iteraciones promedio que realiz&oacute; fue de 22 en el DSP y 28 en el computador, mientras que para 5D, en el DSP se elevaron a 42 y a 30 en el computador. En la <a href="#f6">figura 6</a>, se evidencia que en el computador, la respuesta se encuentra m&aacute;s cercana al &oacute;ptimo global que en el DSP. En cinco dimensiones, a pesar de que la funci&oacute;n objetivo est&aacute; m&aacute;s alejada comparada con la de dos dimensiones, el valor de sus coordenadas demuestra estar en un rango aceptable. Tambi&eacute;n se aprecia que en el computador, la respuesta es m&aacute;s cercana con la precisi&oacute;n deseada que en el DSP para cinco dimensiones con iguales par&aacute;metros. </FONT></p>     <p>&nbsp;</p>     <p align="center"><a name="f6"></a><img src="/img/revistas/rium/v10n19/v10n19a19f6.jpg"></p>     <p>&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> El incremento en el tiempo de ejecuci&oacute;n del algoritmo en el DSP de acuerdo con el incremento del n&uacute;mero de dimensiones para la funci&oacute;n esfera se muestra en la <a href="#f7">figura 7</a>. Para todos los experimentos, el error permitido fue de 1x10<SUP>-6</SUP>, el rango de part&iacute;culas estuvo entre 15 y 40 y el n&uacute;mero m&aacute;ximo de iteraciones para el PSO fue de 50 mientras que para el simplex fue de 60. A medida que se incrementa el n&uacute;mero de dimensiones, el tiempo de procesamiento del DSP aument&oacute; de forma exponencial, tal y como lo demuestra la interpolaci&oacute;n mostrada en esa figura por la l&iacute;nea punteada. </FONT></p>     <p>&nbsp;</p>     <p align="center"><a name="f7"></a><img src="/img/revistas/rium/v10n19/v10n19a19f7.jpg"></p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> De un an&aacute;lisis global, se observ&oacute; una p&eacute;rdida de precisi&oacute;n del h&iacute;brido conforme se incrementaba el n&uacute;mero de dimensiones del problema. Sin embargo, los resultados arrojados permanecieron dentro del error permitido (1x10<SUP>-6</SUP>), (ver <a href="#f8">figura 8</a>). Nuevamente, el comportamiento de los resultados describe una tendencia exponencial (l&iacute;nea punteada). </FONT></p>     <p>&nbsp;</p>     <p align="center"><a name="f8"></a><img src="/img/revistas/rium/v10n19/v10n19a19f8.jpg"></p>     <p>&nbsp;</p>     <p><FONT SIZE="2" FACE="Verdana"> Los comportamientos descritos en las &uacute;ltimas dos figuras sirven como una ayuda inicial para estimar si la implementaci&oacute;n del algoritmo h&iacute;brido en el DSP seleccionado es viable para una aplicaci&oacute;n en particular. No obstante, no se puede generalizar, ya que no debe olvidarse que el tiempo de c&oacute;mputo depende no solamente del hardware, del algoritmo utilizado, de los par&aacute;metros de este &uacute;ltimo, sino de la misma naturaleza (forma y dimensiones) de la funci&oacute;n objetivo. Para el presente caso, se observ&oacute; que el tiempo de operaci&oacute;n del DSP fue consistentemente mayor que el utilizado por el computador, como se observa en la <a href="#f9">figura 9</a>. </FONT></p>     <p>&nbsp;</p>     <p align="center"><a name="f9"></a><img src="/img/revistas/rium/v10n19/v10n19a19f9.jpg"></p>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>5 CONCLUSIONES	</B></FONT></p>     ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana">Se logr&oacute; implementar el algoritmo h&iacute;brido de optimizaci&oacute;n enjambre de part&iacute;culas con el simplex en un DSP, y se obtuvieron resultados con una precisi&oacute;n aceptable. Sin embargo, los tiempos de ejecuci&oacute;n del algoritmo en el DSP disponible resultaron elevados, debido posiblemente, entre otras razones, a la diferencia del formato de manejo de datos entre ambos dispositivos, a su velocidad de lectura y escritura de datos entre los procesadores. Con las pruebas realizadas, se verific&oacute; con base en comparaciones con un computador, que en el DSP seleccionado los datos obtenidos cumplieron con la precisi&oacute;n establecida para la mayor&iacute;a de las funciones de prueba. Ya que el DSP utilizado obtiene respuestas precisas y dentro del error permitido, se puede aprovechar el tama&ntilde;o del mismo como un dispositivo portable, para situaciones que requieran, por ejemplo, de una gran capacidad de c&oacute;mputo y alta precisi&oacute;n. </FONT></p>     <p><FONT SIZE="2" FACE="Verdana"> Es claro tambi&eacute;n que no es viable, por ahora, en aplicaciones de tiempo real donde la <I>velocidad de respuesta</I> sea una importante limitante de dise&ntilde;o, aunque este par&aacute;metro depende tambi&eacute;n de otros factores como la naturaleza misma (forma y dimensiones) de la funci&oacute;n objetivo. Para un trabajo siguiente se est&aacute; en la tarea de definir las mejores caracter&iacute;sticas t&eacute;cnicas del DSP, con el fin de lograr la disminuci&oacute;n del tiempo de ejecuci&oacute;n del h&iacute;brido y/o el uso de una alternativa m&aacute;s avanzada, como un FPGA, aunque mucho m&aacute;s costosa a nuestros d&iacute;as. </FONT></p>     <p>&nbsp;</p>     <p><FONT SIZE="3" FACE="Verdana"><B>REFERENCIAS	 </B></FONT></p>     <!-- ref --><p><FONT SIZE="2" FACE="Verdana">&#91;1&#93; J. Kennedy, y R. Eberhart, ''Particle Swarm Optimization,'' presentado en Proceedings., IEEE International Conference on, Perth: pp. 1942-1948, 1995. </FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000107&pid=S1692-3324201100020001900001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> &#91;2&#93; Y. Zhao et al., ''Hybrid Particle Swarm Optimization based on parallel Collaboration,'' presentado en Intelligent Computation Technology and Automation (ICICTA), 2008 International Conference on, Hunan: pp. 65-70, 2008. </FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000108&pid=S1692-3324201100020001900002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> &#91;3&#93; J. Wen et al., ''Particle Swarm Algorithm based on normal cloud,'' presentado en Evolutionary Computation, 2008. CEC 2008. (IEEE World Congress on Computational Intelligence). IEEE Congress on Hong Kong: pp. 1492-1496, 2008. </FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000109&pid=S1692-3324201100020001900003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> &#91;4&#93; X. Li et al., ''One immune Simplex Particle Swarm Optimization and its Application,'' presentado en Natural Computation, 2008. ICNC 08. Fourth International Conference on Jinan: pp. 331-335, 2008. </FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000110&pid=S1692-3324201100020001900004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> &#91;5&#93; P. Palangpour et al., ''DSP-Based PSO Implementation for Online Optimization of Power System Stabilizers,'' presentado en Adaptive Hardware and Systems, 2008. AHS 08. NASA/ESA Conference on Noordwijk: pp. 379-384, 2008. </FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000111&pid=S1692-3324201100020001900005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> &#91;6&#93; J. A. Nelder, y R. Mead, ''A simplex method for function minimization,'' The Computer Journal, vol. 7, no. 4, pp. 308-313, 1965. </FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000112&pid=S1692-3324201100020001900006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> &#91;7&#93; M. Clerc, y J. Kennedy, ''The Particle Swarm-Explosion, Stability, and Convergence in a Multidimensional Complex Space,'' presentado en Evolutionary Computation, IEEE Transactions on: pp. 58-73, 2002. </FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000113&pid=S1692-3324201100020001900007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana"> &#91;8&#93; M. Villareal, y J. Osma, ''Comparaci&oacute;n del desempe&ntilde;o del algoritmo de Optimizaci&oacute;n PSOSX (PE) frente al PSOSX (S),'' tesis de Pregrado en Ingenier&iacute;a, Universidad Industrial de Santander, 2009. </FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000114&pid=S1692-3324201100020001900008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p align="center">&nbsp;</p>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>[1]</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kennedy]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Eberhart]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<source><![CDATA[''Particle Swarm Optimization,'']]></source>
<year>1995</year>
<page-range>1942-1948</page-range></nlm-citation>
</ref>
<ref id="B2">
<label>[2]</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zhao]]></surname>
<given-names><![CDATA[Y.]]></given-names>
</name>
</person-group>
<source><![CDATA[''Hybrid Particle Swarm Optimization based on parallel Collaboration,'']]></source>
<year>2008</year>
<page-range>65-70</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>[3]</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wen]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[''Particle Swarm Algorithm based on normal cloud,'']]></source>
<year></year>
<page-range>1492-1496</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>[4]</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[X.]]></given-names>
</name>
</person-group>
<source><![CDATA[''One immune Simplex Particle Swarm Optimization and its Application,'']]></source>
<year>2008</year>
<page-range>331-335</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>[5]</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Palangpour]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
</person-group>
<source><![CDATA[''DSP-Based PSO Implementation for Online Optimization of Power System Stabilizers,'']]></source>
<year>2008</year>
<page-range>379-384</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[Nelder]]></surname>
<given-names><![CDATA[J. A.]]></given-names>
</name>
<name>
<surname><![CDATA[Mead]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A simplex method for function minimization]]></article-title>
<source><![CDATA[The Computer Journal]]></source>
<year>1965</year>
<volume>7</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>308-313</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>[7]</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Clerc]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Kennedy]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[''The Particle Swarm-Explosion, Stability, and Convergence in a Multidimensional Complex Space,'']]></source>
<year>2002</year>
<page-range>58-73</page-range></nlm-citation>
</ref>
<ref id="B8">
<label>[8]</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Villareal]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Osma]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[''Comparación del desempeño del algoritmo de Optimización PSOSX (PE) frente al PSOSX (S),'']]></source>
<year></year>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
