<?xml version="1.0"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><atom:link href="https://becacfl.blogia.com/feed.xml" rel="self" type="application/rss+xml"/><title>Beca CFL</title><description>- OPTIMIZACI&#xD3;N -  LOCALIZACI&#xD3;N DE SERVICIOS</description><link>https://becacfl.blogia.com</link><language>es</language><lastBuildDate>Sun, 10 Dec 2023 12:02:20 +0000</lastBuildDate><generator>Blogia</generator><item><title>Primera mejora conseguida</title><link>https://becacfl.blogia.com/2009/072201-primera-mejora-conseguida.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2009/072201-primera-mejora-conseguida.php</guid><description><![CDATA[<p>La primera mejora es la que actualiza el valor de U , seg&uacute;n los costes derivados de servicio a todos los clientes desde todas las plantas.</p><p>Para problemas peque&ntilde;os funciona. Pero, no est&aacute; claro que la mejora est&eacute; bien, por que en problemas peque&ntilde;os no se tiene que actualizar el valor de u.</p><p>Estoy probando para problemas del orden de 100 plantas y 1000 clientes. En estos casos si que es necesario actualizar u, por que hacemos m&aacute;s de una iteraci&oacute;n, y debemos penalizar cada vez m&aacute;s los costes.</p><p>&nbsp;</p>]]></description><pubDate>Wed, 22 Jul 2009 17:31:00 +0000</pubDate></item><item><title>Y ahora que?</title><link>https://becacfl.blogia.com/2009/070702-y-ahora-que-.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2009/070702-y-ahora-que-.php</guid><description><![CDATA[<p>Hoy he dedicado la ma&ntilde;ana a hacer trazas para saber donde falla. Pero no encuentro donde.</p><p>Esta tarde me tocar&aacute; m&aacute;s de lo mismo.</p><p>Intentar&eacute; aplicar la otra mejora por otro lado sola, a ver si por ese lado sale.</p><p>El caso es que tengo que estar a punto de conseguirlo, asi que ya veremos.</p><p>M&aacute;s esta tarde...</p>]]></description><pubDate>Tue, 07 Jul 2009 11:32:00 +0000</pubDate></item><item><title>Nuevos resultados</title><link>https://becacfl.blogia.com/2009/070701-nuevos-resultados.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2009/070701-nuevos-resultados.php</guid><description><![CDATA[<p>Despu&eacute;s de los examenes, vuelta al PFC.</p><p>La semana pasada no saque resultados muy buenos para la nueva mejora a aplicar.</p><p>Esta mejora esta basada en hacer m&aacute;s peque&ntilde;os los subproblemas que tienen que llegar a resolver el problema concreto.</p><p>Esta mejora se realiza eliminando las X que sabemos que su multiplicador c &gt;= 0.</p><p>&nbsp;</p><p>Otra de las mejoras que debemos aplicar es la actualizaci&oacute;n de U. Previamente hay que odenar los costes y localizar donde ir&aacute; situado uj0. Si hay que actualizas uj0, hacerlo con el valor cj que corresponda, y as&iacute; sucesivamente, en orden creciente. El vector U ir&aacute; tomando valores cada vez m&aacute;s altos para penalizar los costes.</p><p>&nbsp;</p><p>De momento vamos a aplicar la primera mejora y ver los resultados obtenidos.</p><p>&nbsp;</p><p>&nbsp;</p>]]></description><pubDate>Tue, 07 Jul 2009 09:04:00 +0000</pubDate></item><item><title>&#xD3;ptimo muy cercano</title><link>https://becacfl.blogia.com/2009/040201-optimo-muy-cercano.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2009/040201-optimo-muy-cercano.php</guid><description><![CDATA[<p>Ya que acabamos la primera parte de este proyecto ,(ver que alcance tiene CPLEX resolviendo problemas CFL), ahora toca ponerse a optimizar.</p><p>En esta pimera parte hemos comprobado como CPLEX resuelve todos los problemas de la bateria de problemas OR-Library, alojada en</p><p>http://people.brunel.ac.uk/~mastjjb/jeb/info.html (2009)</p><p>Estos datos est&aacute;n analizados en el paper J.E. Beasley&nbsp; "An algorithm for solving large capacitated warehouse location problems" European Journal of Operational Research 33(1988) 314-325.</p><p>He realizado un art&iacute;culo para presentar en Marzo, por que finalizaba la beca. Hemos entregado los resultados de todas las pruebas, junto con una ubicaci&oacute;n del problema, su formulaci&oacute;n, las herramientas y el equipo utilizado, y las t&eacute;cnicas que utiliza cada herramienta para resolver cada una de las instancias.</p><p>En la segunda parte veremos la relajaci&oacute;n semi-Lagrangiana. Esta relajaci&oacute;n hace que el problema sea m&aacute;s f&aacute;cil de resolver que el problema primal o principal. Con esta t&eacute;cnica partimos el problema primal en subproblemas m&aacute;s peque&ntilde;os, y por tanto m&aacute;s f&aacute;ciles de solucionar.</p><p>Para hacer el problema relajado:</p><p>1- Resolver la RL del problema primal.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; De aqu&iacute; obtenemos un vector de varialbes duales que nos dar&aacute; el valor del vector U0. Este vector contendr&aacute; la penalizaci&oacute;n que le damos al problema para que tienda a resolverse completamente.</p><p>2- Resolver el problema relajado de CFL con relajacion semi-Lagrangiana.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Los valores de las plantas(y) s&oacute;lo pueden ser enteros.Esta restricci&oacute;n es importante.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Necesitamos:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Actulalizar el valor de U</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Con la actualizaci&oacute;n hacemos que cada vez se resuelva un problema relajado, acercandonos a la&nbsp; soluci&oacute;n del problema primal.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; - Criterio de parada</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Necesitamos este criterio de parada para saber cuando hemos llegado al &oacute;ptimo.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>]]></description><pubDate>Thu, 02 Apr 2009 09:55:00 +0000</pubDate></item><item><title>Modificar entrada de datos</title><link>https://becacfl.blogia.com/2008/111301-modificar-entrada-de-datos.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/111301-modificar-entrada-de-datos.php</guid><description><![CDATA[<p>La unica entrada de datos posible seria de todos con igual n&uacute;mero de columnas. Y ahora lo que estamos haciendo es partiendolo en dos.</p><p>As&iacute; se hace muy costoso el obtener ficheros v&aacute;lidos para nuestra entrada de datos.</p><p>Es necesario modificarlo. <span style="background-color: #ffff00;">Deberiamos poder poner un n&uacute;mero de columnas que fuera igual al n&uacute;mero de localizaciones y lo dem&aacute;s a 0.</span></p><p>&nbsp;</p>]]></description><pubDate>Thu, 13 Nov 2008 13:44:00 +0000</pubDate></item><item><title>Paso para leer datos del fichero y asignarlos bien</title><link>https://becacfl.blogia.com/2008/111204-paso-para-leer-datos-del-fichero-y-asignarlos-bien.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/111204-paso-para-leer-datos-del-fichero-y-asignarlos-bien.php</guid><description><![CDATA[<p style="background-color: #ff0000;">Si el n&uacute;mero de localizaciones es impar no sale el ejercicio por que el paso tiene una divisi&oacute;n entre 2.</p><p style="background-color: #ff0000;">Esto tengo que contemplarlo, es decir, tengo que arreglarlo con un if comprobando si el n&uacute;mero es par o impar, mediante el m&oacute;dulo.</p><p>&nbsp;</p>]]></description><pubDate>Wed, 12 Nov 2008 16:50:00 +0000</pubDate></item><item><title>IntVars</title><link>https://becacfl.blogia.com/2008/111203-intvars.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/111203-intvars.php</guid><description><![CDATA[<p>Parece que IntVars no esta funcionando por que si resolvemos sin Cplex con la llamada a linprog, obtenemos resultados que no son en ningun caso enteros, sino todos lineales.</p><p>En cambio, cuando hacemos la llamada a linprog desde Cplex, pone todos los valores de las x a enteros, 0 &oacute; 1, y las y a continuos.</p><p>Realmente, deber&iacute;a ser al rev&eacute;s, es decir, para los valores de las x que fueran valores continuos, y el valor de la y deberia ser entero.</p><p>&nbsp;</p><p>&nbsp;</p>]]></description><pubDate>Wed, 12 Nov 2008 16:13:00 +0000</pubDate></item><item><title>Nos centramos en resolver Rardin con mipSolve</title><link>https://becacfl.blogia.com/2008/111202-nos-centramos-en-resolver-rardin-con-mipsolve.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/111202-nos-centramos-en-resolver-rardin-con-mipsolve.php</guid><description><![CDATA[<p>Ya he conseguido obtener un resultado para el ejemplo de Rardin.</p><p>Lo resuelve con la llamada a mipSolve y despues con tomRun.</p><p>El resultado obtenido es el mismo que teniamos para Linprog, ya que mipSolve resuelve ejemplos de tipo mixed-integer linear programming, es decir, resoluci&oacute;n para problemas mixtos entero-lineales.</p><p>Gracias a IntVars tenemos que el resultado es el correcto, teniendo en cuenta que los ultimos 8 valores de el vector x son realmente los valores de y, que deben ser enteros. El resto de x, es decir, los 112 elementos primeros pueden ser valores entre 0 y 1.</p><p style="background-color: #ff0000;"><span style="color: #000000;">Haciendo algunas pruebas nos damos cuenta que si eliminamos el valor de IntVars, conseguimos el mismo resultado.</span></p><p>Eso es raro, muy raro, ya que parece que esta poniendo los resultados buenos sin necesidad de decirle si queremos que sean enteras o lineales.</p><p>&nbsp;</p><p>&nbsp;</p>]]></description><pubDate>Wed, 12 Nov 2008 15:54:00 +0000</pubDate></item><item><title>Llamada a mipSolve</title><link>https://becacfl.blogia.com/2008/111201-llamada-a-mipsolve.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/111201-llamada-a-mipsolve.php</guid><description><![CDATA[<p>Dos lineas de investigaci&oacute;n para probar el funcionamiento de mipSolve</p><p>- Resolver Rardin con llamadas mipSolve</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Es necesario hacer cambios en la matrices que se le pasan al problema ya que en mipSolve no existe un matriz que sea Aeq</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tambi&eacute;n tenemos que a&ntilde;adir las variables restantes que antes no teniamos y ahora si.</p><p>- Resolver el cap 41 con menos datos.</p><p>&nbsp;&nbsp;&nbsp;&nbsp; Reducir el problema a n&uacute;mero de clientes 10 y de localizaciones a 5, en principio.</p><p>&nbsp;</p>]]></description><pubDate>Wed, 12 Nov 2008 15:16:00 +0000</pubDate></item><item><title>Procedimientos por falta de tiempo</title><link>https://becacfl.blogia.com/2008/110701-procedimientos-por-falta-de-tiempo.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/110701-procedimientos-por-falta-de-tiempo.php</guid><description><![CDATA[<p>Como es muy d&iacute;ficil que terminemos el trabajo para el dia 1 de Marzo, C&eacute;sar y yo hemos acordado que adelantaremos lo m&aacute;ximo posible hasta Marzo, y lo que quede del proyecto lo seguiremos haciendo de cara a entregalo como PFC.</p><p>Asi pues, voy a realizar 10h semanales en el aula del Dept II, para poder consultar mis dudas a C&eacute;sar cuando las tengas. As&iacute; estamos m&aacute;s cerca uno del otro.</p><p>Y por otro lado, cuando tenga huecos en casa, tambi&eacute;n ir&eacute; adelantando trabajo. As&iacute; lograre antes de fin de a&ntilde;o haber avanzado algo en el proyecto.</p><p>&nbsp;</p>]]></description><pubDate>Fri, 07 Nov 2008 09:44:00 +0000</pubDate></item><item><title>Duda</title><link>https://becacfl.blogia.com/2008/110602-duda.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/110602-duda.php</guid><description><![CDATA[<p>Tengo dudas de como hacer esto:</p><p>&nbsp;</p><p>Sum desde i=1 to m de x_ij &gt;=1.</p><p>Por que no se si debe ser con&nbsp; blkdiag de unos, es decir, una matriz que en su diagonal tenga matrices de unos, y lo dem&aacute;s cero. O directamente toda la matriz tiene que ser de ceros.</p><p>A ver si ma&ntilde;ana me resuelve la duda C&eacute;sar.</p><p>Ma&ntilde;ana tenemos la reuni&oacute;n a las 9 de la ma&ntilde;ana.</p>]]></description><pubDate>Thu, 06 Nov 2008 17:56:00 +0000</pubDate></item><item><title>Startup.m</title><link>https://becacfl.blogia.com/2008/110601-startup-m.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/110601-startup-m.php</guid><description><![CDATA[<p>He vuelto a repasar el problema y creo que el fallo esta en la matriz A y b. Voy a volver&nbsp; a repasarlo ahora.</p><p>No he conseguido a&uacute;n hacer que Matlab ejecute startup.m al comienzo siempre, para que no tenga que llamarlo yo siempre desde mi codigo. A&uacute;n no tengo la soluci&oacute;n pero creo que estoy a punto de conseguirlo.</p><p>Queda repasar otra vez el problema a ver si soy capaz de encontrar el fallo.</p><p>Editando:</p><p>S&oacute;lo puedo hacer que el .dll no se comprobado cada vez que se lanza startup pero no puedo ejecutarlo cada vez que se abre Matlab.</p><p>&nbsp;</p>]]></description><pubDate>Thu, 06 Nov 2008 16:46:00 +0000</pubDate></item><item><title>Avances semana</title><link>https://becacfl.blogia.com/2008/110501-avances-semana.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/110501-avances-semana.php</guid><description><![CDATA[<p>Entre ayer y hoy he avanzado poco.</p><p>A ver si ma&ntilde;ana o en la reuni&oacute;n con&nbsp; C&eacute;sar.</p>]]></description><pubDate>Wed, 05 Nov 2008 18:49:00 +0000</pubDate></item><item><title>Manejo de IntVars</title><link>https://becacfl.blogia.com/2008/103005-manejo-de-intvars.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/103005-manejo-de-intvars.php</guid><description><![CDATA[<p>Esto es sencillo.</p><p>IntVars es un&nbsp; vector que identificar&aacute; las variables que le pasamos a una llamada, para saber si son enteras o continuas. Tambi&eacute;n acepta valores binarios.</p><p>Se usa de la siguiente manera.</p><p>Si el vector esta vac&iacute;o, se entiende que no hay variables enteras.</p><p>Si el vector tiene n elementos y estos tienen valores 0 o 1, se entiende como que los valores a 1 identifican la posici&oacute;n de la salida en la que se encuentra un n&uacute;mero entero o binario. Si es 0, es una variable continua.</p><p>Si el vector contiene valores mayores que 1 (&gt;1), se considera que son las posiciones de los variables de tipo entero o binario.</p>]]></description><pubDate>Thu, 30 Oct 2008 22:20:00 +0000</pubDate></item><item><title>Como se queda el problema cap41</title><link>https://becacfl.blogia.com/2008/103003-como-se-queda-el-problema-cap41.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/103003-como-se-queda-el-problema-cap41.php</guid><description><![CDATA[<p>El problema tendra en cuenta s&oacute;lo las restricciones de satisfacci&oacute;n de demanda y de capacidad. Ambas quedaran con s&iacute;mbolo de desigualdad.(Demanda - &gt;= y Capacidad - &lt;=)</p><p>No tendremos en cuenta, de momento, la restricci&oacute;n x_ij &lt;= y_i, pero si para obtener una optimizaci&oacute;n, ya que a&ntilde;adir restricciones al problema ayuda a CPlex a una resoluci&oacute;n m&aacute;s r&aacute;pida.</p><p>&nbsp;</p>]]></description><pubDate>Thu, 30 Oct 2008 19:11:00 +0000</pubDate></item><item><title>IntVars</title><link>https://becacfl.blogia.com/2008/103002-intvars.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/103002-intvars.php</guid><description><![CDATA[<p>Tal y como yo pensaba la clave esta en IntVars.</p><p>Este vector define que variables de nuestro programa son enteras o binarias. Por tanto, tenemos que las y_i tienen que ser binarias, ya que solo pueden tomar valor de 0 o 1. Es decir, 0 , esta cerrada la localizaci&oacute;n, y 1 , est&aacute; abierta la localizaci&oacute;n.</p><p>Para las x_ij, deben estar entre 0 y 1, pero no tienen que ser binarias, ni enteras. La definici&oacute;n de los l&iacute;mites se contempla en x_U y x_L .</p><p>&nbsp;</p>]]></description><pubDate>Thu, 30 Oct 2008 19:07:00 +0000</pubDate></item><item><title>Sin internet en toda la semana.</title><link>https://becacfl.blogia.com/2008/103001-sin-internet-en-toda-la-semana-.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/103001-sin-internet-en-toda-la-semana-.php</guid><description><![CDATA[<p>Esta semana no he podido publicar avances por que internet no me funciona.</p><p>Hoy hago un resumen de todo un poco.</p>]]></description><pubDate>Thu, 30 Oct 2008 19:02:00 +0000</pubDate></item><item><title>Desesperaci&#xF3;n....</title><link>https://becacfl.blogia.com/2008/102401-desesperacion-.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/102401-desesperacion-.php</guid><description><![CDATA[<p>Llevo toda la semana con lo mismo, y no salgo de este agujero.</p><p>Aportes de cosas nuevas:</p><p>Con IntVars podemos poner las varialbes que con enteras o binarias.</p><p>Puede que la soluci&oacute;n este en las variables slacks. Que son aquellas que se a&ntilde;aden a una restricci&oacute;n para cambiar la desigualdad de la ecuaci&oacute;n. Requieren que se convierta de una desigualdad a una igualdad en la que una comibnaci&oacute;n lineal de variables es &lt;= a una costante dada.Como es una restricci&oacute;n aumentada los valores no pueden ser negativos.</p><p>El problema que tengo creo que esta en que el paso de par&aacute;metros a la llamada no es el v&aacute;lido, ya que he probado con otros test de ejemplo que trae el tomlab y todos los resuelve con el mismo resultado, siendo que unos los resuelve con Simplex y yo los cambi&eacute; a Cplex.</p><p>Creo que la cuesti&oacute;n est&aacute; en sabe como poner la matrices de A y b, junto con las de Aeq y beq, que eran necesarias para Linprog y Bintprog.</p><p>Haciendo pruebas:</p><p>-Si quitamos Aeq y beq, sigue saliendo 0.</p><p>-Si quitamos A y b sigue saliendo 0.</p><p>-Si igualamos b_L a b_U, teniendo en cuenta que b_U = [b;beq], nos da como resultado que no es fatible. Adem&aacute;s se salen 6 variables de rango.</p><p>&nbsp;</p><p>Leyendo la documentaci&oacute;n del manual deTOMLAB/CPLEX, no encuentro nada para solucionarlo.</p><p>Tambi&eacute;n me he leido el Manual de TOMLAB, de donde he sacado ejemplos para hacer pruebas.</p><p>Tambi&eacute;n he buscado cosas por Internet pero no logro encontrar nada.</p><p>Y en un intento desesperado de ayuda he mandado un email a Marcus , mi amigo de TOMLAB.</p><p>Ma&ntilde;ana ser&aacute; otro d&iacute;a.</p><p>Reuni&oacute;n con C&eacute;sar. A ver si me hecha un cable.</p><p>&nbsp;</p>]]></description><pubDate>Fri, 24 Oct 2008 00:27:00 +0000</pubDate></item><item><title>Ma&#xF1;ana otra reuni&#xF3;n</title><link>https://becacfl.blogia.com/2008/101602-manana-otra-reunion.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/101602-manana-otra-reunion.php</guid><description><![CDATA[<p>No entiendo por que no funciona.</p><p>Las llamadas se hacen bien, y el algoritmo sabemos que esta bien por que cuando ejecuto Linprog o Bintprog funciona perfectamente.</p><p>No lo entiendo.</p><p>A ver si ma&ntilde;ana me hecha una mano C&eacute;sar.</p><p>&nbsp;</p>]]></description><pubDate>Thu, 16 Oct 2008 20:50:00 +0000</pubDate></item><item><title>Avences de la reuni&#xF3;n</title><link>https://becacfl.blogia.com/2008/101601-avences-de-la-reunion.php</link><guid isPermaLink="true">https://becacfl.blogia.com/2008/101601-avences-de-la-reunion.php</guid><description><![CDATA[<p>Estos avances son de la reuni&oacute;n celebrada el dia 3 de octubre. No pude publicar antes por que realmente me iba mal internet.</p><p>- Ya el problema del Rardin con Bintprog y Linprog. Tanto en Matlab como en Cplex, pero siempre con las sentencias adecuadas.</p><p>Una vez que el Cplex esta activo, lo que hace es ejecutar Bintprog o Linprog bajo su propio software. Con esto lo que obtenemos es que el tiempo que tardaba en Bintprog se reduzca en mucho. Antes necesitaba casi 40 minutos. Ahora en un par de segundos ya lo tienes.</p><p>&nbsp;</p>]]></description><pubDate>Thu, 16 Oct 2008 19:33:00 +0000</pubDate></item></channel></rss>
