diff --git a/Chapters/Chapter4.tex b/Chapters/Chapter4.tex index c18d63b..d18a22a 100755 --- a/Chapters/Chapter4.tex +++ b/Chapters/Chapter4.tex @@ -82,6 +82,8 @@ \section{Implementación} Una vez se obtiene el listado de candidatos, es procesado mediante la función $get\_rcl$, la cual haciendo uso del valor de $\mu$, calculado como se mostró en el algoritmo \ref{alg:grasp} con el valor de $\alpha$, permite obtener la lista de candidatos restringida denominada en el algoritmo como $RCL$. A partir de este momento el siguiente paso es escoger de manera aleatoria un nodo de esta lista e incluirlo en el conjunto solución, eliminando de la lista $CL$ los nodos que no son adyacentes a este, ya que no formarían una solución factible. Esta operación es realizada hasta que la lista de candidatos esté vacía. +Obtenida esta solución preliminar, se aplica la búsqueda local para la mejora de la misma, mediante la función $apply\_ls$. En esta función en primer lugar se obtienen los vecinos de los nodos que forman parte de la solución y son ordenados de mayor a menor ratio. Cada nodo es añadido a la solución previa, comprobando si forma o no una nueva solución factible. Si no cumple con las restricciones, se eliminarán todos los nodos mediante una función de exclusión de nodos. Esta elimina todos los nodos que impiden que se forme solución. Una vez cumple con las restricciones, se añaden todos los nodos adyacentes con el fin de obtener un clique máximo.Esta solución parcial es añadida a un listado de la que se seleccionará la mejor opción una vez finalizado el procesamiento de todos los nodos. + Para mantener el código ordenado se ha implementado la clase GraphUtils, la cual contiene información necesaria y métodos útiles para el procesado de las instancias, así como la exportación a ficheros de tipo CSV\footnote{Es un tipo de ficheros de texto simple en el que se almacenan datos separados en columnas por comas o por punto y coma, y las filas por salto de línea.} de los resultados obtenidos. Con el fin de probar las diferentes funciones del proyecto se han escrito casos de prueba mediante la librería de Python unittest\footnote{https://docs.python.org/3/library/unittest.html}. diff --git a/main.ist b/main.ist index 9cece1b..0fab0a1 100644 --- a/main.ist +++ b/main.ist @@ -1,5 +1,5 @@ % makeindex style file created by the glossaries package -% for document 'main' on 2020-5-29 +% for document 'main' on 2020-6-1 actual '?' encap '|' level '!' diff --git a/main.pdf b/main.pdf index 48b6551..e61f5b9 100644 Binary files a/main.pdf and b/main.pdf differ