automatizacion del diseo de la fragmentacion vertical y ubicacin en ...
automatizacion del diseo de la fragmentacion vertical y ubicacin en ...
automatizacion del diseo de la fragmentacion vertical y ubicacin en ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
INSTITUTO TECNOLÓGICO<br />
DE CIUDAD MADERO<br />
DIVISIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN<br />
“ANÁLISIS DE LAS PROPIEDADES DEL PROBLEMA DE LA<br />
DISTRIBUCIÓN DE BASE DE DATOS Y SU INFLUENCIA EN EL<br />
DESEMPEÑO DE ALGORITMOS HEURÍSTICOS”<br />
TESIS<br />
Para obt<strong>en</strong>er el Grado <strong>de</strong>:<br />
MAESTRA EN CIENCIAS<br />
EN<br />
CIENCIAS DE LA COMPUTACIÓN<br />
Pres<strong>en</strong>ta:<br />
I.S.C. Norma Edith García Avalos<br />
Asesores:<br />
Dra. Laura Cruz Reyes<br />
Dr. Joaquín Pérez Ortega<br />
CD. MADERO, TAMPS. DICIEMBRE DE 2004
RESUMEN<br />
En trabajos previos se han <strong>de</strong>sarrol<strong>la</strong>do mo<strong><strong>de</strong>l</strong>os <strong>de</strong> optimización combinatoria para formu<strong>la</strong>r<br />
el problema <strong>de</strong> distribución <strong>de</strong> bases <strong>de</strong> datos, y para su solución se <strong>en</strong>contró que no existe un<br />
algoritmo que supere a los <strong>de</strong>más. Para aportar <strong>en</strong> esta dirección, <strong>la</strong> “Arquitectura <strong>de</strong><br />
Selección <strong>de</strong> Algoritmos” p<strong>la</strong>ntea <strong>la</strong> construcción <strong>de</strong> un mo<strong><strong>de</strong>l</strong>o <strong>de</strong> predicción, que permite <strong>la</strong><br />
selección <strong>de</strong> algoritmos, y <strong>de</strong>s<strong>de</strong> un punto <strong>de</strong> vista teórico marque directrices para <strong>en</strong>t<strong>en</strong><strong>de</strong>r el<br />
comportami<strong>en</strong>to <strong>de</strong> éstos mismos [Cruz04]. Por otra parte, no exist<strong>en</strong> herrami<strong>en</strong>tas analíticas<br />
a<strong>de</strong>cuadas para estudiar el <strong>de</strong>sempeño <strong>de</strong> algoritmos heurísticos, <strong>la</strong>s que exist<strong>en</strong> son <strong>de</strong> poca<br />
utilidad práctica llegando a ser tanto pesimistas como simples [McGeoch02]. Por lo anterior,<br />
esta investigación propone una “Arquitectura <strong>de</strong> Solución y Evaluación”, que sea <strong>de</strong> base <strong>en</strong><br />
<strong>la</strong> Arquitectura <strong>de</strong> selección, específicam<strong>en</strong>te para obt<strong>en</strong>er mejores soluciones.<br />
El módulo <strong>de</strong> solución y evaluación contribuye con métricas que facilitan el análisis <strong>de</strong><br />
algoritmos <strong>de</strong> solución. Para el análisis <strong>de</strong> <strong>de</strong>sempeño se introduce una métrica basada <strong>en</strong> el<br />
tiempo <strong>de</strong> procesami<strong>en</strong>to y calidad <strong>de</strong> solución. Para el análisis <strong>de</strong> dificultad <strong><strong>de</strong>l</strong> problema y su<br />
influ<strong>en</strong>cia <strong>en</strong> algoritmos heurísticos, proporciona el uso complem<strong>en</strong>tario <strong>de</strong> métricas <strong>de</strong><br />
superficie.<br />
Para <strong>la</strong> implem<strong>en</strong>tación <strong>de</strong> <strong>la</strong> Arquitectura <strong>de</strong> Solución y Evaluación, se <strong>de</strong>sarrol<strong>la</strong>ron<br />
herrami<strong>en</strong>tas analíticas, que por su g<strong>en</strong>eralidad, permitirían mejorar los resultados<br />
computacionales <strong>en</strong> <strong>la</strong> solución <strong>de</strong> otros problemas reales <strong>de</strong> optimización combinatoria<br />
c<strong>la</strong>sificados como NP-duros.<br />
A<strong>de</strong>más, se ha manifestado <strong>en</strong> <strong>la</strong> comunidad ci<strong>en</strong>tífica <strong>la</strong> necesidad <strong>de</strong> integrar <strong>en</strong> sistemas<br />
reales conocidos como “Arquitecturas”, difer<strong>en</strong>tes aspectos <strong>de</strong> intelig<strong>en</strong>cia que le permitan<br />
apr<strong>en</strong><strong>de</strong>r y utilizar el conocimi<strong>en</strong>to [Newell90]. Sin embargo, éste es un problema abierto <strong>de</strong><br />
<strong>la</strong> computación. Actualm<strong>en</strong>te <strong>la</strong> Arquitectura <strong>de</strong> Selección <strong>de</strong> Algoritmos posee características<br />
básicas <strong>de</strong> intelig<strong>en</strong>cia que están soportadas por el módulo propuesto; estas características<br />
podrían ser ext<strong>en</strong>didas incorporando retroalim<strong>en</strong>tación <strong><strong>de</strong>l</strong> análisis <strong>de</strong> algoritmos.
SUMMARY<br />
In previous works have <strong>de</strong>veloped combinatorial optimization mo<strong><strong>de</strong>l</strong>s for formu<strong>la</strong>ting the<br />
database distributed problem, and for its solution they found that don’t exist an algorithm<br />
that overcomes to the others. To contribute in this direction, the “Algorithms Selection<br />
Architecture”, proposes the construction of a mo<strong><strong>de</strong>l</strong> of prediction, which lets the<br />
Algorithms Selection, and from a theoretical point of view marks directives for<br />
un<strong>de</strong>rstanding the behavior from themselves [Cruz04]. On the other hand, don’t exist<br />
suitable analytic tools to study the performance of heuristic algorithms, those that exist are<br />
of little utility becoming as pessimist as simple [McGeoch02]. By the previous, this<br />
research proposes a “Solution and Evaluation Architecture”, that it serves of base to the<br />
Selection Architecture specifically to get better solutions.<br />
The module of Solution and Evaluation contributes with measures that facilitate the<br />
analysis of solution algorithms. For the performance analysis, it introduces a metric based<br />
in the time of processing and solution quality. For the difficult analysis of the problem and<br />
its influ<strong>en</strong>ce in heuristic algorithms, it supplies the use complem<strong>en</strong>tary of metrics of<br />
surface.<br />
For the implem<strong>en</strong>tation of the Solution and Evaluation Architecture, we <strong>de</strong>velop analytic<br />
tools, that by its g<strong>en</strong>erality, it would let to improve the computational results in the solution<br />
of other real combinatorial optimization problems c<strong>la</strong>ssified as NP-hard.<br />
Moreover, it has be<strong>en</strong> pronounced in the sci<strong>en</strong>tific community the necessity of integrating<br />
in real systems known as “Architectures”, differ<strong>en</strong>t aspects of intellig<strong>en</strong>ce that let it to learn<br />
and utilize the knowledge [Newell90]. However, this is an op<strong>en</strong> problem of the<br />
computation. Actually the Algorithms Selection Architecture have basic characteristics of<br />
intellig<strong>en</strong>ce that are supported by the proposed module; these characteristics could be<br />
ext<strong>en</strong><strong>de</strong>d incorporating feedback of the analysis of algorithms.
ÍNDICE<br />
Página<br />
LISTA DE TABLAS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v<br />
LISTA DE FIGURAS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi<br />
CAPÍTULO 1 INTRODUCCIÓN<br />
1.1 Motivaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
1.2 Descripción <strong><strong>de</strong>l</strong> Problema <strong>de</strong> Investigación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
1.3 Objetivo <strong>de</strong> <strong>la</strong> Tesis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
1.4 Contexto <strong>de</strong> <strong>la</strong> Investigación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
1.4.1 Problemas <strong>de</strong> Diseño <strong>de</strong> <strong>la</strong> Distribución. . . . . . . . . . . . . . . . . . . . . . . . 4<br />
1.4.2 Algoritmos <strong>de</strong> Solución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
1.4.3 Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
1.4.4 Arquitectura <strong>de</strong> Selección <strong>de</strong> Algoritmos <strong>de</strong> Solución. . . . . . . . . . . . . 8<br />
1.4.5 Contribuciones a <strong>la</strong> Arquitectura <strong>de</strong> Selección. . . . . . . . . . . . . . . . . . . 9<br />
1.5 Organización <strong><strong>de</strong>l</strong> Docum<strong>en</strong>to. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
CAPÍTULO 2 FUNDAMENTOS TEÓRICOS DEL DISEÑO DE DISTRIBUCIÓN<br />
2.1 Teoría <strong>de</strong> <strong>la</strong> Complejidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
2.1.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
2.1.2 Problemas <strong>de</strong> Optimización y Decisión. . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
2.1.3 Problemas NP-completo y NP-duro. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
2.2 El Problema <strong>de</strong> Distribución <strong>de</strong> Bases <strong>de</strong> Datos: FURD. . . . . . . . . . . . . . . . . . . . 14<br />
2.2.1 Descripción G<strong>en</strong>eral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
2.2.2 Mo<strong><strong>de</strong>l</strong>o Matemático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
2.2.3 Trabajos Previos sobre Algoritmos <strong>de</strong> Solución <strong>de</strong> FURD.. . . . . . . . . . 18<br />
2.3 El Problema <strong>de</strong> Distribución <strong>de</strong> Objetos <strong>en</strong> Cont<strong>en</strong>edores: Bin-Packing . . . . . . . 18<br />
2.3.1 Descripción G<strong>en</strong>eral. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
i
2.3.2 Mo<strong><strong>de</strong>l</strong>o Matemático. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
2.4 Re<strong>la</strong>ción <strong>en</strong>tre FURD y Bin-Packing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
CAPÍTULO 3 DESARROLLO DE ALGORITMOS DE SOLUCIÓN<br />
3.1 C<strong>la</strong>sificación <strong>de</strong> Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
3.2 Algoritmo Exacto <strong>de</strong> Ramificación y Acotami<strong>en</strong>to. . . . . . . . . . . . . . . . . . . . . . . . 26<br />
3.3 Aceptación por Umbral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
3.3.1 Descripción G<strong>en</strong>eral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
3.3.2 Descripción Algorítmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
3.3.3 Implem<strong>en</strong>tación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
3.4 Búsqueda Tabú. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
3.4.1 Descripción G<strong>en</strong>eral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
3.4.2 Descripción Algorítmica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />
3.4.3 Implem<strong>en</strong>tación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
3.5 Optimización <strong>de</strong> Colonia <strong>de</strong> Hormigas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
3.5.1 Descripción G<strong>en</strong>eral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
3.5.2 Descripción Algorítmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
3.5.3 Implem<strong>en</strong>tación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
3.6 Algoritmos Aproximados <strong>de</strong> Propósito Específico para Bin-Packing . . . . . . . . . 37<br />
3.6.1 Aspectos G<strong>en</strong>erales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
3.6.2 Primer Ajuste Decreci<strong>en</strong>te . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />
3.6.3 Mejor Ajuste Decreci<strong>en</strong>te . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
3.6.4 Apareami<strong>en</strong>to al Primer Ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
3.6.5 Ajuste Modificado Decreci<strong>en</strong>te. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
3.6.6 Apareami<strong>en</strong>to <strong><strong>de</strong>l</strong> Mejor Ajuste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />
CAPÍTULO 4 ANÁLISIS DE ALGORITMOS DE SOLUCIÓN<br />
4.1 Análisis <strong>de</strong> Desempeño. . . . . . .. . . . . . . . . . . . . .. . . . .. . . . . . . . . . . . . . . . . . . . 44<br />
4.1.1 Factores <strong>de</strong> Desempeño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
4.1.2 Revisión <strong>de</strong> Criterios <strong>de</strong> Desempeño . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />
ii
4.2 Análisis <strong>de</strong> Superficie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
4.2.1 Análisis <strong><strong>de</strong>l</strong> Espacio <strong>de</strong> Búsqueda Algorítmica . . . . . . . . . . . . . . . . . . 47<br />
4.2.2 Mo<strong><strong>de</strong>l</strong>o Matemático <strong>de</strong> Superficie <strong>de</strong> Aptitud. . . . . . . . . . . . . . . . . . . . 48<br />
4.2.3 Propieda<strong>de</strong>s y Métricas <strong>de</strong> Superficie. . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />
4.2.4 Función <strong>de</strong> Auto-corre<strong>la</strong>ción ( ρ ( 1)<br />
). . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />
4.2.5 Longitud <strong>de</strong> Auto-corre<strong>la</strong>ción ( λ ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
4.2.6 Corre<strong>la</strong>ción Distancia_Aptitud (γ ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
4.2.7 Coefici<strong>en</strong>te <strong>de</strong> Engaño ( sk<br />
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
4.2.8 Análisis Comparativo <strong>de</strong> Trabajos sobre Métricas <strong>de</strong> Superficie. . . . . 55<br />
4.3 Métricas Propuestas para el Análisis <strong>de</strong> Algoritmos. . . . . . . . . . . . . . . . . . . . . . . 56<br />
4.3.1 Métodos <strong>de</strong>rivados <strong><strong>de</strong>l</strong> Coefici<strong>en</strong>te <strong>de</strong> Engaño ( sk<br />
). . . . . . . . . . . . . . . 56<br />
2<br />
4.3.2 Coefici<strong>en</strong>te <strong>de</strong> Determinación ( γ ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />
4.3.3 Métrica <strong>de</strong> Desempeño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
CAPÍTULO 5 ARQUITECTURAS DE INTEGRACIÓN INTELIGENTE<br />
5.1 C<strong>la</strong>sificación G<strong>en</strong>eral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />
5.2 Características G<strong>en</strong>erales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />
5.2.1 Ambi<strong>en</strong>te y Organización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />
5.2.2 Capacida<strong>de</strong>s Intelectuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />
5.2.3 Propieda<strong>de</strong>s Específicas <strong><strong>de</strong>l</strong> Problema . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
5.3 Revisión <strong>de</strong> Trabajos Re<strong>la</strong>cionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />
5.4 Análisis Comparativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
5.5 Arquitectura <strong>de</strong> Solución <strong>de</strong> Casos y Evaluación <strong>de</strong> Algoritmos. . . . . . . . . . . . . 71<br />
5.5.1 Descripción G<strong>en</strong>eral <strong>de</strong> Arquitectura <strong>de</strong> Selección <strong>de</strong> Algoritmos <strong>de</strong><br />
Solución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />
5.5.2 Diagrama G<strong>en</strong>eral <strong><strong>de</strong>l</strong> módulo <strong>de</strong> Solución <strong>de</strong> Casos y Evaluación <strong>de</strong><br />
Algoritmos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />
iii
CAPÍTULO 6 RESULTADOS EXPERIMENTALES<br />
6.1 Condiciones G<strong>en</strong>erales <strong>de</strong> <strong>la</strong> Experim<strong>en</strong>tación . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />
6.1.1 Casos <strong>de</strong> Prueba Aleatorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />
6.1.2 Casos <strong>de</strong> Prueba Estándar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />
6.1.3 Ambi<strong>en</strong>te Operativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />
6.2 Experim<strong>en</strong>to 1: Mo<strong><strong>de</strong>l</strong>ado <strong><strong>de</strong>l</strong> Problema Bin-Packing . . . . . . . . . . . . . . . . . . . . . 79<br />
6.2.1 Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />
6.2.2 Procedimi<strong>en</strong>to G<strong>en</strong>eral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />
6.2.2.1 G<strong>en</strong>eración <strong><strong>de</strong>l</strong> Mo<strong><strong>de</strong>l</strong>o <strong>de</strong> Programación Lineal Entera <strong>de</strong> 79<br />
Bin-Packing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .<br />
6.2.2.2 Solución <strong><strong>de</strong>l</strong> Mo<strong><strong>de</strong>l</strong>o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />
6.2.3 Análisis <strong>de</strong> Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />
6.3 Experim<strong>en</strong>to 2: Desempeño <strong>de</strong> Algoritmos <strong>de</strong> Solución . . . . . . . . . . . . . . . . . . . 84<br />
6.3.1 Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />
6.3.2 Procedimi<strong>en</strong>to G<strong>en</strong>eral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />
6.3.3 Análisis <strong>de</strong> Resultados . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 84<br />
6.4 Experim<strong>en</strong>to 3: Análisis <strong>de</strong> Superficie . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . 87<br />
6.4.1 Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 87<br />
6.4.2 Procedimi<strong>en</strong>to G<strong>en</strong>eral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />
6.4.3 Análisis <strong>de</strong> Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />
CAPÍTULO 7 CONCLUSIONES Y TRABAJOS FUTUROS<br />
7.1 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90<br />
7.2 Trabajos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />
REFERENCIAS Y BIBLIOGRAFÍA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .<br />
93<br />
LISTA DE TABLAS<br />
iv
Página<br />
2.1 Avances algorítmicos aplicados al diseño <strong>de</strong> <strong>la</strong> distribución <strong>de</strong> base <strong>de</strong><br />
datos : FURD<br />
18<br />
4.1 Tab<strong>la</strong> comparativa <strong>de</strong> métricas <strong>de</strong> influ<strong>en</strong>cia 55<br />
5.1 Tipos <strong>de</strong> organización <strong><strong>de</strong>l</strong> diseño <strong>de</strong> una arquitectura intelig<strong>en</strong>te 63<br />
5.2 Tipos <strong>de</strong> propieda<strong>de</strong>s <strong>de</strong> ambi<strong>en</strong>te <strong>de</strong> una arquitectura 64<br />
5.3 Capacida<strong>de</strong>s Intelectuales <strong>de</strong> <strong>la</strong>s Arquitecturas 64<br />
5.4 Tipos <strong>de</strong> repres<strong>en</strong>tación <strong><strong>de</strong>l</strong> conocimi<strong>en</strong>to <strong>de</strong> <strong>la</strong> Arquitectura Intelig<strong>en</strong>te 66<br />
5.5 Tipos <strong>de</strong> Apr<strong>en</strong>dizaje <strong>de</strong> una Arquitectura Intelig<strong>en</strong>te 67<br />
5.6 Tipos <strong>de</strong> Operación <strong>de</strong> una Arquitectura Intelig<strong>en</strong>te 67<br />
5.7 Tipos <strong>de</strong> <strong>de</strong>sempeño <strong>de</strong> una Arquitectura Intelig<strong>en</strong>te 67<br />
6.1 Ejemplo <strong>de</strong> casos aleatorios <strong>de</strong> una muestra 78<br />
6.2 Ejemplo <strong>de</strong> casos estándar <strong>de</strong> una muestra 78<br />
6.3 Resultados <strong>de</strong> casos estándar resueltos por LINDO 83<br />
6.4 Resultados <strong>de</strong> casos aleatorios resueltos por LINDO 83<br />
6.4 Resultados <strong>de</strong> casos estándar aplicando métricas <strong>de</strong> superficie 88<br />
LISTA DE FIGURAS<br />
v
Página<br />
1.1 Ejemplo <strong>de</strong> un diseño <strong>de</strong> distribución 5<br />
1.2 Esquema g<strong>en</strong>eral <strong>de</strong> Arquitectura <strong>de</strong> selección <strong>de</strong> algoritmos <strong>de</strong> 8<br />
solución<br />
2.1 Ejemplo <strong>de</strong> distribución <strong>de</strong> objetos a cont<strong>en</strong>edores 19<br />
3.1 C<strong>la</strong>sificación <strong>de</strong> Algoritmos <strong>de</strong> Solución por mecanismo <strong>de</strong> paro 25<br />
3.2 Algoritmo <strong>de</strong> Aceptación por Umbral 28<br />
3.3 Algoritmo <strong>de</strong> Búsqueda Tabú 30<br />
3.4 Algoritmo <strong>de</strong> Optimización <strong>de</strong> Colonia <strong>de</strong> Hormigas 33<br />
3.5 Algoritmo <strong>de</strong> G<strong>en</strong>eración <strong>de</strong> Hormigas y Actividad 34<br />
3.6 Algoritmo <strong>de</strong> Evaporación <strong>de</strong> Feromona 36<br />
3.7 Algoritmo First Fit Decreasing, FFD 38<br />
3.8 Algoritmo Best Fit Decreasing, BFD 39<br />
3.9 Algoritmo Match to First Fit, MFF 40<br />
3.10 Algoritmo Modified Best Fit Decreasing, MBFD 41<br />
3.11 Algoritmo Match to Best Fit, MBF 42<br />
4.1 Repres<strong>en</strong>tación <strong>de</strong> Superficies <strong>de</strong> Aptitu<strong>de</strong>s 47<br />
4.2 Repres<strong>en</strong>tación <strong>de</strong> una superficie con óptimos locales 49<br />
4.3 Repres<strong>en</strong>tación <strong>de</strong> una superficie con cu<strong>en</strong>ca 49<br />
4.4 Repres<strong>en</strong>tación <strong>de</strong> una superficie rugosa y sus principales elem<strong>en</strong>tos 49<br />
4.5 Análisis <strong><strong>de</strong>l</strong> coefici<strong>en</strong>te <strong>de</strong> <strong>en</strong>gaño exterior 57<br />
4.6 Análisis <strong><strong>de</strong>l</strong> coefici<strong>en</strong>te <strong>de</strong> <strong>en</strong>gaño interior por ejecución 58<br />
5.1 Arquitectura <strong><strong>de</strong>l</strong> proyecto CAPC 68<br />
5.2 Arquitectura <strong><strong>de</strong>l</strong> proyecto PESKI 69<br />
5.3 Arquitectura PRODIGY 70<br />
5.4 Arquitectura <strong>de</strong> selección <strong>de</strong> algoritmos <strong>de</strong> solución 72<br />
5.5 Arquitectura <strong>de</strong> Solución <strong>de</strong> Casos y Evaluación <strong>de</strong> Algoritmos 74<br />
5.6 Procedimi<strong>en</strong>to g<strong>en</strong>eral <strong>de</strong> Evaluación <strong>de</strong> Algoritmos basado <strong>en</strong><br />
métricas <strong>de</strong> <strong>de</strong>sempeño<br />
75<br />
vi
6.1 Algoritmo G<strong>en</strong>eral <strong>de</strong> Solución <strong>de</strong> Bin-Packing mediante LINDO 79<br />
6.2<br />
Mo<strong><strong>de</strong>l</strong>o G<strong>en</strong>eral <strong>de</strong> PLE que resuelve un caso <strong><strong>de</strong>l</strong> problema <strong>de</strong> Bin-<br />
Packing 80<br />
6.3 Caso <strong>de</strong> Bin-Packing 81<br />
6.4 Mo<strong><strong>de</strong>l</strong>o <strong>de</strong> PLE para el caso <strong>de</strong> Bin-Packing mostrado <strong>en</strong> <strong>la</strong> Figura 6.3 81<br />
6.5 Región <strong>de</strong> D<strong>en</strong>ominación Algoritmos-Casos Aleatorios 85<br />
6.6 Región <strong>de</strong> D<strong>en</strong>ominación Algoritmos-Casos Estándar 85<br />
6.7<br />
6.8<br />
6.9<br />
6.10<br />
Porc<strong>en</strong>tajes <strong>de</strong> dominación <strong>de</strong> los algoritmos <strong>de</strong> solución –casos<br />
estándar<br />
86<br />
Porc<strong>en</strong>tajes <strong>de</strong> dominación <strong>de</strong> los algoritmos <strong>de</strong> solución –casos<br />
aleatorios<br />
86<br />
Análisis <strong>de</strong> factores métricas superficie-casos estándar-algoritmo<br />
Aceptación por Umbral<br />
88<br />
Análisis <strong>de</strong> factores métricas superficie-casos estándar-algoritmo<br />
89<br />
Búsqueda Tabú<br />
vii
Capítulo 1<br />
Introducción<br />
1<br />
Introducción<br />
En esta investigación se pres<strong>en</strong>ta una “Arquitectura <strong>de</strong> Solución y Evaluación” aplicada al<br />
problema <strong>de</strong> distribución <strong>de</strong> objetos a cont<strong>en</strong>edores (Bin-Packing, <strong>en</strong> término inglés). La<br />
evaluación proporciona información <strong><strong>de</strong>l</strong> comportami<strong>en</strong>to <strong>de</strong> algoritmos heurísticos <strong>en</strong> <strong>la</strong><br />
solución <strong>de</strong> casos <strong><strong>de</strong>l</strong> problema, mediante métricas estadísticas <strong>de</strong> <strong>de</strong>sempeño y superficie.<br />
Esta arquitectura forma parte <strong>de</strong> una estructura mayor l<strong>la</strong>mada “Arquitectura <strong>de</strong> Selección <strong>de</strong><br />
Algoritmos <strong>de</strong> Solución” misma que permite para un caso dado <strong>de</strong> un problema <strong>de</strong><br />
optimización combinatoria se resuelva por su mejor opción <strong>de</strong> algoritmo heurístico [Cruz04].<br />
En <strong>la</strong>s secciones <strong>de</strong> este capítulo se <strong>de</strong>scrib<strong>en</strong> los motivos que llevaron a esta investigación, así<br />
como <strong>la</strong> <strong>de</strong>finición <strong><strong>de</strong>l</strong> problema. Se <strong>de</strong>scribe los objetivos que se p<strong>la</strong>ntearon alcanzar, y se<br />
explica el contexto <strong>en</strong> el que se <strong>de</strong>sarrolló esta investigación justificando <strong>la</strong> complejidad que<br />
pres<strong>en</strong>ta el mo<strong><strong>de</strong>l</strong>ado <strong><strong>de</strong>l</strong> problema <strong>de</strong> distribución <strong>de</strong> base <strong>de</strong> datos, y su re<strong>la</strong>ción con <strong>la</strong><br />
distribución <strong>de</strong> objetos a cont<strong>en</strong>edores.<br />
1
Capítulo 1<br />
Introducción<br />
Posteriorm<strong>en</strong>te se pres<strong>en</strong>ta un panorama <strong>de</strong> los algoritmos heurísticos <strong>de</strong>sarrol<strong>la</strong>dos, una breve<br />
<strong>de</strong>scripción <strong>de</strong> <strong>la</strong> Arquitectura <strong>de</strong> Selección <strong>de</strong> Algoritmos; así como, <strong>la</strong> contribución <strong>de</strong> esta<br />
investigación <strong>en</strong> dicha arquitectura, y se finaliza con una breve <strong>de</strong>scripción <strong>de</strong> cada capítulo.<br />
1.1 Motivaciones<br />
En trabajos previos se han <strong>de</strong>sarrol<strong>la</strong>do mo<strong><strong>de</strong>l</strong>os <strong>de</strong> optimización combinatoria para formu<strong>la</strong>r<br />
el problema <strong>de</strong> distribución <strong>de</strong> bases <strong>de</strong> datos, y para su solución se <strong>en</strong>contró que no existe un<br />
algoritmo que supere a los <strong>de</strong>más. Esto condujo a <strong>la</strong> selección <strong>de</strong> algoritmos, el cual es un<br />
problema abierto <strong>de</strong> <strong>la</strong> computación [An<strong>de</strong>rson03]. Para aportar <strong>en</strong> esta dirección, <strong>la</strong><br />
Arquitectura <strong>de</strong> Selección <strong>de</strong> Algoritmos p<strong>la</strong>ntea <strong>la</strong> construcción <strong>de</strong> un mo<strong><strong>de</strong>l</strong>o <strong>de</strong> predicción,<br />
que permite <strong>la</strong> selección <strong>de</strong> algoritmos, y <strong>de</strong>s<strong>de</strong> <strong>de</strong> un punto <strong>de</strong> vista teórico establezca<br />
directrices para <strong>en</strong>t<strong>en</strong><strong>de</strong>r el comportami<strong>en</strong>to <strong>de</strong> éstos mismos [Cruz04].<br />
Por otra parte, no exist<strong>en</strong> herrami<strong>en</strong>tas analíticas a<strong>de</strong>cuadas para estudiar el <strong>de</strong>sempeño <strong>de</strong><br />
algoritmos heurísticos, <strong>la</strong>s que exist<strong>en</strong> son <strong>de</strong> poca utilidad práctica llegando a ser tanto<br />
pesimistas como simples [McGeoch02].<br />
Por lo anterior, esta investigación propone una “Arquitectura <strong>de</strong> Solución y Evaluación”, que<br />
sea base a <strong>la</strong> “Arquitectura <strong>de</strong> selección <strong>de</strong> algoritmos <strong>de</strong> solución”, específicam<strong>en</strong>te para<br />
obt<strong>en</strong>er mejores soluciones <strong><strong>de</strong>l</strong> problema <strong>de</strong> optimización combinatoria: Bin-Packing. Para <strong>la</strong><br />
implem<strong>en</strong>tación <strong>de</strong> <strong>la</strong> Arquitectura <strong>de</strong> Solución y Evaluación, se <strong>de</strong>sarrol<strong>la</strong>ron herrami<strong>en</strong>tas<br />
analíticas, que por su g<strong>en</strong>eralidad, permit<strong>en</strong> mejorar los resultados computacionales <strong>en</strong> <strong>la</strong><br />
solución <strong>de</strong> otros problemas reales <strong>de</strong> optimización combinatoria c<strong>la</strong>sificados como NP-duros.<br />
En el ámbito ci<strong>en</strong>tífico se consi<strong>de</strong>ra a los sigui<strong>en</strong>tes problemas como NP-duros: distribución<br />
<strong>de</strong> objetos <strong>de</strong> datos <strong>en</strong> bases <strong>de</strong> datos distribuidas, distribución <strong>de</strong> objetos a cont<strong>en</strong>edores,<br />
asignación <strong>de</strong> tareas a máquinas <strong>de</strong>ntro <strong>de</strong> líneas <strong>de</strong> producción gran<strong>de</strong>s y programación <strong>de</strong><br />
horarios <strong>de</strong> universida<strong>de</strong>s, los cuales que por su complejidad requier<strong>en</strong> algoritmos <strong>de</strong> solución<br />
heurística.<br />
2
Capítulo 1<br />
Introducción<br />
1.2 Descripción <strong><strong>de</strong>l</strong> Problema <strong>de</strong> Investigación<br />
La construcción <strong>de</strong> mo<strong><strong>de</strong>l</strong>os <strong>de</strong> predicción <strong><strong>de</strong>l</strong> <strong>de</strong>sempeño algorítmico es un problema abierto<br />
<strong>de</strong> <strong>la</strong> computación. Los esfuerzos <strong>de</strong> investigación han proporcionado resultados <strong>de</strong> poca<br />
utilidad práctica [An<strong>de</strong>rson03]. Para aportar <strong>en</strong> esta dirección, <strong>la</strong> Arquitectura <strong>de</strong> Selección <strong>de</strong><br />
Algoritmos <strong>de</strong> Solución propone una metodología para construir este tipo <strong>de</strong> mo<strong><strong>de</strong>l</strong>os, que<br />
permit<strong>en</strong> <strong>de</strong> manera automática elegir el algoritmo más a<strong>de</strong>cuado para un caso dado <strong>de</strong> un<br />
problema <strong>de</strong> optimización [Cruz04].<br />
Una etapa modu<strong>la</strong>r <strong>de</strong> <strong>la</strong> metodología es <strong>la</strong> Solución <strong>de</strong> Casos y Evaluación <strong>de</strong> Algoritmos. En<br />
esta etapa se requiere caracterizar a los algoritmos <strong>de</strong> manera que posibilite, <strong>en</strong>tre otras cosas;<br />
el refinami<strong>en</strong>to <strong><strong>de</strong>l</strong> apr<strong>en</strong>dizaje y rediseño <strong>de</strong> los algoritmos analizados. En esta tesis se aborda<br />
el problema <strong>de</strong> caracterización <strong>de</strong> algoritmos mediante métricas estadísticas. El problema y <strong>la</strong><br />
hipótesis se <strong>de</strong>fin<strong>en</strong> como sigue:<br />
Problema: Dado un conjunto C = { c c c } <strong>de</strong> casos <strong>de</strong> un problema P y un conjunto<br />
{ 1 2<br />
A a , a ,..., an}<br />
, ,...,<br />
n<br />
1 2<br />
= <strong>de</strong> algoritmos <strong>de</strong> solución heurística, <strong>de</strong>terminar un conjunto<br />
{ 1 2<br />
= métricas estadísticas tal que cada métrica m 1 ≤i<br />
≤n, proporcione<br />
M m , m ,..., mn}<br />
una magnitud cuantificativa <strong><strong>de</strong>l</strong> comportami<strong>en</strong>to <strong>de</strong> cada a 1 ≤i<br />
≤ n respecto a C .<br />
i<br />
i<br />
Hipótesis: Para una muestra <strong>de</strong> casos <strong><strong>de</strong>l</strong> problema distribución <strong>de</strong> objetos a cont<strong>en</strong>edores,<br />
resueltos con un conjunto <strong>de</strong> algoritmos heurísticos disponibles; es posible obt<strong>en</strong>er<br />
un conjunto <strong>de</strong> métricas estadísticas, que permita caracterizar el comportami<strong>en</strong>to<br />
<strong>de</strong> los algoritmos <strong>de</strong> solución, y sea <strong>de</strong> utilidad <strong>en</strong> el proceso <strong>de</strong> selección <strong>de</strong><br />
algoritmos.<br />
1.3 Objetivo <strong>de</strong> <strong>la</strong> Tesis<br />
El objetivo principal <strong>de</strong> esta tesis es <strong>de</strong>sarrol<strong>la</strong>r tecnología; que permite obt<strong>en</strong>er mejores<br />
soluciones <strong><strong>de</strong>l</strong> problema <strong>de</strong> distribución <strong>de</strong> objetos a cont<strong>en</strong>edores, mediante <strong>la</strong> aplicación<br />
3
Capítulo 1<br />
Introducción<br />
intelig<strong>en</strong>te <strong>de</strong> algoritmos <strong>de</strong> solución específicos <strong><strong>de</strong>l</strong> mo<strong><strong>de</strong>l</strong>o como <strong>de</strong> propósito g<strong>en</strong>eral. De<br />
éste se <strong>de</strong>rivan los sigui<strong>en</strong>tes objetivos específicos:<br />
a) Diseñar una Arquitectura <strong>de</strong> Solución <strong>de</strong> Casos y Evaluación <strong>de</strong> Algoritmos.<br />
b) Desarrol<strong>la</strong>r un conjunto <strong>de</strong> algoritmos <strong>de</strong> solución <strong>de</strong> casos <strong>de</strong> un problema <strong>de</strong><br />
optimización combinatoria.<br />
c) Diseñar métricas estadísticas <strong>de</strong> caracterización <strong>de</strong> algoritmos.<br />
d) Integrar los productos anteriores <strong>en</strong> un módulo <strong>de</strong> solución y evaluación <strong>de</strong> <strong>la</strong> Arquitectura<br />
<strong>de</strong> Selección <strong>de</strong> Algoritmos [Cruz04].<br />
1.4 Contexto <strong>de</strong> <strong>la</strong> Investigación<br />
Este proyecto g<strong>en</strong>eral se <strong>de</strong>riva <strong>de</strong> un conv<strong>en</strong>io <strong>de</strong> participación <strong>en</strong>tre el C<strong>en</strong>tro Nacional De<br />
Investigación y <strong>de</strong>sarrollo tecnológico (CENIDET) y el Instituto Tecnológico <strong>de</strong> Cuidad<br />
Ma<strong>de</strong>ro (ITCM). En este último, el proyecto ti<strong>en</strong>e lugar <strong>de</strong>ntro <strong>de</strong> <strong>la</strong> línea <strong>de</strong> investigación<br />
“Optimización Intelig<strong>en</strong>te”, <strong>en</strong> particu<strong>la</strong>r <strong>en</strong> el área <strong>de</strong> bases <strong>de</strong> datos distribuidas, <strong>la</strong> cual<br />
actualm<strong>en</strong>te, esta ori<strong>en</strong>tada al mo<strong><strong>de</strong>l</strong>ado <strong><strong>de</strong>l</strong> diseño <strong>de</strong> <strong>la</strong> distribución <strong>de</strong> bases <strong>de</strong> datos y su<br />
solución con algoritmos heurísticos.<br />
En esta sección se <strong>de</strong>scribe el problema <strong>de</strong> distribución <strong>de</strong> bases <strong>de</strong> datos, el problema <strong>de</strong><br />
distribución <strong>de</strong> objetos <strong>en</strong> cont<strong>en</strong>edores, así como <strong>la</strong> re<strong>la</strong>ción <strong>de</strong> ambos; a<strong>de</strong>más se<br />
proporciona un panorama g<strong>en</strong>eral <strong>de</strong> los algoritmos <strong>de</strong> solución heurística <strong>de</strong>sarrol<strong>la</strong>dos para<br />
esta investigación, una breve <strong>de</strong>scripción <strong>de</strong> <strong>la</strong> Arquitectura <strong>de</strong> Selección <strong>de</strong> Algoritmos <strong>de</strong><br />
Solución y <strong>la</strong> contribución a <strong>la</strong> misma.<br />
1.4.1 Problemas <strong>de</strong> Diseño <strong>de</strong> <strong>la</strong> Distribución<br />
Distribución <strong>de</strong> Base <strong>de</strong> Datos<br />
La figura 1.1 muestra un ejemplo s<strong>en</strong>cillo <strong>de</strong> diseño <strong>de</strong> distribución <strong>de</strong> bases <strong>de</strong> datos<br />
distribuidas. En el<strong>la</strong> se repres<strong>en</strong>ta <strong>la</strong> red <strong>de</strong> comunicaciones para computadoras que permite a<br />
un conjunto <strong>de</strong> nodos estar interconectados. En este caso los nodos se i<strong>de</strong>ntifican con <strong>la</strong> letra<br />
4
Capítulo 1<br />
Introducción<br />
s i , <strong>la</strong>s aplicaciones se i<strong>de</strong>ntifican con <strong>la</strong> letra q i , finalm<strong>en</strong>te los fragm<strong>en</strong>tos <strong>en</strong> que se divi<strong>de</strong> una<br />
re<strong>la</strong>ción se i<strong>de</strong>ntifican con <strong>la</strong> letra f i . La ubicación optimizada <strong>de</strong> estos fragm<strong>en</strong>tos minimiza<br />
los costos <strong>de</strong> operación <strong><strong>de</strong>l</strong> sistema distribuido.<br />
s s 1<br />
1<br />
s f<br />
s 4 5 s4 4<br />
s s 3<br />
3 f 1<br />
s f f 5<br />
3<br />
4<br />
RED<br />
q s s 2<br />
2<br />
f 2 f 4 2<br />
2<br />
s 3 f 1<br />
Figura 1.1 Ejemplo <strong>de</strong> un diseño <strong>de</strong> distribución<br />
q 3<br />
3<br />
q 1<br />
1<br />
Tradicionalm<strong>en</strong>te, se ha consi<strong>de</strong>rado que el diseño <strong>de</strong> <strong>la</strong> distribución consta <strong>de</strong> dos fases<br />
consecutivas: fragm<strong>en</strong>tación y ubicación. Contrario a esta cre<strong>en</strong>cia muy difundida, se ha<br />
mostrado que es más s<strong>en</strong>cillo combinar ambas fases [Pérez99, Pérez00b]. Para ello se formu<strong>la</strong><br />
un mo<strong><strong>de</strong>l</strong>o matemático <strong>de</strong>nominado FURD: Fragm<strong>en</strong>tación, Ubicación y Reubicación <strong>de</strong><br />
Datos (Distribution, Fragm<strong>en</strong>tation, Allocation and Reallocation, DFAR sus sig<strong>la</strong>s <strong>en</strong> inglés),<br />
que integra dos fases, y se resuelve usando métodos heurísticos. En esta tesis se <strong>de</strong>scribe al<br />
mo<strong><strong>de</strong>l</strong>o FURD con distribución replicada. Una <strong>de</strong>scripción más <strong>de</strong>tal<strong>la</strong>da se pue<strong>de</strong> <strong>en</strong>contrar<br />
<strong>en</strong> [Pérez03a, Pérez03b, Pérez03c].<br />
En investigaciones anteriores <strong>de</strong>mostraron que el problema FURD es una g<strong>en</strong>eralización <strong><strong>de</strong>l</strong><br />
problema Bin-Packing [Cruz99, Pérez00a]. Para ello, una versión simplificada <strong>de</strong> FURD fue<br />
reducida a Bin-Packing; y a su vez, Bin-Packing a FURD. Concluy<strong>en</strong>do, que al resolver Bin-<br />
Packing, se está resolvi<strong>en</strong>do un subconjunto <strong>de</strong> problemas <strong>de</strong> <strong>la</strong> distribución <strong>de</strong> bases <strong>de</strong> datos<br />
<strong>de</strong>bido a <strong>la</strong> re<strong>la</strong>ción <strong>de</strong> equival<strong>en</strong>cia <strong>en</strong> <strong>la</strong> complejidad <strong>de</strong> los problemas.<br />
Sin embargo, durante el avance <strong>de</strong> [Cruz04], se <strong>de</strong>sarrol<strong>la</strong>ron métodos heurísticos para <strong>la</strong><br />
solución <strong>de</strong> FURD [Pérez03d, Pérez04a], y al realizar un análisis preliminar se <strong>de</strong>terminó lo<br />
impráctico <strong>de</strong> realizar una experim<strong>en</strong>tación con 150 casos medianos, 7 algoritmos heurísticos<br />
5
Capítulo 1<br />
Introducción<br />
disponibles, y 30 ejecuciones <strong>de</strong> cada algoritmo con cada caso. En estas condiciones, se<br />
estimo que <strong>la</strong> experim<strong>en</strong>tación tomaría aproximadam<strong>en</strong>te 17 años; concluy<strong>en</strong>do que resultaba<br />
prohibitivo el tiempo <strong>de</strong> procesami<strong>en</strong>to requerido para <strong>la</strong> terminación <strong><strong>de</strong>l</strong> proyecto. Por lo<br />
tanto, para motivos <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> esta investigación, se <strong>de</strong>ci<strong>de</strong> utilizar el problema Bin-<br />
Packing que a continuación se <strong>de</strong>scribe.<br />
Distribución <strong>de</strong> Objetos a Cont<strong>en</strong>edores<br />
Bin-Packing es un problema clásico <strong>de</strong> optimización combinatoria NP-duro. En <strong>la</strong> versión<br />
discreta <strong>de</strong> una dim<strong>en</strong>sión existe un número ilimitado <strong>de</strong> cont<strong>en</strong>edores cuya capacidad es un<br />
<strong>en</strong>tero<br />
c , número <strong>de</strong> objetos es n , tamaño <strong>de</strong> cada objeto es s , don<strong>de</strong> 0 i n y<br />
[Coffman02, Baase91].<br />
i<br />
≤ ≤ 0 ≤ si<br />
≤ c .<br />
El objetivo es <strong>de</strong>terminar el m<strong>en</strong>or número <strong>de</strong> cont<strong>en</strong>edores m <strong>en</strong> los cuales todos los objetos<br />
pue<strong>de</strong>n ser distribuidos. La expresión 1.1 <strong>en</strong>uncia este problema.<br />
Dados<br />
n = número <strong>de</strong> objetos a distribuir<br />
c = capacidad <strong><strong>de</strong>l</strong> cont<strong>en</strong>edor<br />
L = secu<strong>en</strong>cia <strong>de</strong> n objetos<br />
s i = tamaño <strong>de</strong> cada objeto<br />
<strong>en</strong>contrar una partición <strong>de</strong> L mínima, L =B 1 ∪ B 2 ∪ ..., ∪B m tal que <strong>en</strong> cada<br />
conjunto B j <strong>la</strong> sumatoria <strong><strong>de</strong>l</strong> tamaño <strong>de</strong> cada objeto s i <strong>en</strong> B j no exceda c:<br />
(1.1)<br />
∑ s ≤ c ∀j, 1 ≤ j ≤ m.<br />
siε<br />
Bj<br />
i<br />
1.4.2 Algoritmos <strong>de</strong> Solución<br />
Cuando se ti<strong>en</strong>e un problema c<strong>la</strong>sificado como NP-duro y se <strong>de</strong>sea resolver un caso gran<strong>de</strong> <strong><strong>de</strong>l</strong><br />
mismo, una serie <strong>de</strong> métodos <strong>de</strong>nominados heurísticos permit<strong>en</strong> obt<strong>en</strong>er “bu<strong>en</strong>as soluciones”,<br />
aunque no garantizan una solución óptima global.<br />
6
Capítulo 1<br />
Introducción<br />
Los algoritmos heurísticos usan estrategias <strong>de</strong>terministas y no <strong>de</strong>terministas para obt<strong>en</strong>er<br />
soluciones sub-óptimas con m<strong>en</strong>os esfuerzo computacional que probar todo el espacio <strong>de</strong><br />
solución. Los algoritmos con estrategias <strong>de</strong>terministas, siempre sigu<strong>en</strong> <strong>la</strong> misma ruta para<br />
llegar a <strong>la</strong> solución. Por esta razón, obti<strong>en</strong><strong>en</strong> <strong>la</strong> misma solución <strong>en</strong> difer<strong>en</strong>tes ejecuciones. Al<br />
contrario, los algoritmos no-<strong>de</strong>terministas, g<strong>en</strong>eralm<strong>en</strong>te no obti<strong>en</strong><strong>en</strong> <strong>la</strong> misma solución <strong>en</strong><br />
difer<strong>en</strong>tes ejecuciones, es <strong>de</strong>cir, son métodos g<strong>en</strong>erales basados <strong>en</strong> búsqueda por <strong>en</strong>tornos, es<br />
<strong>de</strong>cir part<strong>en</strong> <strong>de</strong> una solución inicial factible y mediante alteraciones <strong>de</strong> esa solución, van<br />
pasando a otras soluciones factibles <strong>de</strong> su <strong>en</strong>torno. Para <strong>la</strong> terminación <strong><strong>de</strong>l</strong> proceso se sigue<br />
algún mecanismo <strong>de</strong> paro, dando como resultado <strong>la</strong> mejor solución visitada. En particu<strong>la</strong>r,<br />
aplican estrategias intelig<strong>en</strong>tes y aleatorias para evitar caer <strong>en</strong> mínimos locales.<br />
Para propósitos <strong>de</strong> esta investigación, se <strong>de</strong>sarrol<strong>la</strong>ron algoritmos <strong>de</strong> solución heurística<br />
<strong>de</strong>terministas y no-<strong>de</strong>terministas, <strong>la</strong> <strong>de</strong>scripción <strong>de</strong>tal<strong>la</strong>da <strong>de</strong> éstos se localiza <strong>en</strong> el Capítulo 3:<br />
a) Algoritmos Heurísticos Deterministas Específicos para el Problema Bin-Packing: Primer<br />
Ajuste Decreci<strong>en</strong>te, Mejor Ajuste Decreci<strong>en</strong>te, Apareami<strong>en</strong>to al Primer Ajuste,<br />
Apareami<strong>en</strong>to <strong><strong>de</strong>l</strong> Mejor Ajuste y Ajuste Modificado Decreci<strong>en</strong>te.<br />
b) Algoritmos Heurísticos No-Deterministas: Aceptación por Umbral, Búsqueda Tabú y<br />
Optimización Colonia <strong>de</strong> Hormigas.<br />
1.4.3 Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
El primer análisis que se realiza sobre los algoritmos <strong>de</strong> solución, su base es el mo<strong><strong>de</strong>l</strong>o <strong>de</strong><br />
Superficie <strong>de</strong> Aptitu<strong>de</strong>s, que ti<strong>en</strong>e como propósito explorar el espacio <strong>de</strong> búsqueda<br />
algorítmica, con <strong>la</strong> ayuda <strong>de</strong> métricas estadísticas específicas <strong><strong>de</strong>l</strong> mo<strong><strong>de</strong>l</strong>o; dichas métricas<br />
proporcionan información sobre <strong>la</strong> influ<strong>en</strong>cia <strong><strong>de</strong>l</strong> problema <strong>en</strong> el comportami<strong>en</strong>to <strong><strong>de</strong>l</strong><br />
algoritmo: rugosidad, número <strong>de</strong> óptimos locales, distribución <strong><strong>de</strong>l</strong> óptimo local, topología <strong>de</strong><br />
<strong>la</strong>s cu<strong>en</strong>cas <strong>de</strong> atracción <strong><strong>de</strong>l</strong> óptimo local, <strong>en</strong>tre otros.<br />
En un segundo análisis, se evalúa el <strong>de</strong>sempeño algorítmico, bajo el criterio <strong>de</strong> mejor calidad<br />
m<strong>en</strong>or tiempo <strong>de</strong> ejecución, <strong>de</strong>terminan el mejor algoritmo <strong>de</strong> solución <strong>de</strong> un caso<br />
7
Capítulo 1<br />
Introducción<br />
proporcionado. En a<strong><strong>de</strong>l</strong>ante, l<strong>la</strong>maremos algoritmo campeón, al que mejor resolvió un caso<br />
bajo los criterios <strong>de</strong> calidad y tiempo m<strong>en</strong>cionados.<br />
1.4.4 Arquitectura <strong>de</strong> Selección <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
En <strong>la</strong> figura 1.2 se pres<strong>en</strong>ta un esquema g<strong>en</strong>eral <strong>de</strong> <strong>la</strong> Arquitectura <strong>de</strong> Selección <strong>de</strong><br />
Algoritmos, que permite visualizar tres aspectos importantes: ambi<strong>en</strong>te, <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to y<br />
predicción.<br />
La función <strong><strong>de</strong>l</strong> ambi<strong>en</strong>te es proporcionar <strong>la</strong> base <strong>de</strong> datos que alim<strong>en</strong>ta al proceso <strong>de</strong><br />
<strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to, los datos son g<strong>en</strong>erados por dos procesos internos:<br />
a) Caracterización <strong><strong>de</strong>l</strong> Problema: Transforma los parámetros <strong>de</strong> un caso nuevo <strong>en</strong><br />
indicadores <strong>de</strong> <strong>la</strong>s características críticas <strong><strong>de</strong>l</strong> problema.<br />
b) Caracterización <strong>de</strong> Algoritmos: Constituye el módulo <strong>de</strong> “Solución y Evaluación”,<br />
el cual resuelve una <strong>en</strong>trada con un conjunto <strong>de</strong> algoritmos <strong>de</strong> solución disponibles,<br />
proporcionando medidas <strong><strong>de</strong>l</strong> comportami<strong>en</strong>to algorítmico.<br />
Figura 1.2 Esquema g<strong>en</strong>eral <strong>de</strong> Arquitectura <strong>de</strong> selección <strong>de</strong> algoritmos <strong>de</strong> solución<br />
El objetivo <strong><strong>de</strong>l</strong> proceso <strong>de</strong> <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to es construir una base <strong>de</strong> conocimi<strong>en</strong>to a partir <strong>de</strong><br />
experi<strong>en</strong>cia pasada, que re<strong>la</strong>ciona el comportami<strong>en</strong>to <strong>de</strong> algoritmos y características <strong><strong>de</strong>l</strong><br />
8
Capítulo 1<br />
Introducción<br />
problema. En el proceso <strong>de</strong> predicción, <strong>la</strong> re<strong>la</strong>ción apr<strong>en</strong>dida se usa para pronosticar el mejor<br />
algoritmo para una nueva <strong>en</strong>trada <strong><strong>de</strong>l</strong> problema.<br />
1.4.5 Contribuciones a <strong>la</strong> Arquitectura <strong>de</strong> Selección<br />
La contribución <strong>de</strong> esta investigación, es un módulo <strong>de</strong> Solución <strong>de</strong> casos y Evaluación <strong>de</strong><br />
Algoritmos que se incorpora a una Arquitectura <strong>de</strong> Selección <strong>de</strong> Algoritmos.<br />
La arquitectura propuesta para <strong>la</strong> Solución y Evaluación consta <strong>de</strong> un conjunto configurable <strong>de</strong><br />
algoritmos heurísticos y métricas <strong>de</strong> caracterización <strong>de</strong> algoritmos, <strong>la</strong>s cuales hac<strong>en</strong> posible el<br />
apr<strong>en</strong>dizaje <strong>de</strong> experi<strong>en</strong>cia pasada y su explotación <strong>en</strong> tareas <strong>de</strong> predicción. Se espera que <strong>en</strong><br />
un proyecto futuro <strong>la</strong>s métricas <strong>de</strong> superficie sean <strong>de</strong> utilidad <strong>en</strong> el refinami<strong>en</strong>to <strong><strong>de</strong>l</strong><br />
apr<strong>en</strong>dizaje y rediseño <strong>de</strong> algoritmos. Los <strong>de</strong>talles <strong>de</strong> <strong>la</strong> Arquitectura <strong>de</strong> Selección y<br />
Arquitectura propuesta se ubican <strong>en</strong> el Capítulo 6.<br />
1.5 Organización <strong><strong>de</strong>l</strong> Docum<strong>en</strong>to<br />
La tesis está organizada <strong>de</strong> <strong>la</strong> sigui<strong>en</strong>te manera:<br />
El Capítulo 2, pres<strong>en</strong>ta aspectos re<strong>la</strong>cionados con Teoría <strong>de</strong> <strong>la</strong> complejidad, problemas<br />
NP-Completos y NP-duros. A<strong>de</strong>más, se pres<strong>en</strong>tan fundam<strong>en</strong>tos teóricos <strong><strong>de</strong>l</strong> diseño <strong>de</strong><br />
distribución, mo<strong><strong>de</strong>l</strong>ado <strong><strong>de</strong>l</strong> problema <strong>de</strong> distribución <strong>de</strong> base <strong>de</strong> datos, y mo<strong><strong>de</strong>l</strong>ado <strong><strong>de</strong>l</strong><br />
problema <strong>de</strong> <strong>la</strong> distribución <strong>de</strong> objetos a cont<strong>en</strong>edores.<br />
El Capítulo 3, pres<strong>en</strong>ta los algoritmos heurísticos <strong>de</strong> esta tesis. Al inicio se aborda <strong>la</strong><br />
c<strong>la</strong>sificación <strong>de</strong> algoritmos, continuando con una <strong>de</strong>scripción g<strong>en</strong>eral, algoritmo e<br />
implem<strong>en</strong>tación <strong>de</strong> cada heurística <strong>de</strong>sarrol<strong>la</strong>da.<br />
El Capítulo 4, <strong>de</strong>scribe <strong>la</strong>s métricas estadísticas propuestas para el análisis <strong>de</strong> algoritmos.<br />
Primero se <strong>de</strong>scrib<strong>en</strong> <strong>la</strong>s métricas <strong>de</strong> caracterización <strong>de</strong> <strong>de</strong>sempeño y <strong>de</strong>spués <strong>la</strong>s métricas <strong>de</strong><br />
superficie. Estas ultimas se <strong>de</strong>rivan <strong><strong>de</strong>l</strong> mo<strong><strong>de</strong>l</strong>o matemático <strong>de</strong> Superficie <strong>de</strong> Aptitud. A<strong>de</strong>más,<br />
9
Capítulo 1<br />
Introducción<br />
se pres<strong>en</strong>ta una revisión <strong>de</strong> trabajos que han utilizado dicho mo<strong><strong>de</strong>l</strong>o; finaliza con<br />
procedimi<strong>en</strong>tos propuestos para <strong>la</strong> medición experim<strong>en</strong>tal.<br />
El Capítulo 5, <strong>de</strong>scribe <strong>la</strong>s arquitecturas con integración intelig<strong>en</strong>te, sus tipos <strong>de</strong> organización<br />
y ambi<strong>en</strong>te <strong>de</strong> aplicación, capacida<strong>de</strong>s y propieda<strong>de</strong>s. Se hace una revisión <strong>de</strong> <strong>la</strong>s<br />
Arquitecturas <strong>de</strong> Selección <strong>de</strong> algoritmos y trabajos re<strong>la</strong>cionados; <strong>la</strong>s cuales se contrastan <strong>en</strong> el<br />
contexto <strong>de</strong> arquitecturas <strong>de</strong> apr<strong>en</strong>dizaje integrado. Finaliza con <strong>la</strong> propuesta para <strong>la</strong> Solución<br />
y Evaluación, <strong>la</strong> cual dota <strong>de</strong> algoritmos y métricas que se caracterizan para utilidad <strong>de</strong> <strong>la</strong><br />
Arquitectura <strong>de</strong> Selección.<br />
El Capítulo 6, muestra <strong>la</strong>s experim<strong>en</strong>taciones realizadas para validar el módulo Solución y<br />
Evaluación, que se integra <strong>en</strong> <strong>la</strong> arquitectura <strong>de</strong> selección <strong>de</strong> algoritmos. Comi<strong>en</strong>za con el<br />
mo<strong><strong>de</strong>l</strong>ado <strong><strong>de</strong>l</strong> problema y solución exacta, continua con el análisis <strong>de</strong> <strong>de</strong>sempeño <strong>de</strong> los<br />
algoritmos, y finaliza con el análisis <strong>de</strong> superficie. A<strong>de</strong>más se <strong>de</strong>scrib<strong>en</strong> los casos <strong>de</strong> prueba, el<br />
diseño <strong><strong>de</strong>l</strong> experim<strong>en</strong>to y sus resultados.<br />
El Capítulo 7, pres<strong>en</strong>ta <strong>la</strong>s conclusiones a <strong>la</strong>s que se llegó durante el <strong>de</strong>sarrollo <strong>de</strong> esta<br />
investigación. Y proporciona <strong>la</strong>s recom<strong>en</strong>daciones necesarias para futuras investigaciones <strong>de</strong><br />
este tema.<br />
10
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
2<br />
Fundam<strong>en</strong>tos Teóricos<br />
<strong><strong>de</strong>l</strong><br />
Diseño <strong>de</strong> Distribución<br />
En <strong>la</strong>s sigui<strong>en</strong>tes secciones <strong>de</strong> este capítulo se pres<strong>en</strong>ta un análisis <strong>de</strong> <strong>la</strong> Teoría <strong>de</strong> <strong>la</strong><br />
Complejidad <strong>en</strong>focada a los problemas <strong>de</strong> optimización y <strong>de</strong> <strong>de</strong>cisión. A<strong>de</strong>más <strong>de</strong><br />
proporcionar un panorama g<strong>en</strong>eral <strong><strong>de</strong>l</strong> problema <strong>de</strong> distribución <strong>de</strong> base <strong>de</strong> datos,<br />
específicam<strong>en</strong>te <strong>en</strong> el diseño <strong>de</strong> <strong>la</strong> distribución abordado por el mo<strong><strong>de</strong>l</strong>o matemático FURD y<br />
<strong>de</strong> sus trabajos previos algorítmicos. Finalizando con un análisis <strong><strong>de</strong>l</strong> problema <strong>de</strong> distribución<br />
<strong>de</strong> objetos a cont<strong>en</strong>edores (Bin-Packing), y su re<strong>la</strong>ción con el mo<strong><strong>de</strong>l</strong>o FURD.<br />
2.1 Teoría <strong>de</strong> <strong>la</strong> Complejidad<br />
La Teoría <strong>de</strong> <strong>la</strong> Complejidad es parte <strong>de</strong> <strong>la</strong> Teoría <strong>de</strong> <strong>la</strong> computación que trata con los recursos<br />
requeridos durante el cálculo para resolver un problema dado. Unos <strong>de</strong> los recursos comunes<br />
son el tiempo (cuantos pasos se necesitan para resolver un problema) y el espacio ( cuanta<br />
memoria se necesita para resolver un problema).<br />
11
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
2.1.1 Introducción<br />
Cuando se <strong>en</strong>fr<strong>en</strong>ta a un problema concreto, existe una serie <strong>de</strong> algoritmos aplicables que<br />
podrán resolverlo. Por lo que se m<strong>en</strong>ciona que el or<strong>de</strong>n <strong>de</strong> complejidad <strong>de</strong> un problema es el<br />
<strong><strong>de</strong>l</strong> mejor algoritmo que se conozca para resolverlo. Así se c<strong>la</strong>sifican los problemas, y los<br />
estudios sobre algoritmos se aplican a <strong>la</strong> realidad llevando a <strong>la</strong> constatación <strong>de</strong> que exist<strong>en</strong><br />
problemas muy difíciles, problemas que <strong>de</strong>safían <strong>la</strong> utilización <strong>de</strong> <strong>la</strong>s computadoras para<br />
resolverlo.<br />
2.1.2 Problemas <strong>de</strong> Optimización y Decisión<br />
Cualquier problema <strong>en</strong> que los valores <strong>de</strong> los parámetros <strong>de</strong>b<strong>en</strong> ser <strong>de</strong>terminados dado ciertas<br />
restricciones, pue<strong>de</strong> ser consi<strong>de</strong>rado como un Problema <strong>de</strong> Optimización. El primer paso <strong>en</strong><br />
optimización es i<strong>de</strong>ntificar un conjunto <strong>de</strong> parámetros, l<strong>la</strong>mados también parámetros <strong>de</strong><br />
<strong>de</strong>cisión, una función <strong>de</strong> costo que <strong>de</strong>termina <strong>la</strong> minimización o maximización y <strong>la</strong>s<br />
restricciones <strong><strong>de</strong>l</strong> problema se expresan <strong>en</strong> términos <strong>de</strong> parámetros <strong>de</strong> <strong>de</strong>cisión, don<strong>de</strong> se<br />
muestran los valores que no <strong>de</strong>b<strong>en</strong> <strong>de</strong> ser consi<strong>de</strong>rados para obt<strong>en</strong>er <strong>la</strong> solución <strong><strong>de</strong>l</strong><br />
problema; algunas restricciones son repres<strong>en</strong>tadas como igualdad y otras como <strong>de</strong>sigualda<strong>de</strong>s<br />
[Pham00]. La expresión 2.1 <strong>en</strong>uncia matemáticam<strong>en</strong>te <strong>la</strong> función <strong>de</strong> costo y <strong>la</strong>s expresiones<br />
2.2 y 2.3 <strong>la</strong>s restricciones.<br />
Encontrar un vector x = ( x 1<br />
, x 2<br />
,.., xn ) con n compon<strong>en</strong>tes, don<strong>de</strong><br />
x<br />
i<br />
repres<strong>en</strong>ta el valor <strong><strong>de</strong>l</strong><br />
parámetro i :<br />
f ( x ) = f( x , x ,..., x )<br />
(2.1)<br />
i<br />
1 2<br />
n<br />
sujeto a<br />
p<br />
restricciones <strong>de</strong> igualdad:<br />
h ( x) = h ( x , x ,..., x ) = 0 1 ≤ j ≤ p<br />
j j 1 2 n<br />
(2.2)<br />
y m restricciones <strong>de</strong> <strong>de</strong>sigualdad:<br />
g ( x) = g ( x , x ,..., x ) = 0 1≤i≤m<br />
(2.3)<br />
i i 1 2 n<br />
En algunas situaciones, el mo<strong><strong>de</strong>l</strong>o matemático <strong>de</strong> un problema pue<strong>de</strong> t<strong>en</strong>er dos o más<br />
funciones <strong>de</strong> costo; a esté se le <strong>de</strong>nomina Problema <strong>de</strong> Optimización Multiobjetivo.<br />
12
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
Un Problema <strong>de</strong> Decisión se asocia con un l<strong>en</strong>guaje formal y un algoritmo con una máquina<br />
<strong>de</strong> Turing. Consta <strong>de</strong> un conjunto <strong>de</strong> casos D , obt<strong>en</strong>idos a partir <strong>de</strong> un caso g<strong>en</strong>érico, el cual<br />
se especifica <strong>en</strong> términos <strong>de</strong> varios compon<strong>en</strong>tes: conjuntos, grafos, funciones, números, etc.<br />
El conjunto D conti<strong>en</strong>e un subconjunto <strong>de</strong> casos-sí Y∉<br />
D. Un caso pert<strong>en</strong>ece a Y si y sólo<br />
sí, <strong>la</strong> respuesta para ese caso es “sí”. Por lo tanto, un algoritmo correcto que resuelva el<br />
problema <strong>de</strong> <strong>de</strong>cisión acepta el caso y rechaza los casos-no. Un problema <strong>de</strong> optimización<br />
ti<strong>en</strong>e asociado uno o más problemas <strong>de</strong> <strong>de</strong>cisión [Pham00, Brassard97].<br />
Los problemas <strong>de</strong> <strong>de</strong>cisión se c<strong>la</strong>sifican por medio <strong>de</strong> conjuntos <strong>de</strong> c<strong>la</strong>ses <strong>de</strong> complejidad.<br />
Entre <strong>la</strong>s c<strong>la</strong>ses más importantes se <strong>de</strong>fin<strong>en</strong>:<br />
C<strong>la</strong>se P : Son los problemas <strong>de</strong> <strong>de</strong>cisión don<strong>de</strong> algoritmos <strong>de</strong> complejidad polinómica son<br />
tratables, es <strong>de</strong>cir, suel<strong>en</strong> ser abordables <strong>en</strong> <strong>la</strong> práctica. Por lo contrario, para aquellos<br />
problemas para los que <strong>la</strong> mejor solución que se conoce es <strong>de</strong> complejidad superior a <strong>la</strong><br />
polinómica, se dice que son problemas intratables [Brassard97].<br />
C<strong>la</strong>se NP : Algunos <strong>de</strong> los problemas <strong>de</strong> <strong>de</strong>cisión que son intratables pue<strong>de</strong>n caracterizarse<br />
por el hecho <strong>de</strong> que pue<strong>de</strong> aplicarse un algoritmo polinómico para comprobar si una posible<br />
solución es válida o no. Esta característica lleva a un método <strong>de</strong> resolución no <strong>de</strong>terminista<br />
que consiste <strong>en</strong> aplicar heurísticos para obt<strong>en</strong>er soluciones hipotéticas que se van<br />
<strong>de</strong>sestimando (o aceptando) a un ritmo polinómico [Garey79, Brassard97].<br />
2.1.3 Problemas NP-Completo y NP-Duro<br />
En [Garey79], se <strong>de</strong>scribe que <strong>la</strong> tarea realizada por una máquina <strong>de</strong>terminista pue<strong>de</strong> ser<br />
realizada por una no <strong>de</strong>terminista, se ti<strong>en</strong>e <strong>en</strong>tonces que P ⊆ NP. Por lo que se dice que un<br />
problema <strong>de</strong> <strong>de</strong>cisión<br />
Π = ( D Y )<br />
1 1 ,<br />
1<br />
se pue<strong>de</strong> transformar polinomialm<strong>en</strong>te al problema <strong>de</strong><br />
<strong>de</strong>cisión Π 2 =(D 2 , Y 2 ), si existe una función f: D 1 → D 2 que satisface <strong>la</strong>s sigui<strong>en</strong>tes dos<br />
condiciones:<br />
13
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
a) f es computable por un algoritmo <strong>de</strong>terminista <strong>de</strong> tiempo polinomial.<br />
b) Para todo caso I ∈D 1 , I ∈ Y 1 si y sólo si f(I) ∈ Y 2.<br />
En tal caso se dice que hay una transformación polinomial <strong>de</strong> Π 1 a Π 2, y se escribe<br />
Π 1 ≤ P<br />
Π 2 . Los problemas <strong>de</strong> <strong>de</strong>cisión Π 1 y Π 2 son polinomialm<strong>en</strong>te equival<strong>en</strong>tes<br />
( Π 1 ≈ Π 2 ) si y sólo sí Π 1 ≤ P Π 2 y Π 2 ≤ P<br />
Π 1 .<br />
Por consigui<strong>en</strong>te se establece que un problema Π es NP-completo si y sólo si, Π ∈ NP y si<br />
Π 1 ∈ NP-completo implica que Π 1 ≤ P Π .<br />
Esto es, que un problema NP-completo conocido se pue<strong>de</strong> transformar al problema <strong>de</strong> interés.<br />
A<strong>de</strong>más, si se prueba <strong>la</strong> NP-completez <strong><strong>de</strong>l</strong> problema <strong>de</strong> <strong>de</strong>cisión Π , <strong>en</strong>tonces el problema <strong>de</strong><br />
optimización asociado a Π es NP-duro.<br />
2.2 El Problema <strong>de</strong> Distribución <strong>de</strong> Bases <strong>de</strong> Datos: FURD<br />
La <strong>de</strong>manda <strong>de</strong> información global <strong>de</strong> <strong>la</strong>s organizaciones <strong>de</strong>sc<strong>en</strong>tralizadas, así como el<br />
<strong>de</strong>sarrollo <strong>de</strong> <strong>la</strong> tecnología <strong>de</strong> comunicaciones han dado impulso al <strong>de</strong>sarrollo <strong>de</strong> Sistemas<br />
Administradores <strong>de</strong> Bases <strong>de</strong> Datos Distribuidas (SABDDs). Actualm<strong>en</strong>te, se <strong>en</strong>cu<strong>en</strong>tran <strong>en</strong> el<br />
comercio algunos SABDDs, por ejemplo Ingres Star, Oracle SQL Star (Versión 8), Informix-<br />
Star, BB2 (versión 2.2) y Sybase DBMS.<br />
2.2.1 Descripción G<strong>en</strong>eral<br />
Una etapa <strong><strong>de</strong>l</strong> <strong>de</strong>sarrollo <strong>de</strong> un SBDD es el diseño <strong>de</strong> <strong>la</strong> distribución, cuya finalidad es<br />
<strong>de</strong>terminar <strong>la</strong>s unida<strong>de</strong>s <strong>de</strong> almac<strong>en</strong>ami<strong>en</strong>to a<strong>de</strong>cuadas y <strong>de</strong>cidir <strong>la</strong> ubicación <strong>de</strong> estas <strong>en</strong> cada<br />
sitio <strong>de</strong> <strong>la</strong> red, los fragm<strong>en</strong>tos pue<strong>de</strong>n ser horizontales, <strong>vertical</strong>es o mixtos [Smith97].<br />
Tradicionalm<strong>en</strong>te, este trabajo ha sido realizado manual por el diseñador <strong>de</strong> <strong>la</strong> Base <strong>de</strong> Datos<br />
con fundam<strong>en</strong>to <strong>en</strong> su experi<strong>en</strong>cia y <strong>en</strong> heurísticas.<br />
Sin embargo, <strong>la</strong>s dim<strong>en</strong>siones <strong>de</strong> <strong>la</strong>s aplicaciones actuales exce<strong>de</strong>n normalm<strong>en</strong>te <strong>la</strong>s<br />
capacida<strong>de</strong>s <strong><strong>de</strong>l</strong> diseñador para realizar el Diseño <strong>de</strong> <strong>la</strong> Distribución <strong>en</strong> forma manual. Es por<br />
14
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
esta razón, que tesis <strong>de</strong> maestrías <strong>de</strong>sarrol<strong>la</strong>das por el grupo <strong>de</strong> investigación <strong><strong>de</strong>l</strong> Instituto<br />
Tecnológico <strong>de</strong> Ciudad Ma<strong>de</strong>ro, proporcionan una variedad <strong>de</strong> metodologías y herrami<strong>en</strong>tas<br />
<strong>de</strong> apoyo, don<strong>de</strong> se experim<strong>en</strong>ta con el mo<strong><strong>de</strong>l</strong>o matemático FURD [Pérez99].<br />
El mo<strong><strong>de</strong>l</strong>o "Fragm<strong>en</strong>tación <strong>vertical</strong>, Ubicación y Reubicación dinámica <strong>de</strong> los Datos”:<br />
FURD, aplicado a sistemas <strong>de</strong> bases <strong>de</strong> datos distribuidas pres<strong>en</strong>ta <strong>la</strong>s sigui<strong>en</strong>tes<br />
características:<br />
a) Resuelve el problema <strong><strong>de</strong>l</strong> diseño <strong>de</strong> <strong>la</strong> distribución <strong>de</strong> datos <strong>en</strong> un solo paso; <strong>la</strong><br />
fragm<strong>en</strong>tación <strong>vertical</strong> y <strong>la</strong> ubicación <strong>de</strong> los datos <strong>de</strong> manera simultánea.<br />
b) Formu<strong>la</strong> una función objetivo que permite ubicar o reubicar los atributos <strong>de</strong> <strong>la</strong>s re<strong>la</strong>ciones<br />
<strong>en</strong> los nodos <strong>de</strong> <strong>la</strong> red <strong>de</strong> manera optimizada, cuyo objetivo es minimizar los costos <strong>de</strong><br />
transmisión <strong>de</strong> datos.<br />
c) Consi<strong>de</strong>ra restricciones <strong>de</strong> capacidad <strong>de</strong> los sitios. A<strong>de</strong>más <strong>de</strong> pert<strong>en</strong>ecer a <strong>la</strong> c<strong>la</strong>se <strong>de</strong><br />
problemas NP-completos.<br />
2.2.2 Mo<strong><strong>de</strong>l</strong>o Matemático<br />
Se <strong>de</strong>scribe un mo<strong><strong>de</strong>l</strong>o <strong>de</strong> programación lineal <strong>en</strong>tera (binaria) para <strong>la</strong> fragm<strong>en</strong>tación,<br />
ubicación y reubicación dinámica <strong>de</strong> datos, al cual se le ha <strong>de</strong>nominado FURD [Pérez99]. En<br />
este mo<strong><strong>de</strong>l</strong>o, <strong>la</strong> <strong>de</strong>cisión <strong>de</strong> almac<strong>en</strong>ar un atributo m <strong>en</strong> un sitio j es repres<strong>en</strong>tada por <strong>la</strong><br />
variable binaria<br />
x . Así que x = 1 si m se almac<strong>en</strong>a <strong>en</strong> j , y x = 0 <strong>en</strong> caso contrario.<br />
mj<br />
mj<br />
mj<br />
Función Objetivo<br />
Ti<strong>en</strong>e el propósito <strong>de</strong> mo<strong><strong>de</strong>l</strong>ar los sigui<strong>en</strong>te costos:<br />
a. Costo <strong>de</strong> transmisión: Su principal función es <strong>la</strong> distribución. Determina el costo <strong>de</strong><br />
transmisión <strong>en</strong> que se incurre para satisfacer <strong>la</strong>s consultas <strong>de</strong> todos los sitios.<br />
b. Costo <strong>de</strong> acce<strong>de</strong>r a varios fragm<strong>en</strong>tos: Mo<strong><strong>de</strong>l</strong>a los costos <strong>en</strong> los que se incurre <strong>en</strong><br />
consultas que acce<strong>de</strong>n a varios fragm<strong>en</strong>tos; <strong>en</strong> este caso, el diseñador ti<strong>en</strong>e que<br />
proporcionar el valor <strong>de</strong> un parámetro que indique el costo <strong>de</strong> acce<strong>de</strong>r a varios fragm<strong>en</strong>tos.<br />
c. Costo <strong>de</strong> almac<strong>en</strong>ami<strong>en</strong>to <strong>de</strong> los fragm<strong>en</strong>tos: Mo<strong><strong>de</strong>l</strong>a los costos <strong>de</strong> almac<strong>en</strong>ami<strong>en</strong>to <strong>de</strong> los<br />
fragm<strong>en</strong>tos <strong>en</strong> los sitios. Debido a que este costo pue<strong>de</strong> variar <strong>de</strong> un sistema administrador<br />
15
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
<strong>de</strong> bases <strong>de</strong> datos a otro, este aspecto se incluye como un parámetro cuyo valor ti<strong>en</strong>e que<br />
ser proporcionado por el diseñador <strong>de</strong> <strong>la</strong> base <strong>de</strong> datos.<br />
d. Costo <strong>de</strong> migración <strong>de</strong> los datos <strong>de</strong> un sitio a otro: Mo<strong><strong>de</strong>l</strong>a los costos <strong>de</strong> transmisión<br />
requeridos para migrar los datos <strong>de</strong> un nodo a otro.<br />
El propósito <strong>de</strong> <strong>la</strong> función objetivo es <strong>de</strong> minimizar costos. La formu<strong>la</strong>ción matemática <strong>de</strong> <strong>la</strong><br />
expresión 2.4, repres<strong>en</strong>ta el mo<strong><strong>de</strong>l</strong>o <strong>de</strong> optimización matemática <strong>de</strong> FURD [Pérez99].<br />
min z = ∑ ∑ f<br />
ki ∑ ∑ qkmlkmcij xmj + ∑ ∑ ∑ c<br />
1<br />
fki ykj<br />
k i m j i k j<br />
∑ c w + ∑ ∑ ∑ a c d x<br />
2 j mi ij m mj<br />
j m i j<br />
Don<strong>de</strong>: k repres<strong>en</strong>ta consultas, i y j repres<strong>en</strong>ta sitios, y m repres<strong>en</strong>ta atributos.<br />
f Frecu<strong>en</strong>cia <strong>de</strong> <strong>la</strong> consulta k <strong>de</strong>s<strong>de</strong> el sitio i .<br />
ki<br />
km<br />
+ (2.4)<br />
q Es un parámetro, q = 1 si <strong>la</strong> consulta k usa el atributo m , <strong>en</strong> caso contrario<br />
q<br />
km<br />
= 0 .<br />
km<br />
l Número <strong>de</strong> paquetes <strong>de</strong> comunicación necesarios para transportar el atributo<br />
km<br />
requerido por <strong>la</strong> consulta<br />
( )<br />
p * SE / PA don<strong>de</strong>:<br />
m<br />
k<br />
k . Es calcu<strong>la</strong>do con <strong>la</strong> sigui<strong>en</strong>te expresión:<br />
m<br />
p<br />
m<br />
= tamaño <strong>en</strong> bytes <strong><strong>de</strong>l</strong> atributo m .<br />
SE<br />
k<br />
= selectividad <strong>de</strong> <strong>la</strong> consulta<br />
k<br />
(número <strong>de</strong> tup<strong>la</strong>s retornadas cuando se<br />
ij<br />
ejecuta <strong>la</strong> consulta).<br />
PA = tamaño <strong><strong>de</strong>l</strong> paquete <strong>de</strong> comunicación <strong>en</strong> bytes.<br />
c Costo <strong>de</strong> comunicación <strong>en</strong>tre el sitio i y el sitio j .<br />
c<br />
1<br />
Costo <strong>de</strong> acce<strong>de</strong>r cada fragm<strong>en</strong>to para satisfacer una consulta; por ejemplo, el costo<br />
<strong>de</strong> procesar un "join" <strong>en</strong> una consulta que acce<strong>de</strong> a dos o más fragm<strong>en</strong>tos.<br />
16
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
c<br />
2<br />
j<br />
Costo <strong>de</strong> ubicar un fragm<strong>en</strong>to <strong>en</strong> un sitio; por ejemplo, el costo <strong>de</strong>rivado <strong>de</strong> t<strong>en</strong>er<br />
una copia <strong>de</strong> <strong>la</strong> l<strong>la</strong>ve primaria <strong>en</strong> cada fragm<strong>en</strong>to. Se calcu<strong>la</strong> con <strong>la</strong> sigui<strong>en</strong>te<br />
expresión:<br />
CA* bk * ck<br />
don<strong>de</strong>:<br />
CA = cardinalidad <strong>de</strong> <strong>la</strong> re<strong>la</strong>ción.<br />
bk = tamaño <strong>en</strong> bytes <strong>de</strong> <strong>la</strong> l<strong>la</strong>ve.<br />
ck = costo <strong>de</strong> almac<strong>en</strong>ami<strong>en</strong>to <strong>de</strong> <strong>la</strong> l<strong>la</strong>ve.<br />
w Variable <strong>de</strong>p<strong>en</strong>di<strong>en</strong>te, w = 1 si existe uno o más atributos <strong>en</strong> el sitio<br />
kj<br />
caso contrario.<br />
j<br />
j , y w = 0 <strong>en</strong><br />
y Variable <strong>de</strong>p<strong>en</strong>di<strong>en</strong>te, y = 1 si <strong>la</strong> consulta k acce<strong>de</strong> a uno o más atributos<br />
kj<br />
j<br />
localizados <strong>en</strong> el sitio<br />
j , y y = 0 <strong>en</strong> caso contrario.<br />
kj<br />
a Indica <strong>la</strong> ubicación previa <strong>de</strong> atributos (matriz <strong>de</strong> uso), a = 1 si el atributo m está<br />
mi<br />
m<br />
actualm<strong>en</strong>te localizado <strong>en</strong> el sitio i , <strong>en</strong> caso contrario a = 0 .<br />
d Paquetes <strong>de</strong> comunicación requeridos para mover el atributo m a otro sitio si es<br />
necesario. Se calcu<strong>la</strong> con <strong>la</strong> sigui<strong>en</strong>te expresión:<br />
mi<br />
mi<br />
( )<br />
p * CA / PA .<br />
m<br />
Restricciones Intrínsecas <strong><strong>de</strong>l</strong> Problema<br />
Dado que no se consi<strong>de</strong>ra <strong>la</strong> replicación <strong>de</strong> atributos, se ti<strong>en</strong>e una restricción que especifica<br />
que cada atributo será ubicado so<strong>la</strong>m<strong>en</strong>te <strong>en</strong> un sitio. Adicionalm<strong>en</strong>te, cada atributo <strong>de</strong>be ser<br />
ubicado <strong>en</strong> un sitio que al m<strong>en</strong>os ejecute una consulta que acceda al atributo y sin exce<strong>de</strong>r <strong>la</strong><br />
capacidad <strong><strong>de</strong>l</strong> nodo. Estas restricciones se expresan <strong>de</strong> <strong>la</strong> sigui<strong>en</strong>te manera:<br />
∑ x<br />
j<br />
∀m<br />
x<br />
m j<br />
∀mi<br />
,<br />
=<br />
q<br />
mi<br />
≤ ∑ km ki<br />
k<br />
1 Cada atributo se almac<strong>en</strong>a so<strong>la</strong>m<strong>en</strong>te <strong>en</strong> un sitio.<br />
ϕ<br />
Don<strong>de</strong><br />
ϕ<br />
ki<br />
⎧⎪<br />
= ⎨<br />
⎪ ⎩<br />
1, si f 〉 0<br />
ki<br />
0, si f = 0<br />
ki<br />
Cada atributo m se ubica <strong>en</strong> un sitio i que ejecute al m<strong>en</strong>os una<br />
consulta que involucre al atributo.<br />
17
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
tw−∑x<br />
≥ 0 Esta restricción fuerza el valor <strong>de</strong> w<br />
j<br />
a 1 cuando cualquier x<br />
mj<br />
es<br />
∀j<br />
j<br />
kj<br />
∀kj<br />
,<br />
m<br />
−∑<br />
m<br />
m j<br />
ty q x<br />
km mj<br />
≥0<br />
igual a 1, e induce<br />
w<br />
j<br />
a 0 <strong>en</strong> cualquier otro caso.<br />
Esta restricción fuerza el valor <strong>de</strong> y<br />
kj<br />
a 1 cuando cualquier qkmx<br />
mj<br />
es igual a 1, e induce y<br />
kj<br />
a 0 <strong>en</strong> cualquier otro caso.<br />
∑ xm jpmCA≤<br />
csj<br />
Don<strong>de</strong><br />
j<br />
m<br />
∀j<br />
cs = capacidad <strong><strong>de</strong>l</strong> sitio j<br />
La suma <strong>de</strong> los espacios ocupados por todos los valores <strong>de</strong> los<br />
atributos asignados al sitio<br />
j<br />
no <strong>de</strong>be exce<strong>de</strong>r <strong>la</strong> capacidad <strong>de</strong> éste.<br />
2.2.3 Trabajos Previos sobre Algoritmos <strong>de</strong> Solución <strong>de</strong> FURD<br />
En el Instituto Tecnológico <strong>de</strong> Cuidad Ma<strong>de</strong>ro, <strong>de</strong>ntro <strong>de</strong> su línea <strong>de</strong> investigación<br />
“Optimización Intelig<strong>en</strong>te” existe una área <strong>de</strong> investigación aplicada al mo<strong><strong>de</strong>l</strong>ado <strong><strong>de</strong>l</strong> diseño<br />
<strong>de</strong> <strong>la</strong> distribución <strong>de</strong> bases <strong>de</strong> datos específicam<strong>en</strong>te al mo<strong><strong>de</strong>l</strong>o matemático FURD, y se han<br />
<strong>de</strong>sarrol<strong>la</strong>do difer<strong>en</strong>tes algoritmos <strong>de</strong> solución heurística para resolverlo. En <strong>la</strong> tab<strong>la</strong> 2.1, se<br />
muestra <strong>en</strong> forma cronológica los avances algorítmicos.<br />
Tab<strong>la</strong> 2.1 Avances algorítmicos aplicados al diseño <strong>de</strong> distribución <strong>de</strong> base <strong>de</strong> datos: FURD<br />
18
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
2.3 El Problema <strong>de</strong> Distribución <strong>de</strong> Objetos <strong>en</strong> Cont<strong>en</strong>edores: Bin-Packing<br />
Esta sección pres<strong>en</strong>ta <strong>la</strong> <strong>de</strong>scripción g<strong>en</strong>eral <strong><strong>de</strong>l</strong> problema Bin-Packing, a<strong>de</strong>más <strong><strong>de</strong>l</strong> mo<strong><strong>de</strong>l</strong>o<br />
matemático.<br />
2.3.1 Descripción G<strong>en</strong>eral<br />
Bin-Packing es un problema clásico <strong>de</strong> optimización combinatoria NP-duros, <strong>en</strong> el cual existe<br />
un número ilimitado <strong>de</strong> cont<strong>en</strong>edores cuya capacidad <strong><strong>de</strong>l</strong> mismo es un <strong>en</strong>tero c , el número <strong>de</strong><br />
objetos es<br />
n , el tamaño <strong>de</strong> cada objeto es s ( 0 ≤ i≤ n)<br />
que esta limitado a 0 ≤ si<br />
≤ c<br />
[Coffman02, Baase91]. En <strong>la</strong> figura 2.2 se repres<strong>en</strong>ta este problema clásico, don<strong>de</strong> el objetivo<br />
es <strong>de</strong>terminar el número más pequeño <strong>de</strong> cont<strong>en</strong>edores m <strong>en</strong> los cuales los objetos pue<strong>de</strong>n ser<br />
empacados.<br />
i<br />
Figura 2.1 Ejemplo <strong>de</strong> distribución <strong>de</strong> objetos a cont<strong>en</strong>edores<br />
2.3.2 Mo<strong><strong>de</strong>l</strong>o Matemático<br />
En esta investigación se <strong>la</strong>boró con <strong>la</strong> versión discreta <strong><strong>de</strong>l</strong> problema Bin-Packing <strong>de</strong> una<br />
dim<strong>en</strong>sión, <strong>en</strong> <strong>la</strong> cual <strong>la</strong> capacidad <strong><strong>de</strong>l</strong> cont<strong>en</strong>edor es un <strong>en</strong>tero c, el número <strong>de</strong> objetos es n, y<br />
19
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
por simplicidad, el tamaño <strong>de</strong> cada objeto es s i , el cual es seleccionado <strong><strong>de</strong>l</strong><br />
conjunto {1, 2, ..., c} [Coffman02]. Se busca <strong>de</strong>terminar una partición <strong>de</strong> L mínima,<br />
B 1 , B 2 , ..., B m , tal que <strong>en</strong> cada cont<strong>en</strong>edor B i el tamaño agregado <strong>de</strong> todos los objetos <strong>en</strong> B i no<br />
exceda c. La expresión 2.5 muestra lo sigui<strong>en</strong>te:<br />
Dados<br />
(2.5)<br />
n = número <strong>de</strong> objetos a distribuir<br />
c = capacidad <strong><strong>de</strong>l</strong> cont<strong>en</strong>edor<br />
L = secu<strong>en</strong>cia <strong>de</strong> n objetos<br />
s i = tamaño <strong>de</strong> cada objeto<br />
<strong>en</strong>contrar una partición <strong>de</strong> L mínima, L =B 1 ∪ B 2 ∪ ..., ∪B m<br />
tal que <strong>en</strong> cada conjunto B j <strong>la</strong> sumatoria <strong><strong>de</strong>l</strong> tamaño <strong>de</strong> cada objeto s i <strong>en</strong> B j<br />
no exceda c,<br />
min z = ∑ s ≤c ∀j, 1 ≤ j ≤ m.<br />
siε<br />
Bj<br />
i<br />
Adaptación <strong>de</strong> <strong>la</strong> Función Objetivo<br />
El objetivo <strong>de</strong> Bin-Packing es <strong>en</strong>contrar el número mínimo <strong>de</strong> cont<strong>en</strong>edores requeridos, <strong>la</strong><br />
función <strong>de</strong> objetivo pres<strong>en</strong>tada <strong>en</strong> <strong>la</strong> expresión 2.5 consiste simplem<strong>en</strong>te <strong>en</strong> contabilizar el<br />
número <strong><strong>de</strong>l</strong> objeto que no rebas<strong>en</strong> <strong>la</strong> capacidad <strong><strong>de</strong>l</strong> cont<strong>en</strong>edor. Esto es correcto <strong>de</strong>s<strong>de</strong> el punto<br />
<strong>de</strong> vista matemático, pero es inutilizable <strong>en</strong> <strong>la</strong> práctica. Un mal uso <strong>de</strong> <strong>la</strong> capacidad <strong>de</strong> los<br />
cont<strong>en</strong>edores conduce a <strong>la</strong> necesidad <strong>de</strong> cont<strong>en</strong>edores suplem<strong>en</strong>tarios, para cont<strong>en</strong>er los<br />
objetos.<br />
Por lo tanto, supongamos que si tomamos dos cont<strong>en</strong>edores y mezc<strong>la</strong>mos su cont<strong>en</strong>ido <strong>en</strong>tre<br />
ellos, <strong>la</strong> situación don<strong>de</strong> está casi ll<strong>en</strong>o uno <strong>de</strong> los cont<strong>en</strong>edores (<strong>de</strong>jando el otro casi vacío) es<br />
mejor que cuando los dos cont<strong>en</strong>edores están sobre ll<strong>en</strong>ado igualm<strong>en</strong>te. Esto es porque el<br />
cont<strong>en</strong>edor casi vacío pue<strong>de</strong> acomodar más fácilm<strong>en</strong>te los objetos adicionales que podrían ser<br />
<strong>de</strong>masiado gran<strong>de</strong>s para acomodarse <strong>en</strong> cualquiera <strong>de</strong> los cont<strong>en</strong>edores medios ll<strong>en</strong>os. Bajo<br />
este criterio se propone una función objetivo alterna que maximice el promedio <strong>de</strong> ll<strong>en</strong>ado <strong>de</strong><br />
todos los cont<strong>en</strong>edores, permiti<strong>en</strong>do medir <strong>la</strong> efici<strong>en</strong>cia <strong><strong>de</strong>l</strong> cont<strong>en</strong>edor y explotar al máximo<br />
20
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
<strong>la</strong> capacidad [Falk<strong>en</strong>auer92]. La constante k expresa <strong>la</strong> conc<strong>en</strong>tración <strong>de</strong> un bu<strong>en</strong> ll<strong>en</strong>ado <strong><strong>de</strong>l</strong><br />
cont<strong>en</strong>edor. Se <strong>de</strong>scribe <strong>en</strong> <strong>la</strong> expresión 2.6:<br />
∑ máx z =<br />
i=<br />
1... N<br />
( fill / C)<br />
N<br />
i<br />
k<br />
(2.6)<br />
don<strong>de</strong>:<br />
N<br />
fill<br />
i<br />
C<br />
= Número <strong>de</strong> cont<strong>en</strong>edores usados<br />
= Suma <strong>de</strong> los tamaños <strong>de</strong> los objetos <strong>en</strong> el cont<strong>en</strong>edor i<br />
= Capacidad <strong><strong>de</strong>l</strong> cont<strong>en</strong>edor<br />
k = Constante, k >1 ( <strong>en</strong> <strong>la</strong> literatura se recomi<strong>en</strong>da k = 2 )<br />
2.4 Re<strong>la</strong>ción <strong>en</strong>tre FURD y Bin-Packing<br />
El diseño <strong>de</strong> <strong>la</strong> distribución es al m<strong>en</strong>os tan complejo como Bin-Packing [Cruz99, Pérez00a].<br />
Una versión simplificada <strong>de</strong> FURD se reduce a Bin-Packing, y viceversa. Por consigui<strong>en</strong>te, se<br />
<strong>de</strong>duce que el problema FURD es una g<strong>en</strong>eralización <strong><strong>de</strong>l</strong> problema Bin-Packing, es <strong>de</strong>cir, que<br />
al resolver casos <strong><strong>de</strong>l</strong> problema <strong>de</strong> optimización Bin-Packing se está resolvi<strong>en</strong>do un<br />
subconjunto <strong>de</strong> problemas <strong>de</strong> <strong>la</strong> distribución <strong>de</strong> bases <strong>de</strong> datos <strong>de</strong>bido a <strong>la</strong> re<strong>la</strong>ción <strong>de</strong><br />
equival<strong>en</strong>cia <strong>en</strong> <strong>la</strong> complejidad <strong>de</strong> los problemas.<br />
Se <strong>de</strong>sarrol<strong>la</strong>ron métodos heurísticos para <strong>la</strong> solución <strong>de</strong> FURD, y se realizó un análisis <strong>de</strong><br />
una experim<strong>en</strong>tación preliminar <strong>la</strong> cual se resolvieron casos medianos <strong>de</strong> 192 sitios <strong>en</strong> un<br />
tiempo promedio <strong>de</strong> 16,752 segundos (5.31E-4 años) [Pérez03d, Pérez04b]. El fundam<strong>en</strong>to <strong>de</strong><br />
éste análisis permitió estimar <strong>de</strong> manera aproximada el tiempo total <strong>de</strong> procesami<strong>en</strong>to <strong>en</strong> años<br />
para resolver un conjunto <strong>de</strong> casos repres<strong>en</strong>tativos <strong><strong>de</strong>l</strong> problema FURD [Cruz04]. La<br />
expresión matemática 2.7 es:<br />
don<strong>de</strong>:<br />
t = h × c × a × r × t<br />
(2.7)<br />
h = Es el tiempo ejecución promedio <strong>en</strong> años para resolver un caso por un algoritmo<br />
heurístico <strong>en</strong> una corrida.<br />
c = Es el número <strong>de</strong> corridas <strong>en</strong> un algoritmo.<br />
21
Capítulo 2<br />
Fundam<strong>en</strong>tos Teóricos <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> Distribución<br />
a = Es el número <strong>de</strong> algoritmos disponibles.<br />
r = Son los números <strong>de</strong> casos gran<strong>de</strong>s repres<strong>en</strong>tativos <strong><strong>de</strong>l</strong> problema.<br />
t = Es el tiempo total repres<strong>en</strong>tativo <strong>en</strong> años.<br />
De manera simplificada, para <strong>la</strong> experim<strong>en</strong>tación <strong>de</strong> [Cruz04] se consi<strong>de</strong>ró que se requeriría<br />
resolver al m<strong>en</strong>os 150 casos medianos con 7 algoritmos heurísticos disponibles, y aplicar 30<br />
veces cada algoritmo a cada caso para calcu<strong>la</strong>r su <strong>de</strong>sempeño promedio. En estas condiciones,<br />
se estimó que <strong>la</strong> experim<strong>en</strong>tación tomaría aproximadam<strong>en</strong>te 17 años (5.31E-4×150×7×30).<br />
En estas condiciones, resulta prohibitivo el tiempo <strong>de</strong> procesami<strong>en</strong>to requerido para realizar el<br />
análisis <strong>de</strong> <strong>de</strong>sempeño y <strong>de</strong> superficie a los algoritmos que resuelv<strong>en</strong> el problema <strong>de</strong> <strong>la</strong><br />
distribución <strong>de</strong> base <strong>de</strong> datos, por lo que se <strong>de</strong>cidió utilizar el problema <strong>de</strong> distribución <strong>de</strong><br />
objetos a cont<strong>en</strong>edores; <strong>en</strong> particu<strong>la</strong>r <strong>la</strong> versión discreta y <strong>de</strong> una dim<strong>en</strong>sión, por <strong>la</strong>s sigui<strong>en</strong>tes<br />
razones:<br />
a) La <strong>de</strong>mostración <strong>de</strong> equival<strong>en</strong>cia <strong>de</strong> FURD y Bin-Packing <strong>en</strong> [Cruz99, Pérez00a], permite<br />
asegurar que si se resuelve Bin-Packing al m<strong>en</strong>os se está resolvi<strong>en</strong>do un subconjunto <strong>de</strong><br />
FURD.<br />
b) Problemas clásicos como Bin-Packing cu<strong>en</strong>tan con casos estándar reconocidos por <strong>la</strong><br />
comunidad ci<strong>en</strong>tífica. Dando formalidad a una investigación.<br />
22
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
3<br />
Desarrollo <strong>de</strong><br />
Algoritmos <strong>de</strong> Solución<br />
Debido a <strong>la</strong> complejidad <strong>de</strong> resolver un problema c<strong>la</strong>sificado como NP-duro, <strong>en</strong> muchas<br />
situaciones reales los algoritmos <strong>de</strong> solución exacta no son <strong>la</strong> mejor alternativa; <strong>en</strong> estas<br />
condiciones, una opción efici<strong>en</strong>te <strong>la</strong> constituy<strong>en</strong> los algoritmos <strong>de</strong> solución heurística que para<br />
<strong>la</strong> comunidad ci<strong>en</strong>tífica son algoritmos que proporcionan <strong>en</strong> un “tiempo <strong>de</strong> cómputo<br />
razonable” una "bu<strong>en</strong>a solución" al problema, pero no necesariam<strong>en</strong>te <strong>la</strong> mejor.<br />
Para el problema <strong>de</strong> empacado <strong>de</strong> objetos <strong>en</strong> cont<strong>en</strong>edores (Bin-Packing), una solución óptima<br />
pue<strong>de</strong> ser <strong>en</strong>contrada consi<strong>de</strong>rando todas <strong>la</strong>s formas <strong>de</strong> hacer una partición <strong><strong>de</strong>l</strong> conjunto <strong>de</strong> n<br />
objetos <strong>en</strong> un subconjunto <strong>de</strong> tamaño n o más pequeño, <strong>de</strong>safortunadam<strong>en</strong>te, el número <strong>de</strong><br />
posibles particiones es mayor que (n/2) n/2 [Basse98].<br />
Los algoritmos <strong>de</strong> solución <strong>de</strong>sarrol<strong>la</strong>dos <strong>en</strong> esta tesis usan estrategias <strong>de</strong>terministas y no<strong>de</strong>terministas<br />
para obt<strong>en</strong>er soluciones subóptimas con m<strong>en</strong>os esfuerzo computacional. Para<br />
validar los resultados obt<strong>en</strong>idos por éstos algoritmos se implem<strong>en</strong>tó un algoritmo exacto.<br />
23
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
3.1 C<strong>la</strong>sificación <strong>de</strong> Algoritmos<br />
Exist<strong>en</strong> varias formas <strong>de</strong> c<strong>la</strong>sificar los algoritmos <strong>de</strong> solución. En esta sección se <strong>de</strong>scrib<strong>en</strong><br />
tres topologías basadas <strong>en</strong> difer<strong>en</strong>tes aspectos <strong>de</strong> diseño: tipo <strong>de</strong> solución, alcance <strong>de</strong><br />
aplicación y mecanismo <strong>de</strong> paro.<br />
Tipo <strong>de</strong> Solución<br />
Los algoritmos que resuelv<strong>en</strong> problemas <strong>de</strong> optimización se divi<strong>de</strong>n por el tipo <strong>de</strong> solución<br />
que obti<strong>en</strong><strong>en</strong> <strong>en</strong> exactos, <strong>de</strong>terministas y no-<strong>de</strong>terministas [Coffman97, Coffman98, Lodi 02]:<br />
a) Algoritmos Exactos: Se basan <strong>en</strong> <strong>en</strong>umeración parcial y su característica principal es<br />
obt<strong>en</strong>er <strong>la</strong> solución óptima <strong><strong>de</strong>l</strong> problema que se esté resolvi<strong>en</strong>do y reducir el espacio <strong>de</strong><br />
búsqueda. Sin embargo, sigu<strong>en</strong> pres<strong>en</strong>tando <strong>la</strong>s <strong>de</strong>sv<strong>en</strong>tajas <strong>de</strong> los métodos <strong>de</strong> <strong>en</strong>umeración<br />
total, <strong>en</strong>tre <strong>la</strong>s cuales se pue<strong>de</strong> m<strong>en</strong>cionar: el tiempo <strong>de</strong> cómputo requerido para obt<strong>en</strong>er <strong>la</strong><br />
solución, el cual crece <strong>de</strong> manera expon<strong>en</strong>cial conforme crece el tamaño <strong><strong>de</strong>l</strong> problema, por lo<br />
tanto, pres<strong>en</strong>tan limitaciones al resolver problemas gran<strong>de</strong>s con una cantidad restringida <strong>de</strong><br />
variables, <strong>de</strong>bido a los recursos que necesitan.<br />
b) Algoritmos Aproximados Deterministas: Sigu<strong>en</strong> <strong>la</strong> misma ruta para llegar a una solución<br />
aproximada. Por esta razón, obti<strong>en</strong><strong>en</strong> <strong>la</strong> misma solución <strong>en</strong> difer<strong>en</strong>tes ejecuciones.<br />
c) Algoritmos Aproximados No-Deterministas: G<strong>en</strong>eralm<strong>en</strong>te no obti<strong>en</strong><strong>en</strong> <strong>la</strong> misma solución<br />
<strong>en</strong> difer<strong>en</strong>tes ejecuciones. Esto se <strong>de</strong>be a que están basados <strong>en</strong> búsqueda por <strong>en</strong>tornos; es<br />
<strong>de</strong>cir, inician con una solución inicial factible y mediante alteraciones <strong>de</strong> esa solución, van<br />
pasando a otras soluciones factibles <strong>de</strong> su <strong>en</strong>torno (soluciones vecinas). Durante <strong>la</strong> búsqueda<br />
se aplican estrategias intelig<strong>en</strong>tes y aleatorias para evitar caer <strong>en</strong> mínimos locales. Para <strong>la</strong><br />
terminación <strong><strong>de</strong>l</strong> proceso se establece un mecanismo <strong>de</strong> paro, dando como resultado <strong>la</strong> mejor<br />
solución visitada. En g<strong>en</strong>eral, son consi<strong>de</strong>rados bu<strong>en</strong>a opción cuando se <strong>de</strong>sea resolver casos<br />
<strong>de</strong> tamaño gran<strong>de</strong> <strong>de</strong> un problema que es consi<strong>de</strong>rado NP-duro.<br />
Alcance <strong>de</strong> Aplicación<br />
Los algoritmos <strong>de</strong> solución <strong>de</strong> un problema <strong>de</strong> optimización pue<strong>de</strong>n ser g<strong>en</strong>erales o<br />
específicos <strong><strong>de</strong>l</strong> problema [Melián03]:<br />
24
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
a) Métodos heurísticos específicos: Deb<strong>en</strong> ser diseñados respecto al propósito para cada<br />
problema, utilizando toda <strong>la</strong> información disponible y el análisis teórico <strong><strong>de</strong>l</strong> mo<strong><strong>de</strong>l</strong>o.<br />
b) Métodos g<strong>en</strong>erales <strong>de</strong>nominados metaheurísticos: Pres<strong>en</strong>tan v<strong>en</strong>tajas como <strong>la</strong><br />
s<strong>en</strong>cillez, adaptabilidad y robustez <strong>de</strong> los métodos, pue<strong>de</strong>n mejorar su r<strong>en</strong>dimi<strong>en</strong>to<br />
utilizando recursos computacionales y estrategias intelig<strong>en</strong>tes (biológica, económica,<br />
procesos industriales, <strong>en</strong>tre otras) que permite diseñar y mejorar métodos heurísticos muy<br />
g<strong>en</strong>erales con alto r<strong>en</strong>dimi<strong>en</strong>to.<br />
Mecanismo <strong>de</strong> Paro <strong><strong>de</strong>l</strong> Algoritmo<br />
En <strong>la</strong> figura 3.1 se visualiza una c<strong>la</strong>sificación don<strong>de</strong> el criterio fundam<strong>en</strong>tal es el mecanismo<br />
<strong>de</strong> paro utilizado. Para métodos heurísticos específicos el mecanismo <strong>de</strong> paro está bi<strong>en</strong><br />
<strong>de</strong>finido por el problema <strong>de</strong> optimización y <strong>en</strong> <strong>la</strong>s metaheurísticos su mecanismo <strong>de</strong> paro lo<br />
contro<strong>la</strong> el usuario bajo <strong>la</strong> <strong>de</strong>finición establecida por <strong>la</strong> estrategia intelig<strong>en</strong>te [Barr95].<br />
Figura 3.1 C<strong>la</strong>sificación <strong>de</strong> Algoritmos <strong>de</strong> Solución por mecanismo <strong>de</strong> paro<br />
25
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
3.2 Algoritmo exacto <strong>de</strong> Ramificación y Acotami<strong>en</strong>to<br />
El objetivo <strong>de</strong> los algoritmos exactos es aplicar procedimi<strong>en</strong>tos a los que se les exige que <strong>la</strong><br />
solución aportada sea óptima o factible. El Método Ramificación y Acotami<strong>en</strong>to divi<strong>de</strong><br />
sistemáticam<strong>en</strong>te el espacio <strong>de</strong> soluciones <strong>en</strong> subproblemas, suprimi<strong>en</strong>do partes que no<br />
cont<strong>en</strong>gan puntos <strong>en</strong>teros factibles hasta <strong>en</strong>contrar un subproblema cuya solución óptima<br />
satisface <strong>la</strong>s condiciones <strong>en</strong>teras [Avélez97, Hbaez02].<br />
Dado que <strong>la</strong>s situaciones pres<strong>en</strong>tadas <strong>en</strong> el mundo real implican dar solución a problemas <strong>de</strong><br />
gran tamaño, <strong>la</strong> aplicación <strong>de</strong> los algoritmos exactos se ve limitada <strong>de</strong>bido a los recursos, tanto<br />
<strong>de</strong> tiempo y memoria, requeridos para resolver esta c<strong>la</strong>se <strong>de</strong> problemas [Melián03]. La<br />
implem<strong>en</strong>tación <strong><strong>de</strong>l</strong> algoritmo exacto aplicado al problema Bin-Packing se <strong>de</strong>scribe <strong>en</strong> <strong>la</strong><br />
sección 6.2.<br />
3.3 Aceptación por Umbral<br />
Aceptación por Umbral (Threshol Acceptation, TA <strong>en</strong> inglés), es un variación <strong>de</strong> <strong>la</strong><br />
metaheurística Recocido Simu<strong>la</strong>do (Simu<strong>la</strong>ted Annealing, SA <strong>en</strong> inglés), consume m<strong>en</strong>os<br />
tiempo computacional que el método original <strong>de</strong> SA, el cual se inspira <strong>en</strong> <strong>la</strong> simu<strong>la</strong>ción <strong><strong>de</strong>l</strong><br />
proceso <strong>de</strong> recocido <strong>de</strong> metales. A continuación se realiza una <strong>de</strong>scripción g<strong>en</strong>eral y<br />
algorítmica <strong>de</strong> TA; finalizando con su implem<strong>en</strong>tación.<br />
3.3.1 Descripción G<strong>en</strong>eral<br />
El proceso <strong>de</strong> recocido <strong>de</strong> materiales <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> <strong>la</strong> física <strong><strong>de</strong>l</strong> estado sólido una <strong>de</strong> sus<br />
mayores aplicaciones, se aplica para que los metales estén formados por una estructura o red<br />
cristalina, <strong>en</strong> <strong>la</strong> que los átomos están acomodados <strong>en</strong> una disposición geométrica repetida<br />
periódicam<strong>en</strong>te.<br />
El proceso físico <strong>de</strong> recocido consiste <strong>en</strong> cal<strong>en</strong>tar un sólido a una temperatura elevada para<br />
reb<strong>la</strong>n<strong>de</strong>cerlo y eliminar <strong>la</strong>s t<strong>en</strong>siones internas <strong><strong>de</strong>l</strong> metal o rigi<strong>de</strong>z <strong>de</strong> <strong>la</strong> red, y posteriorm<strong>en</strong>te<br />
26
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
<strong>en</strong>friarlo <strong>de</strong> manera l<strong>en</strong>ta para que <strong>la</strong>s partícu<strong>la</strong>s se coloqu<strong>en</strong> por sí mismas <strong>en</strong> su estado<br />
fundam<strong>en</strong>tal (bajo nivel <strong>de</strong> <strong>en</strong>ergía) y produzcan un material con gran ductilidad [Sydney91].<br />
Al ser <strong>en</strong>friado con l<strong>en</strong>titud, el material pue<strong>de</strong> t<strong>en</strong>er <strong>la</strong> sufici<strong>en</strong>te <strong>en</strong>ergía para causar el<br />
crecimi<strong>en</strong>to <strong>de</strong> grano. Los granos gran<strong>de</strong>s ti<strong>en</strong><strong>en</strong> m<strong>en</strong>or <strong>en</strong>ergía libre que los granos pequeños.<br />
En condiciones i<strong>de</strong>ales, el m<strong>en</strong>or estado <strong>de</strong> <strong>en</strong>ergía para un metal sería aquel que t<strong>en</strong>dría si<br />
estuviera formado por un solo cristal.<br />
D<strong>en</strong>tro <strong><strong>de</strong>l</strong> proceso <strong>de</strong> recocido, <strong>en</strong> cada temperatura hay un crecimi<strong>en</strong>to máximo <strong><strong>de</strong>l</strong> grano,<br />
esto suce<strong>de</strong> cuando <strong>la</strong> fuerza que impulsa el crecimi<strong>en</strong>to <strong>de</strong> grano se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> equilibrio<br />
con <strong>la</strong> rigi<strong>de</strong>z <strong>de</strong> <strong>la</strong> red. La i<strong>de</strong>a <strong>de</strong> trabajar un proceso <strong>de</strong> recocido es obt<strong>en</strong>er estados <strong>de</strong> baja<br />
<strong>en</strong>ergía <strong>en</strong> un sólido, es <strong>de</strong>cir estructuras cristalinas uniformes libres <strong>de</strong> <strong>de</strong>fectos o <strong>en</strong> su<br />
estado fundam<strong>en</strong>tal [Wiec90].<br />
3.3.2 Descripción Algorítmica<br />
El algoritmo <strong>de</strong> Aceptación por Umbral se pres<strong>en</strong>ta <strong>en</strong> <strong>la</strong> figura 3.2, don<strong>de</strong> X repres<strong>en</strong>ta al<br />
conjunto <strong>de</strong> todas <strong>la</strong>s posibles soluciones,<br />
N( x)<br />
⊂ X es una vecindad asociada a x .<br />
x es una solución actual tal que x∈<br />
X , y<br />
De esta manera, dada una solución actual x , se g<strong>en</strong>era una solución vecina y∈<br />
N( x)<br />
(línea 4);<br />
si el valor <strong>de</strong> <strong>la</strong> solución se <strong>en</strong>cu<strong>en</strong>tra <strong>de</strong>ntro <strong>de</strong> un umbral <strong><strong>de</strong>l</strong>imitado por T , don<strong>de</strong> T es un<br />
parámetro <strong>de</strong> temperatura seleccionado apropiadam<strong>en</strong>te (línea 5), <strong>en</strong>tonces y se acepta<br />
satisfactoriam<strong>en</strong>te como <strong>la</strong> nueva solución actual (línea 6), <strong>de</strong> lo contrario <strong>la</strong> solución actual<br />
quedaría sin cambio (línea 8).<br />
El valor <strong>de</strong> T (línea 13) <strong>de</strong>crece cada vez que se alcanzará el equilibrio térmico y se reduce,<br />
multiplicando repetidam<strong>en</strong>te por un factor <strong>de</strong> <strong>en</strong>friami<strong>en</strong>to µ < 1 mi<strong>en</strong>tras el sistema no se<br />
congele [Cruz00].<br />
27
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
Inicialización: real T, µ; <strong>en</strong>tero i, S<br />
x = <strong>la</strong> mejor solución <strong>de</strong> un conjunto <strong>de</strong> S soluciones factibles (lote);T = valor alto <strong>de</strong> temperatura inicial<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
repetir<br />
repetir<br />
para i = 1 a S<br />
y = solución vecina que ∈ N(x)<br />
si z(y) - z(x) < T <strong>en</strong>tonces<br />
x = y<br />
si no<br />
se rechaza <strong>la</strong> nueva solución<br />
fin_si<br />
i = i + 1<br />
fin_para<br />
hasta que se alcanza el equilibrio térmico<br />
T = µT<br />
hasta que se alcanza el conge<strong>la</strong>mi<strong>en</strong>to<br />
Fin<br />
Figura 3.2. Algoritmo <strong>de</strong> Aceptación por Umbral<br />
3.3.3 Implem<strong>en</strong>tación<br />
En <strong>la</strong> implem<strong>en</strong>tación <strong>de</strong> TA se adaptó <strong>la</strong> configuración propuesta <strong>en</strong> [Lvélez00] para los<br />
sigui<strong>en</strong>tes parámetros <strong>de</strong> control: temperatura inicial, lote, estrategia para equilibrio<br />
térmico, factor <strong>de</strong> <strong>en</strong>friami<strong>en</strong>to y conge<strong>la</strong>mi<strong>en</strong>to (mecanismo <strong>de</strong> paro).<br />
Temperatura (T): Repres<strong>en</strong>ta <strong>la</strong> máxima difer<strong>en</strong>cia <strong>en</strong> costo que pue<strong>de</strong> existir <strong>en</strong>tre una<br />
solución x y <strong>la</strong> sigui<strong>en</strong>te y; permiti<strong>en</strong>do <strong>de</strong> esta manera salir <strong>de</strong> óptimos locales. Por lo tanto, <strong>la</strong><br />
elección <strong>de</strong> <strong>la</strong> temperatura inicial <strong>de</strong>be ser lo sufici<strong>en</strong>tem<strong>en</strong>te alta como para evitar que el<br />
algoritmo se que<strong>de</strong> estancado <strong>en</strong> un mínimo local. Mediante un método <strong>de</strong> muestreo se<br />
<strong>de</strong>termina una temperatura inicial que acepte el 95% <strong>de</strong> <strong>la</strong>s soluciones g<strong>en</strong>eradas.<br />
Lote (S): Debido a que no es conv<strong>en</strong>i<strong>en</strong>te que <strong>la</strong>s propieda<strong>de</strong>s <strong><strong>de</strong>l</strong> sistema global se<br />
<strong>de</strong>termin<strong>en</strong> por medio <strong>de</strong> <strong>la</strong> evaluación <strong>de</strong> <strong>la</strong>s contribuciones <strong>de</strong> cada solución <strong>en</strong> forma<br />
individual, se maneja <strong>en</strong> el algoritmo el concepto <strong>de</strong> lote. El término lote fue expuesto por<br />
primera vez <strong>en</strong> [Romero90], consi<strong>de</strong>rándolo como un conjunto <strong>de</strong> N soluciones aceptadas. En<br />
esta tesis, se utiliza para referirse a un conjunto <strong>de</strong> L soluciones sucesivas factibles, don<strong>de</strong> L<br />
ti<strong>en</strong>e un valor <strong>de</strong> treinta [Pérez98].<br />
28
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Equilibrio Térmico. Se interpreta como el ba<strong>la</strong>nce a<strong>de</strong>cuado <strong>en</strong>tre costo <strong>de</strong> <strong>la</strong>s soluciones y<br />
tiempo computacional. Se cumple esta condición cuando <strong>de</strong>ntro <strong>de</strong> una temperatura <strong>la</strong>s<br />
evaluaciones <strong>de</strong> <strong>la</strong> función objetivo ya no repres<strong>en</strong>tan una mejora significativa <strong>en</strong> el costo.<br />
Factor <strong>de</strong> Enfriami<strong>en</strong>to ( µ ): Determina <strong>la</strong> razón por <strong>la</strong> que será disminuida <strong>la</strong> temperatura<br />
cada vez que se cump<strong>la</strong> <strong>la</strong> condición <strong><strong>de</strong>l</strong> equilibrio térmico. Se establece un factor <strong>de</strong> 0.85.<br />
Conge<strong>la</strong>mi<strong>en</strong>to. Define <strong>la</strong> terminación <strong><strong>de</strong>l</strong> algoritmo y se cumple cuando el sistema ya no<br />
produce mejoras significativas. Se establece el conge<strong>la</strong>mi<strong>en</strong>to cuando se cumple <strong>la</strong> condición<br />
<strong>de</strong> 3 lotes consecutivos sin soluciones aceptadas.<br />
3.4 Búsqueda Tabú<br />
Búsqueda Tabú (Tabú Search, TS <strong>en</strong> inglés), se inspira <strong>en</strong> <strong>la</strong> administración <strong>de</strong> <strong>la</strong> memoria<br />
para <strong>la</strong> búsqueda <strong>de</strong> soluciones, esto con el fin <strong>de</strong> no repetir cosas ma<strong>la</strong>s que se hicieron <strong>en</strong> el<br />
pasado (tabú), evitando retrocesos y llegar a un mismo punto. A continuación se realiza una<br />
<strong>de</strong>scripción g<strong>en</strong>eral y algorítmica <strong>de</strong> TS; finalizando con su implem<strong>en</strong>tación.<br />
3.4.1 Descripción G<strong>en</strong>eral<br />
Des<strong>de</strong> el punto <strong>de</strong> vista <strong>de</strong> intelig<strong>en</strong>cia artificial, el método <strong>de</strong> búsqueda tabú se <strong>de</strong>riva <strong>de</strong> una<br />
ext<strong>en</strong>sión <strong>de</strong> cómo <strong>la</strong> m<strong>en</strong>te es repres<strong>en</strong>tada por el comportami<strong>en</strong>to humano intelig<strong>en</strong>te. Los<br />
humanos a veces operamos acor<strong>de</strong> a alguna situación don<strong>de</strong> sus elem<strong>en</strong>tos promet<strong>en</strong> un cierto<br />
nivel <strong>de</strong> “inconsist<strong>en</strong>cia”. La t<strong>en</strong><strong>de</strong>ncia resultante <strong>de</strong>riva <strong>de</strong> alguna forma el curso o <strong>la</strong> meta<br />
establecida, pres<strong>en</strong>tándose algunas veces situaciones erróneas o correctas. Tal mecanismo se<br />
ha <strong>de</strong>terminado como útil y fundam<strong>en</strong>tal, para <strong>la</strong> ing<strong>en</strong>uidad humana [Glover86, Hans<strong>en</strong>86].<br />
Por lo tanto, búsqueda tabú se establece <strong>de</strong> <strong>de</strong>rivar y explorar una colección <strong>de</strong> estrategias<br />
intelig<strong>en</strong>tes para <strong>la</strong> resolución <strong>de</strong> problemas, basadas <strong>en</strong> procedimi<strong>en</strong>tos implícitos y explícitos<br />
<strong>de</strong> apr<strong>en</strong>dizaje.<br />
29
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
3.4.2 Descripción Algorítmica<br />
El algoritmo TS se muestra <strong>en</strong> <strong>la</strong> figura 3.3, el cual inicia con una solución factible x*∈ X<br />
don<strong>de</strong> X es el conjunto <strong>de</strong> todas <strong>la</strong>s soluciones factibles, busca alcanzar un mínimo global<br />
transitando <strong>en</strong>tre soluciones vecinas que no sean tabú, para esto:<br />
a) N es una función que asocia a cada elem<strong>en</strong>to <strong>en</strong> X una vecindad pre<strong>de</strong>finida (por ejemplo,<br />
se pue<strong>de</strong> <strong>de</strong>finir como el conjunto <strong>de</strong> todas <strong>la</strong>s soluciones factibles que se pue<strong>de</strong>n obt<strong>en</strong>er<br />
cambiando <strong>la</strong> ubicación <strong>de</strong> un objeto <strong>de</strong> un cont<strong>en</strong>edor a otro cont<strong>en</strong>edor)<br />
b) LTabu “memoriza” temporalm<strong>en</strong>te los movimi<strong>en</strong>tos tabú (o prohibidos); <strong>la</strong> búsqueda<br />
finaliza cuando se alcanza el mecanismo <strong>de</strong> paro.<br />
El proceso <strong>de</strong>tal<strong>la</strong>do <strong>de</strong> búsqueda iterativa es el sigui<strong>en</strong>te: se g<strong>en</strong>era una lista <strong>de</strong> soluciones<br />
candidatas LCandi, tomadas <strong>de</strong> <strong>la</strong> vecindad N(x*) (línea 2); se selecciona <strong>la</strong> mejor solución,<br />
valuada con <strong>la</strong> función objetivo z(x), que no sea tabú y, se convierte temporalm<strong>en</strong>te <strong>en</strong><br />
movimi<strong>en</strong>to prohibido agregándolo a <strong>la</strong> lista tabú LTabu (línea 4). Se actualiza el tiempo <strong>de</strong><br />
perman<strong>en</strong>cia t <strong>de</strong> todas <strong>la</strong>s soluciones <strong>en</strong> <strong>la</strong> lista tabú (línea 6), se quita <strong>la</strong> prohibición a <strong>la</strong>s<br />
soluciones que ya cumplieron su tiempo <strong>de</strong> estancia (línea 7 a 8); finalm<strong>en</strong>te, si z(x) < z(x*)<br />
<strong>en</strong>tonces x* se actualiza con x (línea 10), si<strong>en</strong>do ahora ésta <strong>la</strong> mejor solución.<br />
Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
Inicialización: LCandi = ∅; LTabu = ∅<br />
x* = una solución factible inicial; t = valor <strong><strong>de</strong>l</strong> tiempo <strong>de</strong> perman<strong>en</strong>cia (t<strong>en</strong><strong>en</strong>cia) <strong>de</strong> una solución <strong>en</strong> <strong>la</strong> lista<br />
tabú<br />
1 Repetir<br />
2 LCandi = lista <strong>de</strong> soluciones candidatas tomadas <strong>de</strong> <strong>la</strong> vecindad <strong>de</strong> N(x*)<br />
3 x = <strong>la</strong> mejor solución <strong>de</strong> LCandi tal que x ∉ Ltabu<br />
4 LTabu = LTabu ∪ (x, t)<br />
5 para cada e ∈ LTabu<br />
6 se disminuye <strong>la</strong> t<strong>en</strong><strong>en</strong>cia t <strong><strong>de</strong>l</strong> movimi<strong>en</strong>to prohibido e<br />
7 si expiró <strong>la</strong> t<strong>en</strong><strong>en</strong>cia <strong>de</strong> e <strong>en</strong>tonces<br />
8 LTabu = LTabu − (e, t)<br />
9 si z(x) < z(x*) <strong>en</strong>tonces<br />
10 x* = x<br />
11 hasta que se alcanza el mecanismo <strong>de</strong> terminación<br />
12 Fin<br />
Figura 3.3 Algoritmo <strong>de</strong> Búsqueda Tabú<br />
30
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
3.4.3 Implem<strong>en</strong>tación<br />
Con los parámetros establecidos <strong>en</strong> [Laur<strong>en</strong>ce01], se implem<strong>en</strong>tó TS para <strong>la</strong> solución <strong><strong>de</strong>l</strong><br />
problema Bin-Packing. El algoritmo implem<strong>en</strong>tado incluye los elem<strong>en</strong>tos básicos <strong>de</strong> <strong>la</strong><br />
búsqueda: memoria <strong>de</strong> término corto (lista tabú) basada <strong>en</strong> objetos y rec<strong>en</strong>cia, movimi<strong>en</strong>tos<br />
<strong>de</strong> objetos múltiples, un valor fijo <strong>de</strong> t<strong>en</strong><strong>en</strong>cia, mecanismo <strong>de</strong> aspiración por objetivo global y<br />
como mecanismo <strong>de</strong> paro un número máximo <strong>de</strong> 500 iteraciones.<br />
Memoria <strong>de</strong> Término Corto. La memoria es una matriz que registra por cada movimi<strong>en</strong>to<br />
prohibido el objeto m y el cont<strong>en</strong>edor j don<strong>de</strong> se asigna este objeto. La rec<strong>en</strong>cia <strong>de</strong> los<br />
movimi<strong>en</strong>tos se repres<strong>en</strong>ta por el valor <strong>de</strong> <strong>la</strong> t<strong>en</strong><strong>en</strong>cia t, para <strong>la</strong> cual se elige una reg<strong>la</strong> estática<br />
sugerida por [Glover97], fijando su valor <strong>en</strong> 7.<br />
Movimi<strong>en</strong>tos. Se realizan movimi<strong>en</strong>tos <strong>de</strong> objetos múltiples que consist<strong>en</strong> <strong>en</strong> cambiar dos<br />
valores <strong><strong>de</strong>l</strong> problema: se elige al azar un objeto m y se cambia <strong><strong>de</strong>l</strong> cont<strong>en</strong>edor j a otro<br />
cont<strong>en</strong>edor escogido aleatoriam<strong>en</strong>te. La solución obt<strong>en</strong>ida es candidata si cumple con <strong>la</strong>s<br />
restricciones <strong><strong>de</strong>l</strong> mo<strong><strong>de</strong>l</strong>o m<strong>en</strong>cionadas <strong>en</strong> el Capítulo 2.<br />
Lista <strong>de</strong> Candidatos (LCandi). La lista <strong>de</strong> candidatos es una tab<strong>la</strong> que guarda para cada<br />
movimi<strong>en</strong>to candidato (solución vecina factible): el conjunto <strong>de</strong> objetos, el cont<strong>en</strong>edor don<strong>de</strong><br />
esta asignado cada objeto y el valor <strong>de</strong> <strong>la</strong> función objetivo para esa solución. El tamaño <strong>de</strong> <strong>la</strong><br />
lista <strong>de</strong> candidatos inicialm<strong>en</strong>te se fijó <strong>en</strong> 150 y posteriorm<strong>en</strong>te se obtuvo mediante <strong>la</strong><br />
sigui<strong>en</strong>te expresión matemática 3.1.<br />
⎧ 4 si TotalBytes
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Mecanismo <strong>de</strong> Paro. Como mecanismo <strong>de</strong> paro se aplica un número máximo <strong>de</strong> 500<br />
iteraciones.<br />
3.5 Optimización <strong>de</strong> Colonia <strong>de</strong> Hormigas<br />
Optimización basada <strong>en</strong> Colonias <strong>de</strong> Hormigas (Ant Colony Optimization, ACO <strong>en</strong> inglés), se<br />
inspira <strong>en</strong> el comportami<strong>en</strong>to que rige a <strong>la</strong>s hormigas <strong>de</strong> diversas especies para <strong>en</strong>contrar los<br />
caminos más cortos <strong>en</strong>tre <strong>la</strong>s fu<strong>en</strong>tes <strong>de</strong> comida y el hormiguero. A continuación se realiza una<br />
<strong>de</strong>scripción g<strong>en</strong>eral y algorítmica <strong>de</strong> ACO; finalizando con su implem<strong>en</strong>tación.<br />
3.5.1 Descripción G<strong>en</strong>eral<br />
Las hormigas son insectos sociales que viv<strong>en</strong> <strong>en</strong> colonias y que, <strong>de</strong>bido a su co<strong>la</strong>boración<br />
mutua, son capaces <strong>de</strong> mostrar comportami<strong>en</strong>tos complejos y realizar tareas difíciles <strong>de</strong>s<strong>de</strong> el<br />
punto <strong>de</strong> vista <strong>de</strong> una hormiga individual. Un aspecto interesante <strong><strong>de</strong>l</strong> comportami<strong>en</strong>to <strong>de</strong><br />
muchas especies <strong>de</strong> hormigas es su habilidad para <strong>en</strong>contrar los caminos más cortos <strong>en</strong>tre su<br />
hormiguero y <strong>la</strong>s fu<strong>en</strong>tes <strong>de</strong> alim<strong>en</strong>to.<br />
Mi<strong>en</strong>tras se muev<strong>en</strong> <strong>en</strong>tre el hormiguero y <strong>la</strong> fu<strong>en</strong>te <strong>de</strong> alim<strong>en</strong>to, algunas especies <strong>de</strong> hormigas<br />
<strong>de</strong>positan una sustancia química <strong>de</strong>nominada feromona (una sustancia que pue<strong>de</strong> “olerse”). Si<br />
no se <strong>en</strong>cu<strong>en</strong>tra ningún rastro <strong>de</strong> feromona, <strong>la</strong>s hormigas se muev<strong>en</strong> <strong>de</strong> manera básicam<strong>en</strong>te<br />
aleatoria, pero cuando existe feromona <strong>de</strong>positada, ti<strong>en</strong><strong>en</strong> mayor t<strong>en</strong><strong>de</strong>ncia a seguir el rastro.<br />
Entonces, <strong>la</strong>s hormigas elig<strong>en</strong> el camino a seguir con una <strong>de</strong>cisión probabilística sesgada por<br />
<strong>la</strong> cantidad <strong>de</strong> feromona: cuanto más fuerte es el rastro <strong>de</strong> feromona, mayor es <strong>la</strong> probabilidad<br />
<strong>de</strong> elegirlo.<br />
Este comportami<strong>en</strong>to permite a<strong>de</strong>más a <strong>la</strong>s hormigas <strong>en</strong>contrar los caminos más cortos <strong>en</strong>tre<br />
su hormiguero y <strong>la</strong> fu<strong>en</strong>te <strong><strong>de</strong>l</strong> alim<strong>en</strong>to. Inicialm<strong>en</strong>te no existe ningún rastro <strong>de</strong> feromona <strong>en</strong> el<br />
medio y, cuando una hormiga llega a una intersección, elige <strong>de</strong> manera aleatoria una <strong>de</strong> <strong>la</strong>s<br />
bifurcaciones posibles.<br />
32
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Según transcurre el tiempo y mi<strong>en</strong>tras que <strong>la</strong>s hormigas están recorri<strong>en</strong>do los caminos más<br />
prometedores, estos van recibi<strong>en</strong>do una cantidad superior <strong>de</strong> feromona. En un camino más<br />
corto habrá un rastro <strong>de</strong> feromona ligeram<strong>en</strong>te superior y, por lo tanto, <strong>la</strong>s <strong>de</strong>cisiones <strong>de</strong> <strong>la</strong>s<br />
sigui<strong>en</strong>tes hormigas estarán dirigidas <strong>en</strong> mayor medida a dicho camino. A<strong>de</strong>más, este camino<br />
recibirá una proporción mayor <strong>de</strong> feromona por <strong>la</strong>s hormigas que vuelv<strong>en</strong> por él que por <strong>la</strong>s<br />
que vuelvan por el camino más <strong>la</strong>rgo. Este proceso se repite increm<strong>en</strong>tando <strong>la</strong> probabilidad <strong>de</strong><br />
que una hormiga escoja el camino más corto; y finaliza cuando el mecanismo <strong>de</strong> paro no se<br />
satisface [Ducatelle01, Dorigo99].<br />
3.5.2 Descripción Algorítmica<br />
En [Alonso00] se <strong>de</strong>fine hormiga como un ag<strong>en</strong>te computacional que int<strong>en</strong>ta construir<br />
soluciones posibles al problema explotando los rastros <strong>de</strong> feromona disponibles y <strong>la</strong><br />
información heurística. Sin embargo, <strong>en</strong> algunos problemas, pue<strong>de</strong> también construir<br />
soluciones no validas que podrán ser p<strong>en</strong>alizadas <strong>de</strong>p<strong>en</strong>di<strong>en</strong>do <strong>de</strong> lo ina<strong>de</strong>cuada <strong>de</strong> <strong>la</strong> solución.<br />
En <strong>la</strong> figura 3.4 se <strong>de</strong>scribe el procedimi<strong>en</strong>to g<strong>en</strong>eral <strong><strong>de</strong>l</strong> ACO y consta <strong>de</strong> dos fases<br />
principales: g<strong>en</strong>erar hormigas y <strong>de</strong>sarrol<strong>la</strong>r <strong>la</strong> actividad <strong>de</strong> <strong>la</strong>s mismas (línea 5), g<strong>en</strong>erar un<br />
<strong>de</strong>sgaste <strong>de</strong> feromona a través <strong>de</strong> <strong>la</strong> evaporación <strong>de</strong> <strong>la</strong> misma (línea 6). Estas dos fases se<br />
ejecutan iterativam<strong>en</strong>te bajo control <strong>de</strong> un mecanismo <strong>de</strong> paro.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
Inicio<br />
Inicializar parámetros<br />
Mi<strong>en</strong>tras ( Mecanismo <strong>de</strong> terminación no sea satisfecho)<br />
//Programación <strong>de</strong> activida<strong>de</strong>s<br />
G<strong>en</strong>erar Hormigas y su Actividad<br />
Evaporar <strong>la</strong> Feromona<br />
//Fin Programación <strong>de</strong> activida<strong>de</strong>s<br />
Fin Mi<strong>en</strong>tras<br />
Fin Procedimi<strong>en</strong>to<br />
Figura 3.4 Algoritmo <strong>de</strong> Optimización <strong>de</strong> Colonia <strong>de</strong> Hormigas<br />
En <strong>la</strong> figura 3.5 se <strong>de</strong>scribe <strong>la</strong> fase <strong>de</strong> g<strong>en</strong>eración y actividad <strong>de</strong> cada hormiga para el<br />
empacado <strong>de</strong> datos <strong>en</strong> cont<strong>en</strong>edores, que consiste <strong>en</strong> <strong>de</strong>positar <strong>en</strong> un cont<strong>en</strong>edor dado aquel<br />
33
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
objeto con mayor probabilidad <strong>de</strong> construir una mejor solución, <strong>de</strong> acuerdo a su <strong>de</strong>pósito <strong>de</strong><br />
feromona y a su tamaño.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18<br />
19<br />
20<br />
21<br />
22<br />
23<br />
24<br />
25<br />
26<br />
27<br />
28<br />
29<br />
30<br />
31<br />
32<br />
G<strong>en</strong>eración <strong>de</strong> Hormigas y Actividad<br />
Si es <strong>la</strong> primera iteración<br />
G<strong>en</strong>erar Hormigas aleatoriam<strong>en</strong>te<br />
En caso contrario<br />
//construir hormiga<br />
Repetir para cada hormiga<br />
Repetir mi<strong>en</strong>tras todos los objetos son acomodados<br />
Abre un nuevo cont<strong>en</strong>edor<br />
Repetir hasta que ningún objeto se acomo<strong>de</strong> <strong>en</strong> el cont<strong>en</strong>edor<br />
Repetir para cada objeto restante <strong>de</strong> tamaño j que no fue<br />
acomodado<br />
Sumar <strong>la</strong> feromona <strong>en</strong>tre j y todos los objetos <strong>de</strong><br />
tamaño i que están <strong>en</strong> el cont<strong>en</strong>dor<br />
Divi<strong>de</strong> esta suma con el numero <strong>de</strong> objetos que se<br />
<strong>en</strong>cu<strong>en</strong>tran el cont<strong>en</strong>edor<br />
Calcu<strong>la</strong> <strong>la</strong> probabilidad para j (expresión 3.2).<br />
Fin Repetir<br />
Elige un objeto <strong>de</strong> acuerdo a <strong>la</strong>s probabilida<strong>de</strong>s calcu<strong>la</strong>das<br />
Fin Repetir<br />
Fin repetir<br />
//redistribuir por búsqueda local<br />
Encontrar <strong>la</strong> cantidad <strong>de</strong> cont<strong>en</strong>edores m<strong>en</strong>os ll<strong>en</strong>os<br />
Remover <strong>de</strong> ellos <strong>la</strong> solución y etiquetar sus objetos como objetos<br />
libres<br />
Repetir para cada uno <strong>de</strong> los cont<strong>en</strong>edores restantes<br />
Probar: remp<strong>la</strong>zar 2 objetos actuales por 2 objetos libres,<br />
haci<strong>en</strong>do que el cont<strong>en</strong>edor se ll<strong>en</strong>e.<br />
Probar: reemp<strong>la</strong>zar 2 cont<strong>en</strong>edores actuales por un objeto libre<br />
Probar: reemp<strong>la</strong>zar un objeto actual por un objeto libre<br />
Fin Repetir<br />
Or<strong>de</strong>nar los objetos libres restantes <strong>en</strong> or<strong>de</strong>n <strong>de</strong>creci<strong>en</strong>te por tamaño<br />
Repetir para cada objeto libre<br />
Colocar el objeto libre <strong>en</strong> el primer cont<strong>en</strong>edor a<strong>de</strong>cuado<br />
Si ningún cont<strong>en</strong>edor pue<strong>de</strong> acomodar el objeto<br />
G<strong>en</strong>era un nuevo cont<strong>en</strong>edor con el objeto<br />
Fin Si<br />
Fin Repetir<br />
Calcu<strong>la</strong> <strong>la</strong> aptitud <strong>de</strong> <strong>la</strong> hormiga<br />
Fin Repetir<br />
Fin si<br />
Figura 3.5 Algoritmo <strong>de</strong> G<strong>en</strong>eración <strong>de</strong> Hormigas y Actividad<br />
34
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Primeram<strong>en</strong>te se distribuy<strong>en</strong> objetos <strong>en</strong> cont<strong>en</strong>edores <strong>de</strong> <strong>la</strong> hormiga (línea 4 a 14), esta<br />
actividad se <strong>de</strong>sarrol<strong>la</strong> hasta que todos los objetos sean acomodados, cuidando siempre que no<br />
excedan <strong>la</strong> capacidad <strong><strong>de</strong>l</strong> cont<strong>en</strong>edor.<br />
El rastro <strong>de</strong> feromona e información <strong>de</strong> <strong>la</strong> heurística <strong>de</strong>finida son usadas por <strong>la</strong>s hormigas para<br />
construir soluciones. Es <strong>de</strong>cir, cada hormiga comi<strong>en</strong>za con el conjunto <strong>de</strong> objetos para ser<br />
colocados y un cont<strong>en</strong>edor vacío. Se adicionará los objetos uno por uno a este bin, hasta que<br />
ninguno <strong>de</strong> los objetos faltantes puedan ser sean acomodados <strong>en</strong> el cont<strong>en</strong>edor, este es cerrado,<br />
y un nuevo cont<strong>en</strong>edor es disponible. La probabilidad <strong>de</strong> que una hormiga k seleccione un<br />
objeto j como el próximo objeto para acomodar <strong>en</strong> el cont<strong>en</strong>dor nuevo b <strong>en</strong> <strong>la</strong> solución<br />
parcial x es dada por <strong>la</strong> expresión 3.2.<br />
P<br />
k<br />
( s, b,<br />
j)<br />
⎧ ( j)<br />
⎤i⎡s<br />
⎤<br />
j<br />
⎪<br />
⎪ ⎡τ<br />
( g)<br />
⎡ ⎤<br />
∑<br />
⎪<br />
= ⎨<br />
⎪⎪⎪⎪⎩<br />
β<br />
⎡⎣τ<br />
b ⎦ ⎣ ⎦<br />
β<br />
g J b<br />
s<br />
∈ ⎣ ⎤⎦i<br />
g<br />
ksb ( , )<br />
⎣ ⎦<br />
( , )<br />
si j ∈ J s b<br />
0 <strong>de</strong> otro modo<br />
k<br />
(3.2)<br />
don<strong>de</strong>:<br />
Jk<br />
( , )<br />
x b = Conjunto <strong>de</strong> objetos que califican para incluir <strong>en</strong> el cont<strong>en</strong>dor actual. Estos objetos<br />
van formando <strong>la</strong> solución parcial s y son a<strong>de</strong>cuadam<strong>en</strong>te acomodados <strong>en</strong> el cont<strong>en</strong>edor b . s<br />
j<br />
= Tamaño <strong><strong>de</strong>l</strong> objeto j .<br />
β<br />
τ<br />
b<br />
g<br />
= Pon<strong>de</strong>ra <strong>la</strong> importancia re<strong>la</strong>tiva <strong>de</strong> los rastros <strong>de</strong> feromona<br />
= Es <strong>la</strong> cantidad <strong>de</strong> feromonas<br />
= El resto <strong>de</strong> los objetos que califican para el cont<strong>en</strong>edor actual.<br />
El cálculo <strong>de</strong> probabilidad requiere obt<strong>en</strong>er <strong>la</strong> cantidad <strong>de</strong> feromona <strong>de</strong> un objeto dado (líneas<br />
8 y 9); el objeto con mayor probabilidad será colocado <strong>en</strong> el cont<strong>en</strong>edor actual, concluy<strong>en</strong>do<br />
con esto el proceso <strong>de</strong> distribución. La expresión 3.3 <strong>de</strong>termina <strong>la</strong> feromona.<br />
35
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
don<strong>de</strong>:<br />
∑i ∈ b<br />
τ ( , ) b<br />
i j<br />
∑ ∈<br />
⎧ τ ( i,<br />
j)<br />
(3.3)<br />
i b b<br />
⎪<br />
if b ≠ {}<br />
b<br />
τ<br />
b(<br />
j)<br />
= ⎨<br />
⎪<br />
⎪⎩<br />
1 otro caso<br />
= Es <strong>la</strong> suma <strong>de</strong> todos los valores <strong>de</strong> feromona <strong>de</strong> los objetos i que están<br />
ya colocados <strong>en</strong> el cont<strong>en</strong>dor b sin incluir <strong>la</strong> <strong><strong>de</strong>l</strong> objeto<br />
j , se divi<strong>de</strong> con el número <strong>de</strong><br />
objetos ( b ) que están <strong>en</strong> b . Si<br />
<strong>de</strong> 1.<br />
b<br />
esta vacío, el valor <strong>de</strong> <strong>la</strong> feromona adquiere el valor<br />
Posteriorm<strong>en</strong>te, se redistribuy<strong>en</strong> los objetos por búsqueda local (líneas 15 a 28) con <strong>la</strong><br />
finalidad <strong>de</strong> mejorar <strong>la</strong> solución construida. Para ello primero se vacían los cont<strong>en</strong>edores<br />
m<strong>en</strong>os ll<strong>en</strong>os, posteriorm<strong>en</strong>te se hac<strong>en</strong> int<strong>en</strong>tos <strong>de</strong> intercambio <strong>de</strong> objetos <strong>de</strong>ntro <strong>de</strong> los<br />
cont<strong>en</strong>edores por aquellos que fueron liberados, por último se int<strong>en</strong>tan acomodar los objetos<br />
libres <strong>en</strong> los cont<strong>en</strong>edores abiertos, sólo si no es posible se abre un nuevo cont<strong>en</strong>edor. Se<br />
calcu<strong>la</strong> el valor <strong>de</strong> <strong>la</strong> nueva solución, con el cual se <strong>de</strong>termina <strong>la</strong> aptitud <strong>de</strong> <strong>la</strong> hormiga.<br />
El proceso <strong>de</strong> evaporación e increm<strong>en</strong>to <strong>de</strong> feromona se muestra <strong>en</strong> <strong>la</strong> figura 3.6. Primero se<br />
obti<strong>en</strong>e <strong>la</strong> mejor solución <strong>de</strong> <strong>la</strong> iteración y se compara con <strong>la</strong> mejor solución global, para<br />
quedarse con <strong>la</strong> mejor <strong>de</strong> los dos (línea 1); posteriorm<strong>en</strong>te se evapora <strong>la</strong> feromona utilizando<br />
un factor <strong>de</strong> evaporación ρ (línea 2). A continuación se realiza un recorrido por todas <strong>la</strong>s<br />
combinaciones <strong>de</strong> pesos <strong>de</strong> objetos unidos <strong>en</strong> un cont<strong>en</strong>edor. En estos objetos se realiza un<br />
<strong>de</strong>pósito <strong>de</strong> feromona con base al valor <strong>de</strong> <strong>la</strong> aptitud <strong>de</strong> <strong>la</strong> hormiga (líneas 3 a 7).<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
Evaporar feromona<br />
Reemp<strong>la</strong>zar <strong>la</strong> mejor hormiga global si <strong>la</strong> hormiga <strong>de</strong> esta iteración fue mejor<br />
Decrem<strong>en</strong>tar feromona multiplicando toda <strong>la</strong> matriz <strong>de</strong> feromonas por el factor <strong>de</strong><br />
evaporación ρ<br />
Repetir para cada cont<strong>en</strong>edor <strong>en</strong> <strong>la</strong> solución <strong>de</strong> <strong>la</strong> mejor hormiga global<br />
Repetir para cada combinación <strong>de</strong> objetos i y j <strong>de</strong>ntro <strong>de</strong> <strong>la</strong> mejor hormiga<br />
Increm<strong>en</strong>tar <strong>la</strong> feromona ( i,<br />
j)<br />
Fin Repetir<br />
Fin Repetir<br />
τ con <strong>la</strong> aptitud <strong>de</strong> <strong>la</strong> solución<br />
Figura 3.6 Algoritmo <strong>de</strong> Evaporación <strong>de</strong> Feromona<br />
36
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
3.5.3 Implem<strong>en</strong>tación<br />
Consi<strong>de</strong>rando los parámetros establecidos <strong>en</strong> [Ducatelle01] se configuraron los elem<strong>en</strong>tos<br />
básicos <strong>de</strong> <strong>la</strong> búsqueda: radio <strong>de</strong> evaporación, cantidad <strong>de</strong> hormigas, importancia <strong>de</strong> <strong>la</strong><br />
información heurística y mecanismo <strong>de</strong> paro.<br />
Cantidad <strong>de</strong> hormigas: Se estableció <strong>en</strong> 10 hormigas.<br />
Importancia <strong>de</strong> <strong>la</strong> información heurística( β ) : Este valor impi<strong>de</strong> <strong>en</strong>contrar soluciones<br />
ma<strong>la</strong>s <strong>de</strong>ntro <strong><strong>de</strong>l</strong> proceso <strong>de</strong> ACO. Se estableció el valor <strong>de</strong> 2.<br />
Radio <strong>de</strong> Evaporación ( ρ ): Entre más alto significa mayor exploración <strong>de</strong>ntro <strong>de</strong> <strong>la</strong><br />
estructura <strong>de</strong> <strong>la</strong> hormiga. El valor establecido fue <strong>de</strong> 0.75.<br />
Mecanismo <strong>de</strong> paro: Se <strong>de</strong>fine como <strong>la</strong> proporción <strong>de</strong> 20000 evaluaciones <strong>en</strong>tre <strong>la</strong> cantidad<br />
<strong>de</strong> hormigas.<br />
3.6 Algoritmos Aproximados <strong>de</strong> Propósito Especifico para Bin-Packing<br />
En ésta sección se <strong>de</strong>scrib<strong>en</strong> aspectos g<strong>en</strong>erales y <strong>de</strong> <strong>la</strong>s estrategias <strong>de</strong>terministas aplicadas al<br />
problema Bin-Packing.<br />
3.6.1 Aspectos G<strong>en</strong>erales<br />
Existe dos tipos <strong>de</strong> algoritmos aproximados aplicados a este problema: En_línea y<br />
Fuera_línea. Para propósitos <strong>de</strong> esta tesis se trabajaron con los algoritmos <strong>de</strong> tipo Fuera_<br />
línea.<br />
Algoritmos Fuera <strong>de</strong> Línea<br />
Estos algoritmos permit<strong>en</strong> mant<strong>en</strong>er los objetos <strong>en</strong> un espacio establecido antes <strong>de</strong> su<br />
verda<strong>de</strong>ra distribución. Or<strong>de</strong>nan todos los objetos <strong>en</strong> forma <strong>de</strong>creci<strong>en</strong>te permiti<strong>en</strong>do mejorar el<br />
<strong>de</strong>sempeño <strong><strong>de</strong>l</strong> algoritmo. Entre ellos se <strong>en</strong>cu<strong>en</strong>tran los algoritmos Primer Ajuste Decreci<strong>en</strong>te<br />
y Mejor Ajuste Decreci<strong>en</strong>te.<br />
37
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
En [Borie98] se propon<strong>en</strong> variaciones <strong>de</strong> estos algoritmos introduciéndolos al concepto <strong>de</strong><br />
apareami<strong>en</strong>to <strong>de</strong> ajuste utilizando un número <strong>de</strong> cont<strong>en</strong>edores complem<strong>en</strong>tarios. Este número<br />
pue<strong>de</strong> ser 5, 10, 25, o 50. Los cont<strong>en</strong>edores complem<strong>en</strong>tarios acomodan objetos cuyo tamaño<br />
sobrepasa el 50% <strong>de</strong> su capacidad. Los algoritmos que utilizan este concepto son:<br />
Apareami<strong>en</strong>to al Primer Ajuste, Apareami<strong>en</strong>to <strong><strong>de</strong>l</strong> Mejor Ajuste y Ajuste Modificado<br />
Decreci<strong>en</strong>te.<br />
Para todos los algoritmos <strong>de</strong>scritos <strong>en</strong> <strong>la</strong>s sigui<strong>en</strong>tes secciones se proporciona el tamaño <strong><strong>de</strong>l</strong><br />
cont<strong>en</strong>edor c , y un conjunto <strong>de</strong> objetos S { s s s }<br />
=<br />
1, 2,..., n<br />
don<strong>de</strong> 0 si<br />
≤ ≤ c para 1 ≤i≤n.<br />
3.6.2 Primer Ajuste Decreci<strong>en</strong>te<br />
El algoritmo Primer Ajuste Decreci<strong>en</strong>te ( First Fit Decreasing, FFD por sus sig<strong>la</strong>s <strong>en</strong> inglés)<br />
coloca los tamaños <strong>de</strong> los objetos <strong>en</strong> una lista S or<strong>de</strong>nada <strong>en</strong> forma <strong>de</strong>creci<strong>en</strong>te como se indica<br />
<strong>en</strong> <strong>la</strong> figura 3.7. Se escoge el sigui<strong>en</strong>te objeto i <strong>de</strong> <strong>la</strong> lista S y se coloca <strong>en</strong> el primer cont<strong>en</strong>edor<br />
que t<strong>en</strong>ga sufici<strong>en</strong>te capacidad para almac<strong>en</strong>arlo. Si ningún cont<strong>en</strong>edor parcialm<strong>en</strong>te ll<strong>en</strong>o<br />
ti<strong>en</strong>e sufici<strong>en</strong>te capacidad para almac<strong>en</strong>ar el objeto, se coloca <strong>en</strong> un cont<strong>en</strong>edor vacío<br />
(línea 5 a 7).<br />
Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
Variables <strong>en</strong>teras: i,<br />
j contro<strong>la</strong>n objeto y cont<strong>en</strong>edor respectivam<strong>en</strong>te; n es <strong>la</strong> cantidad <strong>de</strong> objetos y b[]<br />
repres<strong>en</strong>ta al cont<strong>en</strong>edor.<br />
1 Inicio<br />
2 Or<strong>de</strong>na S <strong>en</strong> forma <strong>de</strong>creci<strong>en</strong>te<br />
3 Para j = 1 hasta n b[ j ] = 0,<br />
j = 1 //inicializa y se coloca <strong>en</strong> el primer cont<strong>en</strong>edor<br />
4 Repetir i = 1 hasta n //<strong>de</strong>s<strong>de</strong> el primer hasta el último objeto <strong>de</strong> <strong>la</strong> lista <strong>de</strong>creci<strong>en</strong>te<br />
5 Si b[ j] + si<br />
< c //el cont<strong>en</strong>edor no ha llegado a su capacidad<br />
6 bj [ ] = bj [ ] + si<br />
//sigue ll<strong>en</strong>ando cont<strong>en</strong>edor actual<br />
7 En caso contrario<br />
8 j = índice <strong><strong>de</strong>l</strong> primer cont<strong>en</strong>edor disponible vacío<br />
9 bj [ ] = bj [ ] + si<br />
// comi<strong>en</strong>za a ll<strong>en</strong>ar el nuevo cont<strong>en</strong>edor<br />
10 Fin si<br />
11 Fin Repetir<br />
12 Fin procedimi<strong>en</strong>to<br />
Figura 3.7 Algoritmo First Fit Decreasing, FFD<br />
38
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
3.6.3 Mejor Ajuste Decreci<strong>en</strong>te<br />
En <strong>la</strong> figura 3.8, se indica el algoritmo Mejor Ajuste Decreci<strong>en</strong>te (Best Fit Decreasing, BFD<br />
por sus sig<strong>la</strong>s <strong>en</strong> inglés) don<strong>de</strong> los objetos no son colocados <strong>en</strong> el primer cont<strong>en</strong>edor que t<strong>en</strong>ga<br />
espacio para almac<strong>en</strong>arlo, se colocan <strong>en</strong> el mejor cont<strong>en</strong>edor parcialm<strong>en</strong>te-ll<strong>en</strong>o que lo pueda<br />
almac<strong>en</strong>ar (línea 5 y 6).<br />
Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
Variables <strong>en</strong>teras: i,<br />
j contro<strong>la</strong>n objeto y cont<strong>en</strong>edor respectivam<strong>en</strong>te; n es <strong>la</strong> cantidad <strong>de</strong> objetos y b[]<br />
repres<strong>en</strong>ta al cont<strong>en</strong>edor.<br />
1 Inicio<br />
2 Or<strong>de</strong>na S <strong>en</strong> forma <strong>de</strong>creci<strong>en</strong>te<br />
3 Para j = 1 hasta n b[ j ] = 0<br />
4 Repetir i = 1 hasta n //<strong>de</strong>s<strong>de</strong> el primer hasta el último objeto <strong>de</strong> <strong>la</strong> lista <strong>de</strong>creci<strong>en</strong>te<br />
5 Busca el índice j (<strong>de</strong>s<strong>de</strong> j = 1 hasta n ) cont<strong>en</strong>edor que pueda acomodar el objeto<br />
6 bj [ ] = bj [ ] + si<br />
7 Fin si<br />
8 Fin Repetir<br />
9 Fin procedimi<strong>en</strong>to<br />
Figura 3.8 Algoritmo Best Fit Decreasing, BFD<br />
3.6.4 Apareami<strong>en</strong>to al Primer Ajuste<br />
El algoritmo Apareami<strong>en</strong>to al Primer Ajuste (Match to First Fit, MFF por sus sig<strong>la</strong>s <strong>en</strong> inglés)<br />
es una variación <strong>de</strong> FFD, y se muestra <strong>en</strong> <strong>la</strong> figura 3.9. dado un número <strong>de</strong> cont<strong>en</strong>edores<br />
complem<strong>en</strong>tarios ( numcompl ), cada uno <strong>de</strong> esos cont<strong>en</strong>edores se configura para almac<strong>en</strong>ar<br />
objetos <strong>en</strong> un único rango <strong>de</strong> tamaños (línea 2).<br />
A medida que <strong>la</strong> lista es procesada, cada objeto es examinado para verificar si pue<strong>de</strong> ser<br />
empacado con objetos <strong>de</strong> un cont<strong>en</strong>edor complem<strong>en</strong>tario apropiado (línea 5 a 7) o <strong>en</strong> un<br />
nuevo cont<strong>en</strong>edor complem<strong>en</strong>tario (línea 8 a 10); <strong>en</strong> caso contrario se empaca el objeto <strong>en</strong> un<br />
cont<strong>en</strong>edor parcialm<strong>en</strong>te ll<strong>en</strong>o disponible utilizando FFD (líneas 12 a 18). Finalm<strong>en</strong>te, los<br />
objetos que aún permanec<strong>en</strong> <strong>en</strong> los cont<strong>en</strong>edores complem<strong>en</strong>tarios se empacan <strong>en</strong> los<br />
cont<strong>en</strong>edores disponibles (línea 21).<br />
39
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Variables <strong>en</strong>teras:<br />
i,<br />
j<br />
Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
contro<strong>la</strong>n objeto y cont<strong>en</strong>edor respectivam<strong>en</strong>te; n es <strong>la</strong> cantidad <strong>de</strong> objetos y b[]<br />
repres<strong>en</strong>ta al cont<strong>en</strong>edor; bcomp[] repres<strong>en</strong>ta cont<strong>en</strong>edor complem<strong>en</strong>tario<br />
, numcompl, rango,<br />
k = 0<br />
1 Inicio<br />
2 Configura rango <strong>de</strong> tamaño para guardar objetos <strong>en</strong> cont<strong>en</strong>edores complem<strong>en</strong>tarios<br />
3 Para j = 1 hasta n b[ j ] = 0,<br />
j = 1 //inicializa y se coloca <strong>en</strong> el primer cont<strong>en</strong>edor<br />
4 Para i = 1 hasta n<br />
5 Si ( k ≤ numcompl y s ≤ rango )<br />
i<br />
6 Si bcomp[ k] + si<br />
≤c<br />
7 bcomp[ k] = bcomp[ k] + si<br />
8 En caso contrario<br />
9 k = k+<br />
1<br />
10 bcomp[ k] = bcomp[ k] + si<br />
11 Fin si<br />
12 En caso contrario<br />
13 Si b[ j] + si<br />
> c //el cont<strong>en</strong>edor llego a su capacidad<br />
14 j = índice <strong><strong>de</strong>l</strong> primer cont<strong>en</strong>edor disponible vacío<br />
15 bj [ ] = bj [ ] + si<br />
// comi<strong>en</strong>za a ll<strong>en</strong>ar el nuevo cont<strong>en</strong>edor<br />
16 En caso contrario<br />
17 bj [ ] = bj [ ] + si<br />
//sigue ll<strong>en</strong>ando cont<strong>en</strong>edor actual<br />
18 Fin si<br />
19 Fin si<br />
20 Fin para<br />
21 Empacar objetos <strong>de</strong> cont<strong>en</strong>edores complem<strong>en</strong>tarios <strong>en</strong> los cont<strong>en</strong>edores disponibles<br />
mediante el algoritmo fall-back<br />
22 Fin procedimi<strong>en</strong>to<br />
Figura 3.9 Algoritmo Match to First Fit, MFF<br />
3.6.5 Ajuste Modificado Decreci<strong>en</strong>te<br />
El algoritmo Ajuste Modificado Decreci<strong>en</strong>te (Modified Best Fit Decreasing, MBFD sus sig<strong>la</strong>s<br />
<strong>en</strong> inglés) se muestra <strong>en</strong> <strong>la</strong> figura 3.10, don<strong>de</strong> requiere <strong>de</strong> un valor porc<strong>en</strong>taje que repres<strong>en</strong>ta <strong>la</strong><br />
capacidad <strong><strong>de</strong>l</strong> cont<strong>en</strong>edor (línea 2) que pue<strong>de</strong> permanecer vacío y aún calificar como “bu<strong>en</strong><br />
ajuste”(línea 6 y 7). Los objetos <strong>de</strong> tamaño mayor <strong><strong>de</strong>l</strong> 50% <strong>de</strong> <strong>la</strong> capacidad <strong><strong>de</strong>l</strong> cont<strong>en</strong>edor son<br />
colocados <strong>en</strong> un cont<strong>en</strong>edor propio (líneas 9 a 12). Todos los objetos restantes se empacan<br />
utilizando el algoritmo básico BFD (línea 14 a 15). Finalm<strong>en</strong>te, los objetos que aún<br />
permanec<strong>en</strong> <strong>en</strong> los cont<strong>en</strong>edores complem<strong>en</strong>tarios se empacan <strong>en</strong> los cont<strong>en</strong>edores disponibles<br />
(línea 17).<br />
40
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
3.6.6 Apareami<strong>en</strong>to <strong><strong>de</strong>l</strong> Mejor Ajuste<br />
El algoritmo Apareami<strong>en</strong>to <strong><strong>de</strong>l</strong> Mejor Ajuste ( Match to Best Fit, MBF por sus sig<strong>la</strong>s <strong>en</strong><br />
inglés) que se muestra <strong>en</strong> <strong>la</strong> figura 3.11, es una variación <strong>de</strong> BFD y es simi<strong>la</strong>r a MFF.<br />
Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
Variables <strong>en</strong>teras: i,<br />
j contro<strong>la</strong>n objeto y cont<strong>en</strong>edor respectivam<strong>en</strong>te; n es <strong>la</strong> cantidad <strong>de</strong> objetos y b[]<br />
repres<strong>en</strong>ta al cont<strong>en</strong>edor;<br />
1 Inicio<br />
2 Configurar capacidad <strong>de</strong> bu<strong>en</strong> ajuste cappor<br />
3 Or<strong>de</strong>na S <strong>en</strong> forma <strong>de</strong>creci<strong>en</strong>te<br />
4 Para j = 1 hasta n b[ j ] = 0;<br />
j = 1 //inicializa y se coloca <strong>en</strong> el primer cont<strong>en</strong>edor<br />
5 Para i = 1 hasta n<br />
6 Si b[ j] + si<br />
< cappor<br />
7 bj [ ] = bj [ ] + si<br />
8 En caso contrario<br />
9 Si si<br />
> ( c / 2)<br />
10 j = j+<br />
1<br />
11 bj [ ] = bj [ ] + si<br />
12 Fin si<br />
13 Fin si<br />
14 Busca el índice j (<strong>de</strong>s<strong>de</strong> j = 1 hasta n ) cont<strong>en</strong>edor que pueda acomodar el objeto<br />
15 bj [ ] = bj [ ] + si<br />
16 Fin para<br />
17 Procedimi<strong>en</strong>to para empacar los objetos restantes <strong>en</strong> cont<strong>en</strong>edores parcialm<strong>en</strong>te-ll<strong>en</strong>os<br />
mediante el algoritmo fall-back<br />
18 Fin procedimi<strong>en</strong>to<br />
Figura 3.10 Algoritmo Modified Best Fit Decreasing, MBFD<br />
41
Capítulo 3<br />
Desarrollo <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Variables <strong>en</strong>teras:<br />
i,<br />
j<br />
Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
contro<strong>la</strong>n objeto y cont<strong>en</strong>edor respectivam<strong>en</strong>te; n es <strong>la</strong> cantidad <strong>de</strong> objetos y b[]<br />
repres<strong>en</strong>ta al cont<strong>en</strong>edor; bcomp[] repres<strong>en</strong>ta cont<strong>en</strong>edor complem<strong>en</strong>tario<br />
, numcompl, rango,<br />
k = 0<br />
1 Inicio<br />
2 Configura rango <strong>de</strong> tamaño para guardar objetos <strong>en</strong> cont<strong>en</strong>edores complem<strong>en</strong>tarios<br />
3 Para j = 1 hasta n b[ j ] = 0;<br />
j = 1 //inicializa y se coloca <strong>en</strong> el primer cont<strong>en</strong>edor<br />
4 Para i = 1 hasta n<br />
5 Si ( k ≤ numcompl y s ≤ rango )<br />
i<br />
6 Si bcomp[ k] + si<br />
≤c<br />
7 bcomp[ k] = bcomp[ k] + si<br />
8 En caso contrario<br />
9 k = k+<br />
1<br />
10 bcomp[ k] = bcomp[ k] + si<br />
11 Fin si<br />
12 En caso contrario<br />
13 Busca el índice j (<strong>de</strong>s<strong>de</strong> j = 1 hasta n ) cont<strong>en</strong>edor que pueda acomodar el objeto<br />
14 bj [ ] = bj [ ] + si<br />
15 Fin si<br />
16 Fin para<br />
17 Empacar objetos <strong>de</strong> cont<strong>en</strong>edores complem<strong>en</strong>tarios <strong>en</strong> los cont<strong>en</strong>edores disponibles<br />
mediante el algoritmo fall-back<br />
18 Fin procedimi<strong>en</strong>to<br />
Figura 3.11 Algoritmo Match to Best Fit, MBF<br />
42
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
4<br />
Análisis <strong>de</strong><br />
Algoritmos <strong>de</strong> Solución<br />
Existe una gran cantidad <strong>de</strong> investigación experim<strong>en</strong>tal sobre algoritmos y heurísticas para<br />
problemas <strong>de</strong> optimización. Entre <strong>la</strong> amplia gama <strong>de</strong> experim<strong>en</strong>tos, los más comunes son los<br />
que comparan el <strong>de</strong>sempeño <strong>de</strong> algoritmos con tres tipos <strong>de</strong> casos <strong>de</strong> pruebas: mo<strong><strong>de</strong>l</strong>os <strong>de</strong><br />
<strong>en</strong>trada <strong>de</strong> casos malos consi<strong>de</strong>rados pesimistas, mo<strong><strong>de</strong>l</strong>os <strong>de</strong> <strong>en</strong>trada realista que son<br />
complicados, mo<strong><strong>de</strong>l</strong>os estándar que son simples. A pesar <strong>de</strong> estos esfuerzos no exist<strong>en</strong><br />
herrami<strong>en</strong>tas analíticas que permitan compr<strong>en</strong><strong>de</strong>r el <strong>de</strong>sempeño <strong>de</strong> algoritmos heurísticos y<br />
seleccionar el algoritmo más a<strong>de</strong>cuado para un caso dado [McGeoch02].<br />
Hay tres categorías principales <strong>de</strong> factores que afectan el <strong>de</strong>sempeño <strong>de</strong> algoritmos: problema,<br />
algoritmo y ambi<strong>en</strong>te <strong>de</strong> prueba. El estudio <strong>de</strong> cada uno <strong>de</strong> estos factores es un problema<br />
abierto <strong>de</strong> <strong>la</strong> computación [Barr95].<br />
En este capítulo se propon<strong>en</strong> métricas que facilitan el análisis <strong>de</strong> algoritmos <strong>de</strong> solución. Para<br />
el análisis <strong>de</strong> <strong>de</strong>sempeño se introduc<strong>en</strong> criterios basados <strong>en</strong> el tiempo <strong>de</strong> efici<strong>en</strong>cia y calidad<br />
43
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
<strong>de</strong> solución. Para el análisis <strong>de</strong> dificultad <strong><strong>de</strong>l</strong> problema y su influ<strong>en</strong>cia <strong>en</strong> algoritmos<br />
heurísticos, se propone el uso complem<strong>en</strong>tario <strong>de</strong> métrica <strong>de</strong> superficie.<br />
4.1 Análisis <strong><strong>de</strong>l</strong> Desempeño<br />
El objetivo fundam<strong>en</strong>tal <strong><strong>de</strong>l</strong> trabajo experim<strong>en</strong>tal es <strong>en</strong>t<strong>en</strong><strong>de</strong>r como el <strong>de</strong>sempeño <strong>de</strong> un<br />
algoritmo <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong> una colección particu<strong>la</strong>r <strong>de</strong> factores que influy<strong>en</strong> <strong>en</strong> él. En experim<strong>en</strong>tos<br />
comparativos <strong>la</strong> primera situación que se ti<strong>en</strong>e que abordar es cómo medir el <strong>de</strong>sempeño dado<br />
que esté es multifactores.<br />
En esta sección se hace una revisión <strong>de</strong> factores y criterios <strong>de</strong> <strong>de</strong>sempeño. En <strong>la</strong> sección 4.3 se<br />
propone una métrica <strong>de</strong> evaluación <strong>de</strong> <strong>de</strong>sempeño basado <strong>en</strong> este estudio.<br />
4.1.1 Factores <strong>de</strong> Desempeño<br />
Los factores que influy<strong>en</strong> <strong>en</strong> el <strong>de</strong>sempeño pue<strong>de</strong>n dividirse <strong>en</strong> dos tipos:<br />
a) Factores Ambi<strong>en</strong>tales: Los cuales son <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> <strong>la</strong> <strong>en</strong>trada y el ambi<strong>en</strong>te <strong>de</strong><br />
programación, y son externos al algoritmo.<br />
b) Factores Intrínsecos: Situaciones que involucran al algoritmo y su implem<strong>en</strong>tación.<br />
Factores Ambi<strong>en</strong>tales<br />
I<strong>de</strong>alm<strong>en</strong>te, los algoritmos <strong>de</strong>b<strong>en</strong> ejecutarse sobre <strong>la</strong>s mismas pruebas <strong>de</strong> problemas y sobre <strong>la</strong><br />
misma configuración <strong>de</strong> computadoras. Los resultados <strong>de</strong> <strong>la</strong>s ejecuciones <strong>en</strong> términos <strong>de</strong><br />
tiempo para <strong>la</strong> solución y calidad <strong>de</strong> <strong>la</strong> solución producida sobre cada instancia <strong><strong>de</strong>l</strong><br />
problema, serían directam<strong>en</strong>te comparables para los heurísticos evaluados.<br />
De esta manera, el amplio rango <strong>de</strong> factores ambi<strong>en</strong>tales <strong>de</strong>b<strong>en</strong> ser contro<strong>la</strong>dos y<br />
docum<strong>en</strong>tados, incluy<strong>en</strong>do: hardware (marca, mo<strong><strong>de</strong>l</strong>o, tamaño <strong>de</strong> memoria, velocidad <strong>de</strong><br />
CPU, número <strong>de</strong> procesadores, esquema <strong>de</strong> comunicación <strong><strong>de</strong>l</strong> procesador), software<br />
(sistema operativo, l<strong>en</strong>guaje, compi<strong>la</strong>dor, configuración <strong><strong>de</strong>l</strong> compi<strong>la</strong>dor), sistema<br />
(mezc<strong>la</strong> <strong>de</strong> trabajo), y factores <strong><strong>de</strong>l</strong> programador (código experto, habilidad <strong>de</strong> afinación)<br />
[Barr95, McGeoch02, Hoos98].<br />
44
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Factores Intrínsecos<br />
La experim<strong>en</strong>tación sobre algoritmos heurísticos involucra evaluación <strong>de</strong> varias posibles<br />
estrategias para mejorar el <strong>de</strong>sempeño, tales como el or<strong>de</strong>n <strong>de</strong> variación <strong>en</strong> iteraciones, o <strong>en</strong><br />
inicializaciones como reg<strong>la</strong>s específicas <strong><strong>de</strong>l</strong> proceso algorítmico, o <strong>la</strong> elección <strong>de</strong> estructuras<br />
<strong>de</strong> datos. Estas estrategias pue<strong>de</strong>n ser agrupadas <strong>en</strong> tres categorías [Barr95, McGeoch02,<br />
Hoos98]:<br />
a) Factores Algorítmicos: Son los que produc<strong>en</strong> mejoras <strong>en</strong> el tiempo <strong>de</strong> <strong>de</strong>sempeño. Entre<br />
los cuales se consi<strong>de</strong>ran <strong>la</strong> evaluación <strong>de</strong> <strong>la</strong> p<strong>la</strong>taforma <strong>de</strong> implem<strong>en</strong>tación, y <strong>la</strong> re<strong>la</strong>ción<br />
básica <strong>de</strong> los datos <strong>de</strong> <strong>en</strong>trada con el número total <strong>de</strong> operaciones efectuados por el<br />
algoritmo.<br />
b) Factores <strong>de</strong> Implem<strong>en</strong>tación: Influy<strong>en</strong> <strong>de</strong> manera constante <strong>en</strong> el tiempo <strong>de</strong> procesami<strong>en</strong>to<br />
<strong><strong>de</strong>l</strong> programa, estos factores <strong>de</strong>p<strong>en</strong><strong>de</strong>n <strong>de</strong> <strong>la</strong> calidad <strong>de</strong> programación efectuada para el<br />
algoritmo.<br />
c) Factores <strong>de</strong> Inicialización: Regu<strong>la</strong>rm<strong>en</strong>te están pres<strong>en</strong>tes <strong>en</strong> algoritmos heurísticos, y se<br />
especifican <strong>en</strong> términos <strong>de</strong> colección; por ejemplo <strong>la</strong> temperatura inicial <strong>en</strong> recocido<br />
simu<strong>la</strong>do, tamaño <strong>de</strong> <strong>la</strong> pob<strong>la</strong>ción <strong>en</strong> algoritmos g<strong>en</strong>éticos. Estos parámetros pue<strong>de</strong>n<br />
ajustarse, y afectan directam<strong>en</strong>te <strong>en</strong> el tiempo <strong>de</strong> procesami<strong>en</strong>to.<br />
4.1.2 Revisión <strong>de</strong> Criterios <strong>de</strong> Desempeño<br />
El <strong>de</strong>sempeño <strong>de</strong> un algoritmo <strong>de</strong> optimización pue<strong>de</strong> medirse a través <strong>de</strong> varias<br />
dim<strong>en</strong>siones, don<strong>de</strong> se incluy<strong>en</strong> el tiempo <strong>de</strong> efici<strong>en</strong>cia, calidad <strong>de</strong> solución, uso <strong>de</strong> espacio y<br />
g<strong>en</strong>eralización <strong>de</strong> <strong>la</strong> aplicación. Para fines <strong>de</strong> esta investigación, <strong>la</strong> evaluación se conc<strong>en</strong>tra <strong>en</strong><br />
dos métricas primarias que son usualm<strong>en</strong>te utilizadas <strong>en</strong> <strong>la</strong> literatura: tiempo <strong>de</strong><br />
procesami<strong>en</strong>to y calidad <strong>de</strong> solución.<br />
En muchas situaciones no se garantiza <strong>en</strong>contrar <strong>la</strong> mejor solución <strong>en</strong> el m<strong>en</strong>or tiempo posible,<br />
por lo que se recomi<strong>en</strong>da consi<strong>de</strong>rar <strong>la</strong> combinación <strong>de</strong> métricas <strong>de</strong> calidad <strong>de</strong> solución y<br />
tiempo <strong>de</strong> procesami<strong>en</strong>to, para evaluar el <strong>de</strong>sempeño <strong>de</strong> algoritmos <strong>de</strong> solución. Cuando se<br />
prueba un algoritmo heurístico <strong>de</strong> un problema dado, lo importante es obt<strong>en</strong>er su tiempo y<br />
radio <strong>de</strong> converg<strong>en</strong>cia hacia <strong>la</strong> solución óptima [McGeoch02].<br />
45
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Calidad <strong>de</strong> Solución<br />
Una limitante fundam<strong>en</strong>tal <strong>de</strong> <strong>la</strong> investigación computacional sobre algoritmos heurísticos<br />
para problemas NP-duros es acerca <strong>de</strong> <strong>la</strong> solución óptima global para cualquier caso <strong><strong>de</strong>l</strong><br />
problema. Existe una variedad <strong>de</strong> estrategias para <strong>la</strong> estimación <strong>de</strong> <strong>la</strong> calidad <strong>de</strong> <strong>la</strong> solución<br />
[McGeoch96, Barr95]:<br />
a) Cuando <strong>la</strong> solución óptima global es conocida, <strong>la</strong> solución heurística pue<strong>de</strong> ser<br />
directam<strong>en</strong>te comparada como una medida <strong>de</strong> efectividad <strong>de</strong> <strong>la</strong> heurística.<br />
b) Cuando <strong>la</strong>s soluciones optimas son <strong>de</strong>sconocidas o no están disponibles, el proporción <strong>de</strong><br />
<strong>de</strong>sviación que es <strong>la</strong> división <strong>de</strong> <strong>la</strong> solución heurística respecto a <strong>la</strong> solución publicada o<br />
teórica, pue<strong>de</strong> ser una medida efectiva para <strong>la</strong> calidad <strong>de</strong> <strong>la</strong> solución<br />
c) En algunas situaciones, cuando un caso dado crece <strong>de</strong> tamaño no permite obt<strong>en</strong>er una<br />
medida <strong>de</strong> calidad aceptada, por lo que es recom<strong>en</strong>dable agregar al análisis una medida<br />
complem<strong>en</strong>taria como el factor tiempo.<br />
Esfuerzo Computacional<br />
Mi<strong>en</strong>tras <strong>la</strong>s heurísticas produc<strong>en</strong> soluciones óptimas conforme avanza <strong>en</strong> su proceso, el<br />
tiempo es un factor c<strong>la</strong>ve. Exist<strong>en</strong> varias estrategias que permit<strong>en</strong> evaluar el <strong>de</strong>sempeño <strong><strong>de</strong>l</strong><br />
algoritmo consi<strong>de</strong>rando este factor [Barr95, Hoss98]:<br />
a) Tiempo hasta <strong>en</strong>contrar <strong>la</strong> mejor solución: Es <strong>de</strong>cir, <strong>de</strong>jar el proceso algorítmico el tiempo<br />
que requiere para <strong>en</strong>contrar <strong>la</strong> solución que se <strong>en</strong>cu<strong>en</strong>tra reportada <strong>en</strong> <strong>la</strong> literatura.<br />
b) Tiempo <strong>de</strong> procesami<strong>en</strong>to total: Se ejecuta el algoritmo heurístico hasta que cump<strong>la</strong> su<br />
criterio <strong>de</strong> paro. En algunas situaciones es recom<strong>en</strong>dable reportar el tiempo obt<strong>en</strong>ido con<br />
una combinación <strong>de</strong> criterios. El objetivo es i<strong>de</strong>ntificar configuración que permitan obt<strong>en</strong>er<br />
bu<strong>en</strong>as soluciones <strong>en</strong> un tiempo corto.<br />
c) Tiempo por fase: Cuando <strong>la</strong> heurística es multifase, se reportan los tiempos como calidad<br />
<strong>de</strong> solución <strong>en</strong> puntos cruciales <strong><strong>de</strong>l</strong> proceso <strong>de</strong> búsqueda, <strong>la</strong>s cuales podrían ser el <strong>de</strong> <strong>la</strong><br />
solución inicial, solución intermedia y solución final.<br />
46
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
4.2 Análisis <strong>de</strong> Superficie<br />
Las sigui<strong>en</strong>tes secciones se <strong>en</strong>focan al estudio <strong><strong>de</strong>l</strong> Mo<strong><strong>de</strong>l</strong>o <strong>de</strong> Superficie <strong>de</strong> Aptitud que<br />
permite a través <strong>de</strong> métricas propuestas analizar <strong>la</strong>s superficies g<strong>en</strong>eradas durante <strong>la</strong> búsqueda.<br />
4.2.1 Análisis <strong><strong>de</strong>l</strong> Espacio <strong>de</strong> Búsqueda Algorítmica<br />
La dificultad <strong><strong>de</strong>l</strong> espacio <strong>de</strong> búsqueda <strong><strong>de</strong>l</strong> problema está re<strong>la</strong>cionada con <strong>la</strong> estructura <strong>de</strong><br />
Superficie <strong>de</strong> Aptitu<strong>de</strong>s. Sin embargo, <strong>la</strong> re<strong>la</strong>ción exacta <strong>en</strong>tre <strong>la</strong>s difer<strong>en</strong>tes características <strong>de</strong><br />
<strong>la</strong> superficie y el tiempo que requiere el algoritmo para <strong>en</strong>contrar bu<strong>en</strong>as soluciones a través<br />
<strong>de</strong> <strong>la</strong> optimización, no es todavía confiable. La dificultad <strong>de</strong> <strong>en</strong>contrar bu<strong>en</strong>as soluciones a<br />
través <strong>de</strong> <strong>la</strong> optimización <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong> múltiples factores, <strong>en</strong>tre ellos: el conjunto <strong>de</strong> aptitu<strong>de</strong>s,<br />
distribución <strong>de</strong> <strong>la</strong>s aptitu<strong>de</strong>s y accesibilidad <strong>de</strong> cada óptimo local [Smith02].<br />
Por otra parte, se realiza <strong>la</strong> sigui<strong>en</strong>te pregunta: ¿Cómo algoritmos <strong>de</strong> búsqueda se muev<strong>en</strong> a<br />
través <strong>de</strong> espacio <strong><strong>de</strong>l</strong> problema, y que hace que el espacio <strong>de</strong> búsqueda sea duro o fácil? En<br />
respuesta a <strong>la</strong> pregunta, m<strong>en</strong>ciona que varias estrategias han sido adoptadas <strong>en</strong> esta área, con<br />
trabajos <strong>en</strong>focados sobre nociones <strong>de</strong> modalidad (el número <strong>de</strong> picos) figura 4.1(a), separación<br />
<strong><strong>de</strong>l</strong> óptimo y el <strong>en</strong>gaño (problemas que confun<strong>de</strong>n al algoritmo <strong>de</strong> solución) figura 4.1(b)<br />
[Kingdon95].<br />
Figura 4.1 Repres<strong>en</strong>tación <strong>de</strong> Superficies <strong>de</strong> Aptitu<strong>de</strong>s<br />
Por consigui<strong>en</strong>te se concluye que <strong>la</strong> re<strong>la</strong>ción <strong>en</strong>tre <strong>la</strong> estructura <strong>de</strong> superficie <strong>de</strong> aptitu<strong>de</strong>s y <strong>la</strong><br />
dificultad <strong>de</strong> <strong>en</strong>contrar bu<strong>en</strong>as soluciones a través <strong>de</strong> <strong>la</strong> optimización no es todavía<br />
47
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
completam<strong>en</strong>te <strong>en</strong>t<strong>en</strong>dido, y propone <strong>la</strong> ext<strong>en</strong>sión <strong>de</strong> técnicas para <strong>de</strong>scribir <strong>la</strong> superficie <strong>de</strong><br />
aptitu<strong>de</strong>s como un importante paso para fom<strong>en</strong>tar esta re<strong>la</strong>ción [Smith02, Kingdon95].<br />
4.2.2 Mo<strong><strong>de</strong>l</strong>o Matemático <strong>de</strong> Superficie <strong>de</strong> Aptitud<br />
En <strong>la</strong> biología evolutiva el mo<strong><strong>de</strong>l</strong>o <strong>de</strong> Superficie <strong>de</strong> Aptitud (Fitness Landscapes, <strong>en</strong><br />
terminología inglés) se usa para visualizar <strong>la</strong> re<strong>la</strong>ción <strong>en</strong>tre los g<strong>en</strong>otipos (o f<strong>en</strong>otipos) y los<br />
sucesos replicados. Se asume que todo g<strong>en</strong>otipo ti<strong>en</strong>e <strong>de</strong>finido una razón <strong>de</strong> replicación<br />
(es <strong>de</strong>cir una aptitud). El conjunto <strong>de</strong> todos los posibles g<strong>en</strong>otipos y su re<strong>la</strong>tivo valor <strong>de</strong><br />
aptitud es a lo que l<strong>la</strong>ma Fitness Landscape. La i<strong>de</strong>a <strong>de</strong> estudiar <strong>la</strong> evolución visualizando <strong>la</strong><br />
distribución <strong>de</strong> los valores <strong>de</strong> aptitu<strong>de</strong>s como una superficie se <strong>de</strong>scribe <strong>en</strong> [Wright32].<br />
Descripción G<strong>en</strong>eral<br />
Algunas propieda<strong>de</strong>s <strong>de</strong> superficie son conocidas por t<strong>en</strong>er alguna influ<strong>en</strong>cia sobre el<br />
<strong>de</strong>sempeño <strong>de</strong> los algoritmos <strong>de</strong> optimización heurística [Reydis02]. A continuación se<br />
ilustran <strong>la</strong>s propieda<strong>de</strong>s más comunes:<br />
∧<br />
∈<br />
Óptimo locales: Un solución x X es un mínimo local si está <strong>en</strong> un vecindad<br />
N N x ∧<br />
∧<br />
⎛ ⎞<br />
⎛ ⎞<br />
∈ ⎜ ⎟ tal que f ⎜x⎟<br />
≤ f ( y)<br />
para todo y∈<br />
N ; <strong>en</strong> caso contrario es un máximo local<br />
⎝ ⎠<br />
⎝ ⎠<br />
⎛<br />
⎜<br />
⎝<br />
∧<br />
⎞<br />
⎟ ≥<br />
⎠<br />
si f x f ( y)<br />
. Este concepto se visualiza gráficam<strong>en</strong>te <strong>en</strong> <strong>la</strong> figura 4.2.<br />
Cu<strong>en</strong>cas: Se <strong>de</strong>fine como el conjunto <strong>de</strong> todas <strong>la</strong>s soluciones y∈<br />
X tal que x ∧ es <strong>la</strong> w-límite <strong>de</strong><br />
<strong>la</strong> dinámica gradi<strong>en</strong>te z= f ( z)<br />
−∆ con <strong>la</strong> condición inicial y . Ent<strong>en</strong>di<strong>en</strong>do como gradi<strong>en</strong>te al<br />
vector perp<strong>en</strong>dicu<strong>la</strong>r a <strong>la</strong> superficie, dirigido <strong>de</strong>s<strong>de</strong> los valores más altos hacia los más bajos<br />
<strong>de</strong> <strong>la</strong> cu<strong>en</strong>ca. El valor <strong>de</strong> <strong>la</strong> gradi<strong>en</strong>te <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong> <strong>la</strong> difer<strong>en</strong>cia <strong>de</strong><br />
y<br />
y<br />
x ∧ ; y <strong>la</strong> distancia que<br />
separa estas dos soluciones, por lo tanto a mayor difer<strong>en</strong>cia, mayor gradi<strong>en</strong>te y a m<strong>en</strong>or<br />
distancia <strong>en</strong>tre soluciones, mayor gradi<strong>en</strong>te también.<br />
48
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
La distribución <strong><strong>de</strong>l</strong> tamaño <strong>de</strong> cu<strong>en</strong>ca es crucial para el <strong>de</strong>sempeño <strong>de</strong> heurísticas simples <strong>de</strong><br />
optimización. El concepto <strong>de</strong> cu<strong>en</strong>ca se pres<strong>en</strong>ta gráficam<strong>en</strong>te <strong>en</strong> <strong>la</strong> figura 4.3.<br />
Figura 4.2 Repres<strong>en</strong>tación <strong>de</strong> una superficie con<br />
óptimos locales<br />
Figura 4.3 Repres<strong>en</strong>tación <strong>de</strong> una superficie con<br />
cu<strong>en</strong>ca<br />
Una superficie <strong>de</strong> aptitu<strong>de</strong>s es a m<strong>en</strong>udo concebido como un rango <strong>de</strong> montañas, don<strong>de</strong> existe<br />
picos locales (puntos don<strong>de</strong> todos los caminos están cuesta abajo o p<strong>en</strong>di<strong>en</strong>te, por ejemplo<br />
aptitu<strong>de</strong>s bajas) y valles (regiones don<strong>de</strong> <strong>la</strong> mayor parte <strong>de</strong> los caminos indican una<br />
asc<strong>en</strong><strong>de</strong>ncia). Una superficie con muchos picos locales ro<strong>de</strong>ado por profundos valles es<br />
l<strong>la</strong>mada rugosa. En <strong>la</strong> figura 4.4 se pres<strong>en</strong>ta una superficie rugosa, don<strong>de</strong> f , p1,<br />
p<br />
2<br />
son valor<br />
<strong>de</strong> aptitud, variable 1 y variable 2, respectivam<strong>en</strong>te.<br />
Picos locales<br />
Valles<br />
Figura 4.4 Repres<strong>en</strong>tación <strong>de</strong> una superficie rugosa y sus principales elem<strong>en</strong>tos<br />
49
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Fundam<strong>en</strong>to Matemático<br />
En [Jones95] una Superficie <strong>de</strong> Aptitu<strong>de</strong>s se <strong>de</strong>fine por tres aspectos:<br />
a. Un espacio <strong>de</strong> todas <strong>la</strong>s posibles soluciones ( S ) : Consi<strong>de</strong>ra el problema <strong>de</strong> optimización<br />
como una función <strong>de</strong> minimización <strong>de</strong> valores reales C , sobre un finito y discreto espacio<br />
<strong>de</strong> búsqueda<br />
aptitud.<br />
S . G<strong>en</strong>eralm<strong>en</strong>te, el valor <strong>de</strong> <strong>la</strong> solución s∈ S es C s , y repres<strong>en</strong>ta<br />
( )<br />
b. Una re<strong>la</strong>ción <strong>de</strong> vecindad N : D<strong>en</strong>ota cuales puntos son vecinos <strong>en</strong> el espacio. El<br />
espacio <strong>de</strong> búsqueda es una simplificación <strong>de</strong> cómo se especifica una estructura <strong>de</strong><br />
vecindad con asociaciones para cada solución<br />
N( s)<br />
superficie.<br />
( )<br />
s∈<br />
S , por lo tanto, una vecindad es<br />
⊂ S . La asociación <strong>de</strong> una función C con una estructura <strong>de</strong> vecindad forma una<br />
C)<br />
c. Una función ( : Cuantifica <strong>la</strong> calidad <strong>de</strong> solución <strong>de</strong> cada punto <strong>en</strong> el espacio. Entonces,<br />
un algoritmo <strong>de</strong> solución consiste <strong>en</strong> interacciones sigui<strong>en</strong>do una lista <strong>de</strong> instrucciones, el<br />
cual adquiere un or<strong>de</strong>n <strong>de</strong> tiempo polinomial útil <strong>en</strong> <strong>la</strong> práctica: sustituye <strong>la</strong> solución actual<br />
s ( )<br />
*<br />
por una mejor <strong>en</strong> N s . Este proceso termina al obt<strong>en</strong>er un óptimo local s , es <strong>de</strong>cir,<br />
cuando ninguno <strong>de</strong> los vecinos <strong>de</strong><br />
*<br />
s<br />
ti<strong>en</strong><strong>en</strong> un aptitud m<strong>en</strong>or.<br />
4.2.3 Propieda<strong>de</strong>s y Métricas <strong>de</strong> Superficie<br />
La superficie rugosa es una propiedad importante, si exist<strong>en</strong> pequeños movimi<strong>en</strong>tos <strong>en</strong> <strong>la</strong><br />
superficie que g<strong>en</strong>eran cambios altos <strong>en</strong> <strong>la</strong>s aptitu<strong>de</strong>s <strong>en</strong>tonces <strong>la</strong> superficie se consi<strong>de</strong>ra<br />
rugosa. En una superficie suave o lisa los movimi<strong>en</strong>tos y <strong>la</strong>s variaciones <strong>de</strong> aptitud son<br />
pequeñas. Una superficie lisa pue<strong>de</strong> ser rápidam<strong>en</strong>te optimizada por los algoritmos <strong>de</strong><br />
búsqueda heurística. [Merz99].<br />
Las propieda<strong>de</strong>s <strong>de</strong> Superficie más conocidas por t<strong>en</strong>er fuerte influ<strong>en</strong>cia sobre <strong>la</strong> búsqueda<br />
heurística, se m<strong>en</strong>cionan:<br />
a) Las difer<strong>en</strong>tes aptitu<strong>de</strong>s <strong>en</strong>tre puntos vecinos <strong>en</strong> <strong>la</strong> superficie es conocido como rugosidad.<br />
50
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
b) El número <strong>de</strong> óptimos locales, <strong>en</strong> caso <strong>de</strong> que el problema <strong>de</strong> optimización sea <strong>de</strong><br />
maximización, correspon<strong>de</strong> al número <strong>de</strong> picos <strong>de</strong> <strong>la</strong> superficie. Para un problema <strong>de</strong><br />
optimización don<strong>de</strong> su función sea minimizar serían <strong>la</strong>s cu<strong>en</strong>cas <strong>de</strong> <strong>la</strong> superficie.<br />
c) La distribución <strong><strong>de</strong>l</strong> óptimo local <strong>en</strong> el espacio <strong>de</strong> búsqueda<br />
d) La topología <strong>de</strong> <strong>la</strong>s cu<strong>en</strong>cas <strong>de</strong> atracción <strong><strong>de</strong>l</strong> óptimo local<br />
Algunas expresiones se han propuesto para “medir” estas propieda<strong>de</strong>s <strong>de</strong> <strong>la</strong> superficie. En <strong>la</strong>s<br />
sigui<strong>en</strong>tes secciones se <strong>de</strong>scrib<strong>en</strong> <strong>la</strong>s métricas que serán abordadas posteriorm<strong>en</strong>te <strong>en</strong> un<br />
análisis comparativo <strong>de</strong> trabajos re<strong>la</strong>cionados.<br />
4.2.4 Función <strong>de</strong> Auto-corre<strong>la</strong>ción ( ρ ( 1)<br />
)<br />
Descripción G<strong>en</strong>eral<br />
Se consi<strong>de</strong>ra una medida <strong>de</strong> rugosidad <strong>de</strong> una superficie <strong>de</strong> aptitu<strong>de</strong>s, por lo que existe un<br />
fuerte <strong>en</strong><strong>la</strong>ce <strong>de</strong> este concepto y <strong>la</strong> dureza <strong>de</strong> un problema <strong>de</strong> optimización para un algoritmo<br />
basado <strong>en</strong> búsqueda local. Es <strong>de</strong>cir, que intuitivam<strong>en</strong>te el número <strong>de</strong> óptimos locales <strong>de</strong>p<strong>en</strong><strong>de</strong><br />
<strong><strong>de</strong>l</strong> <strong>en</strong><strong>la</strong>ce <strong>en</strong>tre el costo <strong>de</strong> <strong>la</strong> solución y el costo <strong>de</strong> sus vecinos. Si <strong>la</strong> difer<strong>en</strong>cia <strong>de</strong> costo <strong>en</strong>tre<br />
cualquier soluciones vecinas es un promedio pequeño (respectivam<strong>en</strong>te gran<strong>de</strong>), <strong>en</strong>tonces <strong>la</strong><br />
superficie, como no es rugosa seria bu<strong>en</strong>a (respectivam<strong>en</strong>te ma<strong>la</strong>) para el algoritmo <strong>de</strong><br />
solución que se analiza.<br />
Fundam<strong>en</strong>to Matemático<br />
Dada <strong>la</strong> distancia <strong>en</strong>tre dos soluciones distintas ( s∈ S)<br />
y ( t∈ T)<br />
, <strong>de</strong>notado como ( , )<br />
si<strong>en</strong>do el número más pequeño<br />
don<strong>de</strong> s s,<br />
0<br />
( , ) (<br />
d s t<br />
= i { k } s N( )<br />
d s t ,<br />
k ≥1<br />
tal que existe una secu<strong>en</strong>cia <strong>de</strong> soluciones so, s1,...,<br />
s<br />
∀∈ − ∈ s y s = t. En <strong>la</strong> secu<strong>en</strong>cia se ti<strong>en</strong>e que<br />
0,..., 1 , i + 1 i<br />
= d t,<br />
s)<br />
. En <strong>la</strong> expresión 4.1, se <strong>de</strong>fine <strong>la</strong> Función <strong>de</strong> Auto-corre<strong>la</strong>ción:<br />
k<br />
k<br />
ρ<br />
( d )<br />
=<br />
( ) ( )<br />
d( s,<br />
t)<br />
C s C t<br />
C<br />
2<br />
− C<br />
= d<br />
2<br />
−<br />
C<br />
2<br />
(4.1)<br />
51
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
don<strong>de</strong>:<br />
2<br />
C = Valor promedio <strong>de</strong> ( C )<br />
2<br />
2<br />
C = Valor promedio <strong>de</strong> ( C )<br />
( ) ( )<br />
d( s,<br />
t)<br />
C s C t<br />
= d<br />
= Valor promedio <strong><strong>de</strong>l</strong> producto C( s) C( t ) sobre <strong>la</strong>s parejas <strong>de</strong> soluciones<br />
{ st , } <strong>la</strong>s cuales están a una distancia<br />
d . El valor más importante para<br />
estudiar heurísticas basados <strong>en</strong> búsqueda local se obti<strong>en</strong>e con<br />
d = 1.<br />
Interpretación <strong>de</strong> Resultados<br />
La función ρ ( 1)<br />
muestra el nivel <strong>de</strong> corre<strong>la</strong>ción <strong>en</strong>tre cualquier par <strong>de</strong> soluciones <strong>la</strong>s cuales<br />
están a una distancia<br />
d =1<br />
una <strong>de</strong> otra. Un valor cercano a 1 indica que el costo <strong>de</strong> cualquier<br />
par <strong>de</strong> soluciones vecinas es <strong>en</strong> promedio muy simi<strong>la</strong>r implicando una superficie fácil por ser<br />
m<strong>en</strong>os rugosa. En caso contrario, un valor cercano a<br />
indica que el costo <strong>de</strong> cualquier par <strong>de</strong><br />
soluciones vecinas es casi in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te, y por tanto <strong>la</strong> superficies es más difícil.<br />
0<br />
4.2.5 Longitud <strong>de</strong> Auto-corre<strong>la</strong>ción ( λ )<br />
Descripción G<strong>en</strong>eral y Fundam<strong>en</strong>to Matemático<br />
La Longitud <strong>de</strong> Auto-corre<strong>la</strong>ción, es una medida <strong>de</strong> comparación <strong>en</strong>tre superficies para un<br />
problema <strong>de</strong> optimización [Merz99, Angel98], y se <strong>de</strong>fine <strong>en</strong> <strong>la</strong> expresión 4.2.<br />
λ =<br />
1<br />
( 1−<br />
ρ () 1 )<br />
(4.2)<br />
Interpretación <strong>de</strong> Resultados<br />
Una alta longitud <strong>de</strong> corre<strong>la</strong>ción, indica lo suave (t<strong>en</strong><strong>de</strong>ncia a liso) <strong>de</strong> <strong>la</strong> superficie, por lo<br />
tanto, <strong>la</strong> búsqueda es más rápida para un algoritmo basado <strong>en</strong> una vecindad adyac<strong>en</strong>te <strong>de</strong> <strong>la</strong><br />
superficie, dado que los puntos vecinos ti<strong>en</strong><strong>en</strong> una alta corre<strong>la</strong>ción. En otras pa<strong>la</strong>bras, dada<br />
una instancia <strong>de</strong> un problema, es mejor un algoritmo cuya superficie ti<strong>en</strong>e una mayor λ que<br />
otro con una superficie <strong>de</strong> m<strong>en</strong>or λ .<br />
52
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
4.2.6 Corre<strong>la</strong>ción Distancia_Aptitud (γ )<br />
Descripción G<strong>en</strong>eral<br />
Método <strong>de</strong> cuantificación <strong>de</strong> <strong>la</strong> re<strong>la</strong>ción <strong>en</strong>tre aptitud y distancia. Mi<strong>de</strong> el alcance <strong>de</strong> los<br />
valores <strong>de</strong> <strong>la</strong> función <strong>de</strong> aptitud y su corre<strong>la</strong>ción con <strong>la</strong> distancia hacia un óptimo global. El<br />
método requiere examinar un problema con un óptimo conocido, tomar una muestra <strong>de</strong><br />
soluciones y calcu<strong>la</strong>r el coefici<strong>en</strong>te <strong>de</strong> corre<strong>la</strong>ción, γ , dado un conjunto <strong>de</strong> pares (aptitu<strong>de</strong>s,<br />
distancias) [Jones95].<br />
Fundam<strong>en</strong>to Matemático<br />
Dado un conjunto <strong>de</strong> F { f f f }<br />
conjunto <strong>de</strong><br />
{ }<br />
=<br />
1, 2,..., n<br />
<strong>de</strong> n aptitu<strong>de</strong>s individuales y un correspondi<strong>en</strong>te<br />
D = d1, d2,..., dn<br />
<strong>de</strong> n distancias hacia el próximo máximo global. Se calcu<strong>la</strong> el<br />
coefici<strong>en</strong>te <strong>de</strong> corre<strong>la</strong>ción γ con <strong>la</strong> expresión 4.3.<br />
C<br />
γ =<br />
S S<br />
F<br />
1 n<br />
n i = 1<br />
FD<br />
don<strong>de</strong>: CFD = ∑ ( fi − f )( di<br />
−d)<br />
D<br />
(4.3)<br />
(4.4)<br />
En <strong>la</strong> expresión 4.4 CFD<br />
es <strong>la</strong> covarianza <strong>de</strong> F y D . En <strong>la</strong>s expresiones antes <strong>de</strong>scritas, SF<br />
,<br />
S , f y d son <strong>la</strong>s <strong>de</strong>sviaciones estándar y promedios <strong>de</strong> F y D respectivam<strong>en</strong>te. La<br />
D<br />
*<br />
distancia <strong>de</strong> Hamming se usa para calcu<strong>la</strong>r <strong>la</strong> distancia asociada <strong>de</strong> <strong>la</strong> solución vecina con s .<br />
En [Lan<strong>de</strong>ro04] se <strong>de</strong>scribe y ejemplifica este tipo <strong>de</strong> distancia.<br />
Interpretación <strong>de</strong> Resultados<br />
Su interpretación para problemas <strong>de</strong> minimización es <strong>la</strong> sigui<strong>en</strong>te:<br />
a) Fácil si γ ≥ 0.15 , cuando <strong>la</strong> aptitud increm<strong>en</strong>ta junto con <strong>la</strong> distancia.<br />
b) Difícil si − 0.15 < γ < 0.15 , cuando no hay corre<strong>la</strong>ción <strong>en</strong>tre aptitud y distancia. Por lo<br />
tanto <strong>la</strong> predicción es in<strong>de</strong>terminada:<br />
b.1) Si <strong>la</strong> gráfica <strong>de</strong> aptitud-distancia no muestra re<strong>la</strong>ción <strong>en</strong>tre aptitud y distancia<br />
hamming, <strong>en</strong>tonces se consi<strong>de</strong>ra difícil.<br />
53
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
b.2) En ciertas gráficas pue<strong>de</strong> visualizarse una apari<strong>en</strong>cia indicando que el problema es<br />
fácil o in<strong>de</strong>seable, <strong>en</strong> esta situación es complicado <strong>de</strong>terminar el tipo <strong>de</strong> superficie.<br />
c) In<strong>de</strong>seable si γ ≤− 0.15, cuando <strong>la</strong> aptitud increm<strong>en</strong>ta conforme se acerca al óptimo<br />
global.<br />
4.2.7 Coefici<strong>en</strong>te <strong>de</strong> Engaño ( s k<br />
)<br />
Descripción G<strong>en</strong>eral<br />
La caracterización <strong>de</strong> estructura <strong>de</strong> trayectoria <strong>de</strong> <strong>la</strong> superficie <strong>de</strong> aptitu<strong>de</strong>s es un problema<br />
abierto <strong>de</strong> <strong>la</strong> computación. Se consi<strong>de</strong>ra que medir <strong>la</strong> dureza <strong>de</strong> <strong>la</strong> superficie <strong>de</strong> aptitu<strong>de</strong>s<br />
podría ser abordada con <strong>la</strong>s propieda<strong>de</strong>s estadísticas <strong>de</strong> trayectorias. Estas propieda<strong>de</strong>s son<br />
aproximadas con <strong>la</strong> ayuda <strong><strong>de</strong>l</strong> algoritmo <strong>de</strong> solución basado <strong>en</strong> probabilida<strong>de</strong>s <strong>de</strong> transición<br />
<strong>en</strong>tre los elem<strong>en</strong>tos <strong><strong>de</strong>l</strong> espacio <strong>de</strong> búsqueda. Usando estas probabilida<strong>de</strong>s <strong>de</strong> transición se<br />
estima el número <strong>de</strong> evaluaciones necesarias para alcanzar el óptimo global <strong>de</strong>s<strong>de</strong> cualquier<br />
punto <strong><strong>de</strong>l</strong> espacio.<br />
La i<strong>de</strong>a básica <strong>de</strong> examinar <strong>la</strong>s trayectorias <strong>en</strong> el espacio <strong>de</strong> búsqueda es <strong>en</strong>contrar los puntos<br />
finales (puntos don<strong>de</strong> <strong>la</strong> búsqueda se prevé converger) <strong>de</strong> esas trayectorias. Las medidas<br />
estadísticas <strong>de</strong> este conjunto con respecto a algunas propieda<strong>de</strong>s tales como <strong>la</strong> aptitud o <strong>la</strong><br />
probabilidad, pue<strong>de</strong>n ser consi<strong>de</strong>radas como medidas <strong>de</strong> dureza.<br />
Fundam<strong>en</strong>to Matemático<br />
Para caracterizar <strong>la</strong> función <strong>de</strong> aptitud se utiliza <strong>la</strong> noción <strong>de</strong> aptitud final. Por lo tanto, dado<br />
un conjunto S { s s s }<br />
=<br />
1, 2,..., M<br />
correspondi<strong>en</strong>te al espacio <strong>de</strong> búsqueda don<strong>de</strong> se <strong>en</strong>cu<strong>en</strong>tran <strong>la</strong>s<br />
aptitu<strong>de</strong>s finales, se llega a un elem<strong>en</strong>to <strong><strong>de</strong>l</strong> mismo con el criterio <strong>de</strong> paro <strong><strong>de</strong>l</strong> algoritmo<br />
(cuando <strong>en</strong> un número <strong>de</strong> pasos no mejora <strong>la</strong> aptitud).<br />
Dado<br />
B<br />
k<br />
un conjunto <strong>de</strong> límites (probabilida<strong>de</strong>s <strong>de</strong> transición mínima como parámetros <strong>de</strong> ser<br />
un punto final) <strong>de</strong>s<strong>de</strong> ( a ,1]<br />
don<strong>de</strong> 0 a<br />
< para un límite dado k∈ Bk<br />
. Y Fmín<br />
el mínimo,<br />
Fmáx<br />
el máximo <strong>de</strong> <strong>la</strong>s aptitu<strong>de</strong>s finales, con<br />
E el valor esperado <strong>de</strong> aptitud final.<br />
54
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
El Coefici<strong>en</strong>te <strong>de</strong> Engaño por cada limite k se <strong>de</strong>fine <strong>en</strong> <strong>la</strong> expresión 4.5:<br />
s<br />
k<br />
E−<br />
F<br />
= −<br />
F − F<br />
1<br />
mín<br />
máx<br />
mín<br />
(4.5)<br />
Si Fmáx<br />
− Fmín<br />
= 0 <strong>en</strong>tonces el sk<br />
es 0. Por lo tanto, el Coefici<strong>en</strong>te <strong>de</strong> Engaño es el valor medio<br />
<strong>de</strong> sk<br />
, don<strong>de</strong> k toma los valores <strong>de</strong> B<br />
k<br />
.<br />
Interpretación <strong>de</strong> Resultados<br />
El valor <strong><strong>de</strong>l</strong> Coefici<strong>en</strong>te <strong>de</strong> <strong>en</strong>gaño caracteriza a los problemas <strong>en</strong>: valor con t<strong>en</strong><strong>de</strong>ncia a 1<br />
significa que es <strong>en</strong>gañoso y valor con acercami<strong>en</strong>to a 0 significa que es amigable<br />
4.2.8 Análisis Comparativo <strong>de</strong> Trabajos sobre Métricas <strong>de</strong> Superficie<br />
En <strong>la</strong> tab<strong>la</strong> 4.1 se muestran <strong>la</strong>s investigaciones que han aplicado y <strong>de</strong>sarrol<strong>la</strong>do métricas <strong>de</strong><br />
influ<strong>en</strong>cia. Han abordado diversos problemas con difer<strong>en</strong>tes algoritmos <strong>de</strong> solución.<br />
Investigador<br />
Tab<strong>la</strong> 4.1 Tab<strong>la</strong> comparativa <strong>de</strong> métricas <strong>de</strong> influ<strong>en</strong>cia<br />
Métricas <strong>de</strong> Influ<strong>en</strong>cia<br />
ρ ( 1)<br />
λ<br />
[Stützle] <br />
γ<br />
s ki<br />
2<br />
sk e<br />
γ<br />
Tipos <strong>de</strong><br />
Casos<br />
Estándar<br />
(Librería<br />
QAPLIB)<br />
[Je<strong>la</strong>sity01] Estándar<br />
[Merz00] <br />
Estándar<br />
[Kallet97] Estándar<br />
[Gal<strong>la</strong>gher01] Estándar<br />
Esta<br />
investigación<br />
<br />
Estándar y<br />
Aleatorios<br />
Problema<br />
Asignación<br />
cuadrática<br />
Función Ridge<br />
Long Path<br />
SubSet Sum<br />
Función Li<strong>en</strong>pis<br />
Graph<br />
Bi-Partitioning<br />
Problemas <strong>de</strong><br />
repres<strong>en</strong>tación <strong>de</strong><br />
longitud variable<br />
Problemas <strong>de</strong><br />
optimización<br />
continua,<br />
esca<strong>la</strong>bles<br />
Bin-Packing<br />
Algoritmos<br />
Recocido Simu<strong>la</strong>do<br />
Búsqueda Tabú<br />
Búsqueda local iterativa<br />
Optimización <strong>de</strong><br />
hormigas<br />
Algoritmos evolutivos<br />
Búsqueda hill-climber<br />
Búsqueda Tabú<br />
Recocido Simu<strong>la</strong>do<br />
Aceptación por Umbral<br />
Algoritmos G<strong>en</strong>éticos<br />
Perceptron multicapa<br />
Optimización <strong>de</strong><br />
hormigas<br />
Búsqueda Tabú<br />
Aceptación por Umbral<br />
55
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
4.3 Métricas propuestas para el Análisis <strong>de</strong> Algoritmos<br />
En <strong>la</strong>s sigui<strong>en</strong>tes secciones, se <strong>de</strong>scrib<strong>en</strong> cuatro métricas propuestas para el análisis <strong>de</strong><br />
algoritmos. Dos <strong>de</strong> el<strong>la</strong>s fueron <strong>de</strong>rivadas <strong><strong>de</strong>l</strong> Coefici<strong>en</strong>te <strong>de</strong> Engaño abordado <strong>en</strong> <strong>la</strong> sección<br />
4.2.7. Para <strong>la</strong> tercera se propone <strong>la</strong> utilización <strong>de</strong> una fórmu<strong>la</strong> estadística l<strong>la</strong>mada Coefici<strong>en</strong>te<br />
<strong>de</strong> Determinación. En <strong>la</strong> literatura revisada, no ha sido aplicada al análisis <strong>de</strong> algoritmos. Y<br />
por último una métrica <strong>de</strong> <strong>de</strong>sempeño.<br />
4.3.1 Métodos <strong>de</strong>rivados <strong><strong>de</strong>l</strong> Coefici<strong>en</strong>te <strong>de</strong> Engaño ( s k<br />
)<br />
Coefici<strong>en</strong>te <strong>de</strong> Engaño Exterior ( s ke<br />
)<br />
Para un caso dado, mediante ejecuciones <strong><strong>de</strong>l</strong> algoritmo analizado, se obti<strong>en</strong>e un conjunto <strong>de</strong><br />
aptitu<strong>de</strong>s finales F { f f f }<br />
=<br />
1, 2,..., e<br />
. Con <strong>la</strong> expresión 4.6 se calcu<strong>la</strong> el coefici<strong>en</strong>te <strong>de</strong> <strong>en</strong>gaño<br />
exterior aplicado a<br />
caso.<br />
F ; se utiliza <strong>la</strong> expresión 4.7 para calcu<strong>la</strong>r <strong>la</strong> aptitud final esperada <strong><strong>de</strong>l</strong><br />
F max−<br />
E<br />
1− Si F max− F min ≠ 0<br />
S _<br />
F max−<br />
F min<br />
k<br />
e<br />
(4.6)<br />
0 Otro caso<br />
don<strong>de</strong>:<br />
Aptitud final esperada<br />
∑ fi<br />
i=<br />
1<br />
(4.7)<br />
E =<br />
e<br />
Aptitud final máxima <strong>de</strong> <strong>la</strong>s e ejecuciones F = máx( F)<br />
Aptitud final mínima <strong>de</strong> <strong>la</strong>s e ejecuciones F = mín( F)<br />
máx<br />
mín<br />
e<br />
En <strong>la</strong> figura 4.5 se visualizan los cuatro elem<strong>en</strong>tos que participan <strong>en</strong> <strong>la</strong> expresión 4.6; al<br />
resolver un caso <strong>de</strong> Bin-Packing con un algoritmo <strong>de</strong> solución, se obti<strong>en</strong>e por cada ejecución<br />
una aptitud final, <strong>en</strong>tre el<strong>la</strong>s, se localiza <strong>la</strong> aptitud final máxima y <strong>la</strong> mínima.<br />
56
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Por medio <strong>de</strong> <strong>la</strong> expresión 4.7 se obti<strong>en</strong>e <strong>la</strong> aptitud esperada, esto consi<strong>de</strong>rando todas <strong>la</strong>s<br />
aptitu<strong>de</strong>s finales g<strong>en</strong>eradas.<br />
220<br />
Aptitud Final<br />
218<br />
216<br />
214<br />
212<br />
210<br />
0 5 10 15 20 25 30 35<br />
Número <strong>de</strong> Ejecuciones<br />
Aptitud Final <strong>de</strong> cada ejecución<br />
Aptitud Final Esperada<br />
Aptitud Final Máxima<br />
Aptitud Final Mínima<br />
Figura 4.5 Análisis <strong><strong>de</strong>l</strong> coefici<strong>en</strong>te <strong>de</strong> <strong>en</strong>gaño exterior<br />
Coefici<strong>en</strong>te <strong>de</strong> Engaño Interior (Sk i )<br />
Para un caso dado <strong>de</strong> un problema <strong>de</strong> optimización, mediante p pasos <strong><strong>de</strong>l</strong> algoritmo ejecutado<br />
se alcanza <strong>la</strong> condición <strong>de</strong> paro, y se obti<strong>en</strong>e un conjunto <strong>de</strong> aptitu<strong>de</strong>s individuales<br />
{ 1, 2,..., p}<br />
F = f f f . Con <strong>la</strong> expresión 4.8 se calcu<strong>la</strong> el coefici<strong>en</strong>te <strong>de</strong> <strong>en</strong>gaño interior aplicado a<br />
F para e ejecuciones <strong><strong>de</strong>l</strong> algoritmo; se utiliza <strong>la</strong> expresión 4.9 para calcu<strong>la</strong>r <strong>la</strong> aptitud final<br />
esperada <strong>de</strong> <strong>la</strong> j-ésima ejecución <strong><strong>de</strong>l</strong> algoritmo.<br />
S<br />
k_<br />
ij<br />
s<br />
k_<br />
i<br />
=<br />
e<br />
∑<br />
j=<br />
1<br />
S<br />
e<br />
k_<br />
ij<br />
⎧ Fmáx<br />
− E<br />
j j<br />
⎪1 −<br />
Si Fmáx<br />
F 0<br />
j<br />
−<br />
mín<br />
≠<br />
j<br />
= ⎨ F − F<br />
⎪⎩<br />
máx j<br />
mín j<br />
0 Otro caso<br />
(4.8)<br />
don<strong>de</strong>:<br />
57
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Aptitud <strong>de</strong> <strong>la</strong> solución obt<strong>en</strong>ida <strong>en</strong> el<br />
paso i durante <strong>la</strong> corrida j<br />
f = aptitud <strong><strong>de</strong>l</strong> experim<strong>en</strong>to ;1 ≤i≤ p;1≤ j ≤e<br />
ji<br />
Aptitud <strong>de</strong> <strong>la</strong> k-esima solución difer<strong>en</strong>te<br />
f ′<br />
jk<br />
= aptitud <strong><strong>de</strong>l</strong> experim<strong>en</strong>to ;1 ≤k ≤d;1≤ j ≤e<br />
<strong>de</strong> F j<br />
El conjunto <strong>de</strong> todas <strong>la</strong>s p aptitu<strong>de</strong>s <strong>de</strong><br />
<strong>la</strong> ejecución j<br />
El conjunto <strong>de</strong> todas <strong>la</strong>s d aptitu<strong>de</strong>s <strong>de</strong><br />
<strong>la</strong> ejecución j<br />
{ 1, 2,...,<br />
}<br />
F = f f f<br />
j j j jp<br />
{ 1 2 }<br />
F' = f ' , f ' ... f '<br />
j j j jd<br />
d<br />
Aptitud esperada <strong>de</strong> cada corrida j Ej<br />
= ( f′<br />
ji)<br />
Aptitud final máximo <strong>de</strong> F’ j<br />
Fmax = máx( F' )<br />
Aptitud final mínima <strong>de</strong> F’ j F min = mín( F ' )<br />
⎛<br />
F<br />
⎞<br />
j<br />
fji<br />
′ = f<br />
⎜<br />
ji ⎟<br />
∑ (4.9)<br />
⎜<br />
i=<br />
1 F′<br />
⎟<br />
j<br />
j<br />
j<br />
⎝<br />
j<br />
j<br />
⎠<br />
En <strong>la</strong> figura 4.6 se visualiza los cuatro elem<strong>en</strong>tos que participan <strong>en</strong> <strong>la</strong> expresión 4.8; al<br />
resolver un caso con un algoritmo <strong>de</strong> solución un número e <strong>de</strong> ejecuciones; por cada<br />
ejecución j se obti<strong>en</strong>e el coefici<strong>en</strong>te <strong>de</strong> <strong>en</strong>gaño interior. En Fj se consi<strong>de</strong>ra <strong>de</strong>s<strong>de</strong> <strong>la</strong> primera<br />
aptitud g<strong>en</strong>erada hasta <strong>la</strong> última <strong>de</strong> <strong>la</strong> ejecución; <strong>de</strong>ntro <strong>de</strong> este conjunto se localiza <strong>la</strong> aptitud<br />
máxima y <strong>la</strong> mínima. Para <strong>en</strong>contrar <strong>la</strong> aptitud esperada <strong>de</strong> una ejecución es necesario agrupar<br />
<strong>la</strong>s aptitu<strong>de</strong>s idénticas y <strong>en</strong> F’ j calcu<strong>la</strong>r sólo valores <strong>de</strong> aptitu<strong>de</strong>s difer<strong>en</strong>tes <strong>en</strong>tre sí.<br />
Valor <strong>de</strong> Aptitu<strong>de</strong>s<br />
39<br />
34<br />
29<br />
24<br />
0 20 40 60 80<br />
Número <strong>de</strong> Pasos<br />
Aptitu<strong>de</strong>s <strong>de</strong> <strong>la</strong> Búsqueda Algoritmíca<br />
Aptitud Máximo<br />
Aptitud Mínimo<br />
Aptitud Esperada<br />
Figura 4.6 Análisis <strong><strong>de</strong>l</strong> coefici<strong>en</strong>te <strong>de</strong> <strong>en</strong>gaño interior por ejecución<br />
58
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Interpretación <strong>de</strong> Resultados ( s ) y ( )<br />
k_<br />
e<br />
s k _ i<br />
El valor <strong><strong>de</strong>l</strong> Coefici<strong>en</strong>te <strong>de</strong> <strong>en</strong>gaño caracteriza a los problemas <strong>en</strong> dos categorías:<br />
a) Valor con t<strong>en</strong><strong>de</strong>ncia a 1 significa que es <strong>en</strong>gañoso<br />
b) Valor con acercami<strong>en</strong>to a 0 significa que es amigable<br />
2<br />
4.3.2 Coefici<strong>en</strong>te <strong>de</strong> Determinación ( γ )<br />
Descripción G<strong>en</strong>eral<br />
Mi<strong>de</strong> el grado o fuerza <strong>de</strong> <strong>la</strong> re<strong>la</strong>ción que existe <strong>en</strong>tre dos variables, X y Y. Nos indica qué<br />
porc<strong>en</strong>taje <strong>de</strong> variabilidad <strong>de</strong> <strong>la</strong> variable Y se explica por <strong>la</strong> variable X. Por lo tanto exist<strong>en</strong><br />
otras variables que modifican y explican <strong>la</strong> variabilidad <strong>de</strong> Y. La introducción <strong>de</strong> más<br />
variables con técnicas <strong>de</strong> análisis multivariado nos permitirá i<strong>de</strong>ntificar <strong>la</strong> importancia <strong>de</strong> qué<br />
otras variables pue<strong>de</strong>n t<strong>en</strong>er influ<strong>en</strong>cia sobre <strong>la</strong> variable Y. El término <strong>de</strong> “variación” <strong>en</strong> estos<br />
dos casos se emplea <strong>en</strong> su s<strong>en</strong>tido estadístico habitual y significa “<strong>la</strong> suma <strong>de</strong> un grupo <strong>de</strong><br />
cuadrados <strong>de</strong> <strong>de</strong>sviaciones”.<br />
Dado un conjunto <strong>de</strong> F { f f f }<br />
conjunto <strong>de</strong><br />
=<br />
1, 2,..., n<br />
<strong>de</strong> n aptitu<strong>de</strong>s individuales y un correspondi<strong>en</strong>te<br />
{ }<br />
D = d1, d2,..., dn<br />
<strong>de</strong> n distancias hacia el próximo máximo global. El<br />
Coefici<strong>en</strong>te <strong>de</strong> Determinación indica qué porc<strong>en</strong>taje <strong>de</strong> variabilidad <strong>de</strong> D se afecta por F .<br />
Fundam<strong>en</strong>to Matemático<br />
Así pues, al aplicar esta <strong>de</strong>finición, es razonable expresar <strong>la</strong> variación <strong>de</strong> los valores <strong>de</strong> D<br />
alre<strong>de</strong>dor <strong>de</strong> <strong>la</strong> línea <strong>de</strong> regresión mediante <strong>la</strong> ecuación 4.10, y <strong>la</strong> segunda variación <strong>de</strong> los<br />
valores <strong>de</strong> D alre<strong>de</strong>dor <strong>de</strong> su propia media, por <strong>la</strong> ecuación 4.11:<br />
( D − D ˆ ) 2<br />
∑<br />
(4.10)<br />
∑ ( D−<br />
D) 2<br />
(4.11)<br />
Uno m<strong>en</strong>os <strong>la</strong> razón <strong>en</strong>tre estas dos variaciones es el coefici<strong>en</strong>te <strong>de</strong> <strong>de</strong>terminación, que se<br />
2<br />
repres<strong>en</strong>ta con γ , y se especifica <strong>en</strong> <strong>la</strong> expresión 4.12.<br />
59
Capítulo 4<br />
Análisis <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
Interpretación <strong>de</strong> Resultados<br />
2<br />
γ<br />
= 1−<br />
( D−<br />
Dˆ<br />
)<br />
∑<br />
∑( D−<br />
D)<br />
2<br />
2<br />
(4.12)<br />
2<br />
2<br />
Un γ cercano a 1 indica una fuerte corre<strong>la</strong>ción <strong>en</strong>tre F y D , mi<strong>en</strong>tras que γ cercano a 0<br />
significa que ti<strong>en</strong><strong>en</strong> poca corre<strong>la</strong>ción.<br />
4.3.4 Métrica <strong>de</strong> Desempeño<br />
En <strong>la</strong> métrica <strong>de</strong> <strong>de</strong>sempeño propuesta <strong>en</strong> esta investigación se consi<strong>de</strong>ran dos aspectos<br />
fundam<strong>en</strong>tales: calidad <strong>de</strong> <strong>la</strong> solución y tiempo <strong>de</strong> procesami<strong>en</strong>to. Para una instancia<br />
específica I, dado un conjunto <strong>de</strong> algoritmos <strong>de</strong> solución A { a a a }<br />
=<br />
1, 2,..., n<br />
, don<strong>de</strong> n es <strong>la</strong><br />
cantidad <strong>de</strong> algoritmos <strong>de</strong> solución disponibles; y un conjunto <strong>de</strong> calida<strong>de</strong>s <strong>de</strong> solución<br />
{ }<br />
R= r1, r2,..., r n<br />
, don<strong>de</strong> r es <strong>la</strong> proporción <strong>de</strong> <strong>la</strong> solución óptima <strong><strong>de</strong>l</strong> algoritmo ai con<br />
i<br />
respecto a <strong>la</strong> solución teórica; y tiempos <strong>de</strong> ejecución T { t t t }<br />
<strong>de</strong>sempeño algorítmico; se formaliza con <strong>la</strong> expresión 4.13.<br />
{ k k k } }<br />
( ) ( )<br />
=<br />
1, 2,..., n<br />
. La información <strong>de</strong><br />
A, RT , = a, r, t 1≤k≤ n<br />
(4.13)<br />
Que proporciona un conjunto <strong>de</strong> triadas: radio, tiempo y algoritmo. Para el análisis <strong>de</strong><br />
<strong>de</strong>sempeño es necesario obt<strong>en</strong>er sólo aquel<strong>la</strong>s triadas que cump<strong>la</strong>n <strong>la</strong> expresión 4.14, don<strong>de</strong> se<br />
obt<strong>en</strong>drán <strong>la</strong>s triadas <strong>de</strong> mínimo radio reportado.<br />
{ j j j j j j j<br />
}<br />
( ', ', ') ( , , ) ( ), ( , , ) ( , )<br />
A R T = a r t r = mín R a r t ≤ R T ∀ j<br />
(4.14)<br />
A partir <strong>de</strong> <strong>la</strong>s triadas g<strong>en</strong>eradas con <strong>la</strong> expresión 4.14, con <strong>la</strong> expresión 4.15 se obti<strong>en</strong><strong>en</strong> <strong>la</strong>s<br />
triadas don<strong>de</strong> el tiempo es el mínimo. La expresión 4.16 <strong>de</strong>scribe <strong>la</strong> lista <strong>de</strong> algoritmos <strong>de</strong><br />
solución campeones bajo los criterios <strong>de</strong> <strong>de</strong>sempeño establecidos <strong>en</strong> esta sección.<br />
{ i i i i i i i<br />
}<br />
( A R T ) ( a r t ) r mín( T ) ( a r t ) ( R T )<br />
'', '', '' = , , = ' , , , ≤ ', ' ∀i<br />
( ) ⎤ = { i i∈ ( i i i) = ( )}<br />
(4.15)<br />
campeón ⎡⎣I , A, R, T ⎦ a a A, ∪ a , r , t A'', R '', T ''<br />
(4.16)<br />
60
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
5<br />
Arquitecturas con<br />
Integración Intelig<strong>en</strong>te<br />
En <strong>la</strong> actualidad se ha manifestado <strong>en</strong> <strong>la</strong> comunidad ci<strong>en</strong>tífica <strong>la</strong> necesidad <strong>de</strong> integrar <strong>en</strong><br />
sistemas reales conocidos como “Arquitecturas”, difer<strong>en</strong>tes aspectos <strong>de</strong> intelig<strong>en</strong>cia; capaces<br />
<strong>de</strong> producir un comportami<strong>en</strong>to intelig<strong>en</strong>te g<strong>en</strong>eral, <strong>en</strong>t<strong>en</strong>di<strong>en</strong>do como comportami<strong>en</strong>to el<br />
proceso <strong>de</strong> adquirir y tratar el conocimi<strong>en</strong>to. Este proceso también es conocido como<br />
apr<strong>en</strong>dizaje [Newell90]. No obstante <strong>la</strong> necesidad <strong>de</strong> <strong>en</strong>t<strong>en</strong><strong>de</strong>r el papel <strong><strong>de</strong>l</strong> apr<strong>en</strong>dizaje <strong>en</strong> los<br />
sistemas intelig<strong>en</strong>tes, éste es un problema abierto <strong>de</strong> <strong>la</strong> computación.<br />
En <strong>la</strong>s secciones <strong>de</strong> este capítulo se hace un análisis <strong>de</strong> <strong>la</strong>s características g<strong>en</strong>erales <strong>de</strong> <strong>la</strong>s<br />
arquitecturas intelig<strong>en</strong>tes. Se pres<strong>en</strong>ta a <strong>la</strong> arquitectura <strong>de</strong> Selección <strong>de</strong> Algoritmos, propuesta<br />
<strong>en</strong> [Cruz04], como una arquitectura intelig<strong>en</strong>te que esta soportada por un módulo <strong>de</strong> solución<br />
<strong>de</strong> casos y Evaluación <strong>de</strong> Algoritmos.<br />
En esta tesis se propone una arquitectura <strong>de</strong> solución <strong>de</strong> casos y Evaluación <strong>de</strong> Algoritmos. El<br />
compon<strong>en</strong>te <strong>de</strong> solución consta <strong>de</strong> un conjunto <strong>de</strong> algoritmos heurísticos configurables y el<br />
61
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
compon<strong>en</strong>te <strong>de</strong> evaluación utiliza un conjunto <strong>de</strong> métricas <strong>de</strong> análisis <strong>de</strong> algoritmos. El<br />
<strong>de</strong>sarrollo <strong>de</strong> estos elem<strong>en</strong>tos está <strong>de</strong>scrito <strong>en</strong> los capítulos 3 y 4. En este capítulo también se<br />
<strong>de</strong>scribe cómo los compon<strong>en</strong>tes <strong>de</strong> solución y evaluación podrán dotar <strong>de</strong> mayor intelig<strong>en</strong>cia<br />
al Sistema <strong>de</strong> Selección <strong>de</strong> Algoritmos.<br />
5.1 C<strong>la</strong>sificación G<strong>en</strong>eral<br />
Actualm<strong>en</strong>te exist<strong>en</strong> tres estrategias [P<strong>la</strong>za93, Langley02]:<br />
a) Arquitecturas Cognoscitivas: Mo<strong><strong>de</strong>l</strong>os que permit<strong>en</strong> imitar el razonami<strong>en</strong>to humano,<br />
específicam<strong>en</strong>te el tratami<strong>en</strong>to <strong>de</strong> <strong>la</strong> memoria <strong>de</strong> corto y <strong>la</strong>rgo p<strong>la</strong>zo; compr<strong>en</strong><strong>de</strong>n<br />
mecanismos complejos para <strong>la</strong> resolución <strong>de</strong> conflictos y para guardar resultados <strong>de</strong><br />
costosos razonami<strong>en</strong>tos utilizables <strong>en</strong> situaciones futuras.<br />
b) Arquitecturas que integran el apr<strong>en</strong>dizaje y resolvedores <strong><strong>de</strong>l</strong> problema: Mo<strong><strong>de</strong>l</strong>os que<br />
permit<strong>en</strong> tomar parte <strong><strong>de</strong>l</strong> conocimi<strong>en</strong>to acerca <strong>de</strong> sí mismo y se retroalim<strong>en</strong>ta con alguna<br />
información <strong><strong>de</strong>l</strong> comportami<strong>en</strong>to <strong>de</strong> <strong>la</strong> arquitectura, y <strong>de</strong>ci<strong>de</strong> como modificar el elem<strong>en</strong>to<br />
<strong>de</strong> <strong>de</strong>sempeño para que, <strong>de</strong> ser posible, <strong>en</strong> el futuro pue<strong>de</strong>n estar <strong>en</strong> condiciones <strong>de</strong><br />
mejorar su actuación. Exist<strong>en</strong> dos tipos que son: arquitecturas <strong>de</strong> integración y sistemas<br />
<strong><strong>de</strong>l</strong> razonami<strong>en</strong>to basados <strong>en</strong> casos.<br />
a) Multiestrategias <strong>de</strong> Apr<strong>en</strong>dizaje: Mo<strong><strong>de</strong>l</strong>os que permit<strong>en</strong> tomar parte <strong><strong>de</strong>l</strong> conocimi<strong>en</strong>to<br />
acerca <strong>de</strong> sí mismo, y t<strong>en</strong>er <strong>la</strong> capacidad <strong>de</strong> aplicar difer<strong>en</strong>tes tipos <strong>de</strong> apr<strong>en</strong>dizajes para<br />
resolver el problema.<br />
5.2 Características G<strong>en</strong>erales<br />
Una arquitectura intelig<strong>en</strong>te consta <strong>de</strong> un conjunto <strong>de</strong> elem<strong>en</strong>tos <strong>en</strong>tre ellos se pue<strong>de</strong>n<br />
m<strong>en</strong>cionar ambi<strong>en</strong>te, organización, capacida<strong>de</strong>s intelectuales y propieda<strong>de</strong>s <strong>de</strong> acuerdo al tipo<br />
<strong>de</strong> problema que llevan a esta integración [Cogarch1, Cogarch5].<br />
5.2.1 Ambi<strong>en</strong>te y Organización<br />
Las arquitecturas <strong>en</strong> g<strong>en</strong>eral muestran dos tipos <strong>de</strong> características: organización <strong><strong>de</strong>l</strong> diseño y<br />
ambi<strong>en</strong>te <strong>en</strong> que operan, tab<strong>la</strong> 5.1 y tab<strong>la</strong> 5.2 respectivam<strong>en</strong>te.<br />
62
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
Organización<br />
Extractados<br />
Basadas <strong>en</strong> Marcos<br />
Modu<strong>la</strong>r<br />
Resolvedor <strong><strong>de</strong>l</strong><br />
problema C<strong>en</strong>tral<br />
Compon<strong>en</strong>tes<br />
Asíncronos<br />
Tab<strong>la</strong> 5.1 Tipos <strong>de</strong> organización <strong><strong>de</strong>l</strong> diseño <strong>de</strong> una arquitectura intelig<strong>en</strong>te<br />
Descripción<br />
Este diseño reactiva el ambi<strong>en</strong>te <strong>en</strong> difer<strong>en</strong>tes niveles <strong>de</strong> complejidad.<br />
El conocimi<strong>en</strong>to se distribuye a través <strong>de</strong> los niveles y compon<strong>en</strong>tes<br />
reactivos con <strong>de</strong>terminado comportami<strong>en</strong>to. Incorpora <strong>la</strong> capacidad <strong>de</strong><br />
p<strong>la</strong>n para especificar el nivel <strong>de</strong> <strong>la</strong> arquitectura.<br />
Repres<strong>en</strong>tación uniforme <strong><strong>de</strong>l</strong> conocimi<strong>en</strong>to usando el método<br />
ranura/marco. Todo conocimi<strong>en</strong>to es repres<strong>en</strong>tado como una ranura<br />
bajo un concepto el cual <strong>de</strong>scribe propieda<strong>de</strong>s <strong>de</strong> él.<br />
El diseño <strong>de</strong> esta arquitectura repres<strong>en</strong>ta un sistema intelig<strong>en</strong>te creado<br />
bajo <strong>la</strong> integración <strong>de</strong> compon<strong>en</strong>tes in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>tes funcionales, tales<br />
como <strong>la</strong> p<strong>la</strong>neación y el apr<strong>en</strong>dizaje. Se consi<strong>de</strong>ra <strong>la</strong> exist<strong>en</strong>cia <strong>de</strong><br />
comunicación <strong>de</strong> módulos, operaciones asíncronas y control<br />
distribuido.<br />
Lo c<strong>en</strong>tral <strong>de</strong> <strong>la</strong> arquitectura es <strong>la</strong> capacidad <strong>de</strong> buscar el conocimi<strong>en</strong>to<br />
por secu<strong>en</strong>cias <strong>de</strong> acciones (p<strong>la</strong>n), es <strong>de</strong>cir, alcanzar una meta <strong>de</strong>s<strong>de</strong> el<br />
estado actual. La búsqueda pue<strong>de</strong> ser <strong>en</strong> un espacio limitado; su<br />
<strong>de</strong>sempeño provee <strong>la</strong> adquisición <strong>de</strong> nuevo conocimi<strong>en</strong>to. A<strong>de</strong>más,<br />
ti<strong>en</strong><strong>de</strong> a incorporar <strong>la</strong> capacidad <strong>de</strong> apr<strong>en</strong>dizaje.<br />
Usualm<strong>en</strong>te esta arquitectura reduce <strong>la</strong> complejidad <strong><strong>de</strong>l</strong> ambi<strong>en</strong>te.<br />
Cada compon<strong>en</strong>te se <strong>en</strong>foca a un subconjunto específico.<br />
P<strong>la</strong>n <strong>en</strong>tonces compi<strong>la</strong> La arquitectura se basa <strong>en</strong> p<strong>la</strong>near, cuando se ejecuta el p<strong>la</strong>n se mejora<br />
el funcionami<strong>en</strong>to.<br />
Descompone el sistema físicam<strong>en</strong>te <strong>en</strong> piezas funcionales para reducir<br />
Multi-compon<strong>en</strong>te. <strong>la</strong> complejidad, tales <strong>de</strong>scomposición podría efectuarse con <strong>la</strong><br />
cognición, percepción, p<strong>la</strong>neación, ejecutor, programador.<br />
Una arquitectura que organiza <strong>la</strong> comunicación <strong>en</strong>tre los módulos y<br />
Basada <strong>en</strong> Tablero proporciona estructuras explícitas <strong>de</strong> conocimi<strong>en</strong>to. Incluye el control<br />
<strong><strong>de</strong>l</strong> sistema el cual <strong>de</strong>termina el or<strong>de</strong>n <strong><strong>de</strong>l</strong> procesami<strong>en</strong>to <strong>de</strong> <strong>la</strong><br />
información.<br />
Se basa sobre un ciclo <strong>de</strong> <strong>de</strong>cisión explícito. Normalm<strong>en</strong>te requiere <strong>la</strong><br />
Ciclo <strong>de</strong>cisión elección y ejecución <strong>de</strong> una operación simple, posiblem<strong>en</strong>te un paso<br />
<strong><strong>de</strong>l</strong> p<strong>la</strong>n, <strong>en</strong> un tiempo establecido o calidad propuesta.<br />
Este diseño permite que continuam<strong>en</strong>te (asincrónicam<strong>en</strong>te, o radio<br />
Interrupción periódico) se supervise el ambi<strong>en</strong>te, con posibilidad <strong>de</strong> incorporar<br />
ev<strong>en</strong>tos que permitan el razonami<strong>en</strong>to actual, y pronosticar antes <strong>de</strong><br />
que el proceso termine.<br />
63
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
Tab<strong>la</strong> 5.2 Tipos <strong>de</strong> propieda<strong>de</strong>s <strong>de</strong> ambi<strong>en</strong>te <strong>de</strong> una arquitectura<br />
Ambi<strong>en</strong>te<br />
Dinámico contra Estático<br />
Real contra Simu<strong>la</strong>do<br />
Conocimi<strong>en</strong>to imperfecto<br />
Limitaciones<br />
Computacionales<br />
Descripción<br />
El ambi<strong>en</strong>te dinámico no cambia exclusivam<strong>en</strong>te su orig<strong>en</strong>, y<br />
el estático so<strong>la</strong>m<strong>en</strong>te cambia su orig<strong>en</strong>.<br />
Se diseña con <strong>la</strong> exist<strong>en</strong>cia <strong>de</strong> un punto real o <strong>de</strong> un punto<br />
simu<strong>la</strong>do (virtual).<br />
Cuando no se conoce todo, y el conocimi<strong>en</strong>to pue<strong>de</strong> cont<strong>en</strong>er<br />
errores.<br />
Cuando se limita por alguna facultad computacional, ya sea<br />
capacidad <strong>de</strong> almac<strong>en</strong>ami<strong>en</strong>to, velocidad <strong>de</strong> procesami<strong>en</strong>to,<br />
disponibilidad <strong>de</strong> memoria secundaria.<br />
5.2.2 Capacida<strong>de</strong>s Intelectuales<br />
Habilida<strong>de</strong>s que permit<strong>en</strong> lograr el éxito <strong>en</strong> <strong>la</strong> ejecución <strong>de</strong> tareas intelectuales <strong>de</strong> una<br />
arquitectura. En <strong>la</strong> tab<strong>la</strong> 5.3 se pres<strong>en</strong>ta una lista ampliada <strong>de</strong> capacida<strong>de</strong>s intelectuales.<br />
Tab<strong>la</strong> 5.3 Capacida<strong>de</strong>s Intelectuales <strong>de</strong> <strong>la</strong>s Arquitecturas<br />
Tareas<br />
Apr<strong>en</strong>dizaje<br />
P<strong>la</strong>neación y<br />
resolución <strong>de</strong><br />
problemas<br />
Interacción con el<br />
ambi<strong>en</strong>te<br />
Ejecución<br />
Comportami<strong>en</strong>to<br />
Capacida<strong>de</strong>s Intelectuales<br />
Capacidad <strong>de</strong> apr<strong>en</strong>dizaje, Multi-métodos <strong>de</strong> apr<strong>en</strong>dizaje,<br />
Apr<strong>en</strong>dizaje por instrucción, Transfer<strong>en</strong>cia <strong>de</strong> apr<strong>en</strong>dizaje, Métodos<br />
débiles <strong>de</strong> apr<strong>en</strong>dizaje, Concepto <strong>de</strong> adquisición, Abstracción y<br />
Apr<strong>en</strong>dizaje por analogía<br />
P<strong>la</strong>neación, Resolución <strong><strong>de</strong>l</strong> problema, Soporte <strong>de</strong> múltiples, Metas<br />
simultaneas, Auto-Reflexión, Meta-Razonami<strong>en</strong>to, Capacidad <strong>de</strong><br />
sistemas expertos, Razonami<strong>en</strong>tos inductivo y <strong>de</strong>ductivo, y<br />
Acción situada<br />
Provee explicaciones para <strong>de</strong>cisiones, Estrategias <strong>de</strong> navegación y<br />
Manipu<strong>la</strong>ción, Soporte <strong>de</strong> s<strong>en</strong>sación imprecisa, Ent<strong>en</strong>dimi<strong>en</strong>to <strong>de</strong><br />
l<strong>en</strong>guaje natural, Percepción y Tareas robóticas<br />
Ejecución <strong>en</strong> tiempo real, Conocimi<strong>en</strong>to <strong>de</strong> rápido acceso,<br />
Procesami<strong>en</strong>to <strong>en</strong>focado, Reconstrucción <strong>de</strong> metas, Capacidad<br />
humana-matemática.<br />
Coher<strong>en</strong>te, Oportuno y A<strong>de</strong>cuado<br />
Las capacida<strong>de</strong>s intelectuales más comunes que se establec<strong>en</strong> <strong>en</strong> una arquitectura son:<br />
a) P<strong>la</strong>neación: Proceso computacional <strong>de</strong> varios pasos <strong>de</strong> un problema que se e<strong>la</strong>bora antes<br />
<strong>de</strong> ejecutar cualquiera <strong>de</strong> ellos. Si <strong>la</strong> solución <strong>en</strong> pasos <strong>en</strong> el mundo real no pue<strong>de</strong> ser<br />
64
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
ignorada <strong>en</strong>tonces <strong>la</strong> p<strong>la</strong>neación es extremadam<strong>en</strong>te importante. Al diseñar una<br />
arquitectura con p<strong>la</strong>neación se <strong>de</strong>b<strong>en</strong> consi<strong>de</strong>rar los sigui<strong>en</strong>tes aspectos:<br />
Rep<strong>la</strong>neación: Procedimi<strong>en</strong>to que evalúa un p<strong>la</strong>n g<strong>en</strong>erado, g<strong>en</strong>era <strong>la</strong> reoptimizaión <strong><strong>de</strong>l</strong><br />
p<strong>la</strong>n, proporcionando un análisis <strong>de</strong> <strong>de</strong>fectos, factores <strong>de</strong>sconocidos, cambios<br />
probabilísticos <strong>de</strong> situaciones <strong>en</strong>tre <strong>la</strong> p<strong>la</strong>neación y <strong>la</strong> ejecución.<br />
Simu<strong>la</strong>ción antes <strong>de</strong> <strong>la</strong> ejecución real: Simu<strong>la</strong>r <strong>la</strong> p<strong>la</strong>neación, particu<strong>la</strong>rm<strong>en</strong>te mo<strong><strong>de</strong>l</strong>ando<br />
situaciones complejas <strong>de</strong> <strong>la</strong> arquitectura. Exist<strong>en</strong> dos razones que justifican el uso <strong>de</strong> <strong>la</strong><br />
simu<strong>la</strong>ción: primero estimar el tiempo requerido para efectuar una ejecución real, y<br />
segundo observar el r<strong>en</strong>dimi<strong>en</strong>to <strong><strong>de</strong>l</strong> p<strong>la</strong>n diseñado con tiempo cortos y repetición <strong>de</strong><br />
ejecuciones.<br />
b) Predicción: Capacidad <strong>de</strong> pre<strong>de</strong>cir situaciones particu<strong>la</strong>res <strong><strong>de</strong>l</strong> problema que son<br />
solicitadas por lo externo <strong>de</strong> <strong>la</strong> arquitectura (por ejemplo, peticiones <strong>de</strong> usuario).<br />
c) Meta-razonami<strong>en</strong>to: Capacidad <strong>de</strong> p<strong>en</strong>sar y modificar el proceso <strong>de</strong> razonami<strong>en</strong>to. Como<br />
<strong>la</strong> p<strong>la</strong>nificación, meta-razonami<strong>en</strong>to contribuye a agrandar <strong>la</strong> racionalidad <strong>de</strong> ag<strong>en</strong>te<br />
intelig<strong>en</strong>te <strong>en</strong> los contextos <strong>de</strong> calidad (eficacia). Meta-razonami<strong>en</strong>to podría consistir <strong>en</strong><br />
unir otras capacida<strong>de</strong>s como apr<strong>en</strong><strong>de</strong>r y p<strong>la</strong>near.<br />
d) Reactividad: Capacidad <strong>de</strong> <strong>la</strong> arquitectura <strong>de</strong> manejar, <strong>de</strong> una manera oportuna, los<br />
ev<strong>en</strong>tos inesperados. Supervisa el ambi<strong>en</strong>te para <strong>de</strong>terminar si cualquier ev<strong>en</strong>to ha<br />
expirado y <strong>de</strong>be reaccionar.<br />
e) Tareabilidad: Capacidad <strong>de</strong> <strong>la</strong> arquitectura <strong>de</strong> realizar ciertas tareas dadas por un or<strong>de</strong>n<br />
<strong>de</strong>terminado por el usuario. Es <strong>de</strong>cir, si <strong>la</strong> arquitectura está realizando alguna tarea actual,<br />
<strong>la</strong> <strong>de</strong>be poner <strong>en</strong> espera, y realizar <strong>la</strong> tarea que el usuario le instruye, <strong>de</strong>spués reasumir <strong>la</strong><br />
tarea vieja.<br />
f) Apr<strong>en</strong>dizaje: El Apr<strong>en</strong>dizaje Automático estudia <strong>la</strong> adquisición automática <strong><strong>de</strong>l</strong><br />
conocimi<strong>en</strong>to <strong>en</strong> un dominio específico. El propósito es que <strong>la</strong> arquitectura mejore el<br />
<strong>de</strong>sempeño con el resultado <strong>de</strong> su experi<strong>en</strong>cia. Una arquitectura que no cambia su base <strong>de</strong><br />
conocimi<strong>en</strong>to no es consi<strong>de</strong>rada capaz <strong>de</strong> apr<strong>en</strong><strong>de</strong>r.<br />
g) Procesami<strong>en</strong>to <strong>de</strong> l<strong>en</strong>guaje natural: Mecanismo para <strong>la</strong> comunicación usuarioarquitectura<br />
a través <strong><strong>de</strong>l</strong> l<strong>en</strong>guaje natural <strong><strong>de</strong>l</strong> usuario. Involucra <strong>la</strong> g<strong>en</strong>eración <strong><strong>de</strong>l</strong> l<strong>en</strong>guaje<br />
65
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
natural para comunicarse con el usuario y compr<strong>en</strong>sión para activar <strong>la</strong>s peticiones <strong><strong>de</strong>l</strong><br />
usuario.<br />
h) Interruptabilidad: Se refiere a <strong>la</strong> capacidad <strong>de</strong> intercambiar <strong>de</strong> una tarea a otra sin que<br />
t<strong>en</strong>er que finalizar <strong>la</strong> primera tarea. El intercambio pue<strong>de</strong> activarse por razones internas o<br />
estímulos externos.<br />
i) Navegación/Manipu<strong>la</strong>ción: Estas capacida<strong>de</strong>s son abordadas <strong>en</strong> aquel<strong>la</strong>s arquitecturas que<br />
ti<strong>en</strong><strong>en</strong> <strong>en</strong> su implem<strong>en</strong>tación un dominio robótico.<br />
j) Comportami<strong>en</strong>to Coher<strong>en</strong>te: Capacidad <strong>de</strong> actuar <strong>de</strong> manera coher<strong>en</strong>te <strong>la</strong>s ejecuciones,<br />
acciones que <strong>de</strong>be manejar <strong>la</strong> arquitectura. No es sufici<strong>en</strong>te resolver el problema y<br />
proporcionar una salida completam<strong>en</strong>te racional.<br />
k) Percepción: Se refiere a <strong>la</strong> capacidad <strong>de</strong> percibir objetos <strong><strong>de</strong>l</strong> mundo real. Esta capacidad es<br />
usualm<strong>en</strong>te implem<strong>en</strong>tada con el uso <strong>de</strong> s<strong>en</strong>sores visuales o infrarrojos, micrófonos o<br />
sonares.<br />
5.2.3 Propieda<strong>de</strong>s Específicas <strong><strong>de</strong>l</strong> Problema<br />
Las propieda<strong>de</strong>s específicas más comunes que se establec<strong>en</strong> <strong>en</strong> una arquitectura son:<br />
a) Repres<strong>en</strong>tación <strong><strong>de</strong>l</strong> conocimi<strong>en</strong>to: Se refiere al formalismo <strong>en</strong>tre sintaxis y semántica,<br />
para almac<strong>en</strong>ar conocimi<strong>en</strong>to. Su c<strong>la</strong>sificación se muestra <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 5.4.<br />
Tab<strong>la</strong> 5.4 Tipos <strong>de</strong> repres<strong>en</strong>tación <strong><strong>de</strong>l</strong> conocimi<strong>en</strong>to <strong>de</strong> <strong>la</strong> Arquitectura Intelig<strong>en</strong>te<br />
Tipos<br />
Dec<strong>la</strong>rativa<br />
Procedural<br />
Simbólico<br />
Sub-simbólico<br />
Uniforme<br />
No uniforme<br />
Descripción<br />
Conocimi<strong>en</strong>to que es almac<strong>en</strong>ado <strong>en</strong> un conjunto <strong>de</strong> s<strong>en</strong>t<strong>en</strong>cias acerca <strong><strong>de</strong>l</strong><br />
problema. Estas s<strong>en</strong>t<strong>en</strong>cias son estáticas que pue<strong>de</strong>n ser adicionadas,<br />
borradas o modificadas<br />
Conocimi<strong>en</strong>to almac<strong>en</strong>ado <strong>en</strong> un conjunto <strong>de</strong> procedimi<strong>en</strong>tos los cuales<br />
pue<strong>de</strong>n <strong>de</strong>terminar cuando ejecutarse<br />
Almac<strong>en</strong>a el conocimi<strong>en</strong>to utilizando símbolos que repres<strong>en</strong>tan objetos que<br />
no pert<strong>en</strong>ec<strong>en</strong> al problema o conjunto <strong>de</strong> percepciones acerca <strong>de</strong> situaciones<br />
que no son <strong><strong>de</strong>l</strong> problema<br />
Conocimi<strong>en</strong>to almac<strong>en</strong>ado sin el uso <strong>de</strong> símbolos. La arquitectura usa<br />
directam<strong>en</strong>te mapeo a partir <strong>de</strong> <strong>la</strong>s <strong>en</strong>tradas a <strong>la</strong>s salidas.<br />
El conocimi<strong>en</strong>to base elige un método para su repres<strong>en</strong>tación y ese usa<br />
exclusivam<strong>en</strong>te.<br />
Son usados muchos métodos <strong>de</strong> repres<strong>en</strong>tación.<br />
66
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
b) Apr<strong>en</strong>dizaje: Propiedad <strong>de</strong> una arquitectura que le permite adquirir conocimi<strong>en</strong>to<br />
especifico <strong><strong>de</strong>l</strong> domino y usarlo para mejorar el <strong>de</strong>sempeño. Su c<strong>la</strong>sificación se muestra <strong>en</strong><br />
<strong>la</strong> tab<strong>la</strong> 5.5.<br />
Tipos<br />
Deliberativo<br />
Reflexivo<br />
Monótono<br />
Nomonótono<br />
Tab<strong>la</strong> 5.5 Tipos <strong>de</strong> Apr<strong>en</strong>dizaje <strong>de</strong> una Arquitectura Intelig<strong>en</strong>te<br />
Descripción<br />
La arquitectura ti<strong>en</strong>e un especial modo <strong>de</strong> apr<strong>en</strong>dizaje o especifica que<br />
criterios requiere apr<strong>en</strong><strong>de</strong>r.<br />
La arquitectura es capaz <strong>de</strong> apr<strong>en</strong><strong>de</strong>r mi<strong>en</strong>tras realiza interacción con otros<br />
módulos. No apr<strong>en</strong><strong>de</strong> cuando se le indica, sigue un proceso continuo.<br />
Todo apr<strong>en</strong>dizaje consiste <strong>en</strong> adicionar nuevos elem<strong>en</strong>tos a <strong>la</strong> base <strong>de</strong> datos.<br />
Los elem<strong>en</strong>tos no pue<strong>de</strong>n ser borrados.<br />
Elem<strong>en</strong>tos que pue<strong>de</strong>n ser borrados <strong>de</strong> <strong>la</strong> base <strong>de</strong> datos.<br />
c) Operación: Se refiere a <strong>la</strong> manera <strong>en</strong> que <strong>la</strong> arquitectura está organizada para realizar el<br />
apr<strong>en</strong>dizaje. Su c<strong>la</strong>sificación se muestra <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 5.6.<br />
Tab<strong>la</strong> 5.6 Tipos <strong>de</strong> Operación <strong>de</strong> una Arquitectura Intelig<strong>en</strong>te<br />
Tipos<br />
Descripción<br />
C<strong>en</strong>tralizado<br />
Hay un contro<strong>la</strong>dor c<strong>en</strong>tral, el cual es responsable <strong>de</strong> <strong>de</strong>terminar el curso <strong>de</strong> <strong>la</strong>s<br />
acciones <strong>de</strong> <strong>la</strong> arquitectura.<br />
Modu<strong>la</strong>r<br />
La arquitectura se divi<strong>de</strong> <strong>en</strong> varios módulos, cada uno <strong>de</strong> ellos compr<strong>en</strong><strong>de</strong> un<br />
aspecto particu<strong>la</strong>r <strong>de</strong> tarea cognitiva.<br />
Distribuidas No hay un contro<strong>la</strong>dor c<strong>en</strong>tral y no hay módulos.<br />
d) Desempeño: Se refiere al tiempo <strong>de</strong> ejecución <strong>de</strong> <strong>la</strong> implem<strong>en</strong>tación actual <strong>de</strong> <strong>la</strong><br />
arquitectura. En especial at<strong>en</strong>ción <strong><strong>de</strong>l</strong> tiempo <strong>de</strong> reacción <strong>de</strong> <strong>la</strong> arquitectura con respecto a<br />
su ambi<strong>en</strong>te. Su c<strong>la</strong>sificación se muestra <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 5.7.<br />
Tab<strong>la</strong> 5.7 Tipos <strong>de</strong> <strong>de</strong>sempeño <strong>de</strong> una Arquitectura Intelig<strong>en</strong>te<br />
Tipos<br />
Velocidad<br />
Percepción<br />
ambiciosa<br />
Percepción<br />
Perezosa<br />
Descripción<br />
Radio <strong>de</strong> velocidad re<strong>la</strong>tiva, <strong>de</strong>nominándo<strong>la</strong> rápidas, mediocre y l<strong>en</strong>ta.<br />
La arquitectura siempre observa el ambi<strong>en</strong>te y se interna <strong>en</strong> esta información.<br />
La arquitectura so<strong>la</strong>m<strong>en</strong>te observa cuando consi<strong>de</strong>ra que es necesario.<br />
67
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
5.3 Revisión <strong>de</strong> Trabajos Re<strong>la</strong>cionados<br />
En [Bradwell], se <strong>de</strong>scribe el proyecto CACP (Computer-Assisted Construction P<strong>la</strong>nning In<br />
Total Project Systems) el cual esta ori<strong>en</strong>tado a <strong>la</strong> solución <strong>de</strong> problemas tipo tecnología<br />
restrictiva.<br />
Soporta solución <strong>de</strong> problemas mediante: formu<strong>la</strong>ción <strong><strong>de</strong>l</strong> problema y <strong>de</strong>finición <strong>de</strong> <strong>en</strong>trada <strong>de</strong><br />
datos; resolvedores pre-escritos y apoyo al usuario <strong>en</strong> <strong>la</strong> elección <strong>de</strong> cuales <strong>de</strong> los algoritmos<br />
disponibles serán aplicados.<br />
En <strong>la</strong> figura 5.1 se pres<strong>en</strong>ta <strong>la</strong> arquitectura <strong><strong>de</strong>l</strong> proyecto, <strong>la</strong> especificación <strong><strong>de</strong>l</strong> problema es<br />
proporcionado por medio <strong>de</strong> <strong>la</strong> interfaz y procesado por un analizador gramatical, permiti<strong>en</strong>do<br />
proporcionar comandos <strong>de</strong> <strong>en</strong>trada para el proceso <strong>de</strong> búsqueda local por medio <strong>de</strong> los<br />
resolvedores <strong>de</strong> búsqueda local heurística (tabú, algoritmos g<strong>en</strong>éticos), don<strong>de</strong> <strong>la</strong> solución es<br />
dirigida al usuario por medio <strong>de</strong> <strong>la</strong> interfaz, cabe m<strong>en</strong>cionar que <strong>la</strong> interfaz esta diseñada<br />
cuidadosam<strong>en</strong>te con <strong>la</strong> finalidad <strong>de</strong> guiar al usuario hacia una tecnología intelig<strong>en</strong>te, <strong>de</strong><br />
manera que los usuarios puedan experim<strong>en</strong>tar con difer<strong>en</strong>tes formu<strong>la</strong>ciones <strong><strong>de</strong>l</strong> problema<br />
rápidam<strong>en</strong>te.<br />
Figura 5.1 Arquitectura <strong><strong>de</strong>l</strong> proyecto CAPC<br />
En los trabajos [Gleason95, Eug<strong>en</strong>e93, Borghetti96] especifican <strong>la</strong> arquitectura PESKI (<strong>de</strong> sus<br />
sig<strong>la</strong>s <strong>en</strong> ingles: Probabilistic Expert System Knowledge and Infer<strong>en</strong>ce).<br />
68
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
Es un sistema experto cuya base es el conocimi<strong>en</strong>to bayesiano. Su arquitectura se pres<strong>en</strong>ta <strong>en</strong><br />
<strong>la</strong> figura 5.2, compr<strong>en</strong>dida por: interfase <strong>de</strong> l<strong>en</strong>guaje natural (Explicación e Interpretación) y el<br />
motor <strong>de</strong> infer<strong>en</strong>cia, con re<strong>la</strong>ción <strong>de</strong> <strong>la</strong> Base <strong>de</strong> datos y <strong>la</strong> minería <strong>de</strong> datos compr<strong>en</strong>dida <strong>en</strong> el<br />
sistema. Con adquisición <strong>de</strong> conocimi<strong>en</strong>to y mant<strong>en</strong>imi<strong>en</strong>to.<br />
Figura 5.2 Arquitectura <strong><strong>de</strong>l</strong> proyecto PESKI<br />
En [Cogarch5], se hace refer<strong>en</strong>cia a <strong>la</strong> arquitectura PRODIGY (Prescribing Rationally with<br />
Decision Supoport In G<strong>en</strong>eral Practice Study), <strong>la</strong> repres<strong>en</strong>tación <strong><strong>de</strong>l</strong> conocimi<strong>en</strong>to se basa <strong>en</strong><br />
lógica <strong>de</strong> primer or<strong>de</strong>n, es <strong>de</strong>cir, usa reg<strong>la</strong>s <strong>de</strong> control para expresar <strong>la</strong> búsqueda <strong>de</strong><br />
conocimi<strong>en</strong>to.<br />
PRODIGY es una arquitectura modu<strong>la</strong>r como se pue<strong>de</strong> apreciar <strong>en</strong> <strong>la</strong> figura 5.3. Cabe<br />
m<strong>en</strong>cionar que los módulos pue<strong>de</strong>n ser adicional a <strong>la</strong> funcionalidad <strong>de</strong> <strong>la</strong> arquitectura. Todos<br />
los módulos compart<strong>en</strong> el resolvedor <strong>de</strong> problemas y algunas estructuras <strong>de</strong> datos. Esta<br />
organizada por <strong>la</strong> función cognitiva. Cada módulo repres<strong>en</strong>ta un conocimi<strong>en</strong>to <strong>de</strong> forma<br />
difer<strong>en</strong>te. El módulo c<strong>en</strong>tral es el Resolvedor <strong>de</strong> problemas, guiado por reg<strong>la</strong>s <strong>de</strong> control y el<br />
dominio in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te, <strong>de</strong>bido a los espacios <strong>de</strong> búsqueda combinatoria. En aus<strong>en</strong>cia <strong>de</strong><br />
control <strong>de</strong> conocimi<strong>en</strong>to, usa el Análisis profundidad-primero fondo-terminación. G<strong>en</strong>era<br />
rastreo que pue<strong>de</strong> ser usado por otros módulos.<br />
69
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
El modulo <strong>de</strong> evaluación, compr<strong>en</strong>sión y l<strong>en</strong>guaje <strong>de</strong>c<strong>la</strong>rativo junto con el modulo <strong>de</strong> control<br />
<strong>de</strong> conocimi<strong>en</strong>to, proporciona el apr<strong>en</strong>dizaje con base <strong>en</strong> explicaciones, es <strong>de</strong>cir, el método <strong>de</strong><br />
apr<strong>en</strong>dizaje obti<strong>en</strong>e reg<strong>la</strong>s <strong>de</strong> control, y no requiere <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to <strong>de</strong> ejemplos. Las reg<strong>la</strong>s son<br />
basadas directam<strong>en</strong>te <strong>en</strong> <strong>la</strong> examinación <strong>de</strong> dominio <strong><strong>de</strong>l</strong> conocimi<strong>en</strong>to.<br />
Los módulos <strong>de</strong> constructor y jerarquía abstracta se usa para <strong>la</strong> p<strong>la</strong>neación jerárquica.<br />
Encu<strong>en</strong>tra soluciones <strong><strong>de</strong>l</strong> problema <strong>en</strong> un espacio abstracto, guiado por <strong>la</strong> búsqueda <strong>de</strong><br />
soluciones <strong>en</strong> un espacio. En el módulo <strong>de</strong> experim<strong>en</strong>tación se <strong>en</strong>tr<strong>en</strong>a por una vio<strong>la</strong>ción <strong>de</strong><br />
expectativas. El conocimi<strong>en</strong>to anterior se analiza su consist<strong>en</strong>cia a través <strong>de</strong> <strong>la</strong><br />
experim<strong>en</strong>tación. La interfaz <strong>de</strong> usuario acepta conocimi<strong>en</strong>to y el problema a resolver con<br />
petición <strong><strong>de</strong>l</strong> mismo. A<strong>de</strong>más, <strong>de</strong> proporcionar un método <strong>de</strong> r<strong>en</strong>dimi<strong>en</strong>to <strong>de</strong> <strong>la</strong> evaluación.<br />
Figura 5.3 Arquitectura PRODIGY<br />
5.4 Análisis Comparativo<br />
Las arquitecturas usualm<strong>en</strong>te ti<strong>en</strong><strong>en</strong> explicitas <strong>la</strong>s metas y <strong>la</strong>s razones, lo que permite <strong>la</strong> falta<br />
<strong>de</strong> algún elem<strong>en</strong>to <strong>en</strong> el proceso <strong>de</strong> construcción. En el diseño es común que se t<strong>en</strong>gan<br />
limitaciones que dificultan obt<strong>en</strong>er propieda<strong>de</strong>s seguras, por lo que <strong>la</strong>s capacida<strong>de</strong>s se adaptan<br />
a éstas, no permiti<strong>en</strong>do g<strong>en</strong>erar los ambi<strong>en</strong>tes propuestos, lo que implica que <strong>la</strong>s arquitecturas<br />
actualm<strong>en</strong>te estén diseñadas bajo los requerimi<strong>en</strong>tos establecidos por <strong>la</strong> aplicación que <strong>la</strong>s<br />
distingue. Actualm<strong>en</strong>te, <strong>la</strong> finalidad <strong>de</strong> construir una arquitectura es satisfacer los<br />
70
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
requerimi<strong>en</strong>tos propuestos y mant<strong>en</strong>er un <strong>de</strong>sarrollo <strong>de</strong> tecnología intelig<strong>en</strong>te, <strong>en</strong> sus aspectos<br />
internos tales como procesami<strong>en</strong>to y conocimi<strong>en</strong>to; así como aspectos externos tales como<br />
diseño <strong>de</strong> <strong>la</strong> interfaz y análisis <strong>de</strong> resultados.<br />
5.5 Arquitectura <strong>de</strong> Solución <strong>de</strong> Casos y Evaluación <strong>de</strong> Algoritmos<br />
En <strong>la</strong>s sigui<strong>en</strong>tes secciones se muestra una <strong>de</strong>scripción g<strong>en</strong>eral <strong>de</strong> <strong>la</strong> Arquitectura <strong>de</strong><br />
Selección, y sus compon<strong>en</strong>tes. Contribuy<strong>en</strong>do esta investigación <strong>en</strong> <strong>la</strong> adaptación <strong><strong>de</strong>l</strong> módulo<br />
<strong>de</strong> solución <strong>de</strong> casos y evaluación <strong>de</strong> algoritmos<br />
5.5.1 Descripción G<strong>en</strong>eral <strong>de</strong> Arquitectura <strong>de</strong> Selección <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
La Arquitectura <strong>de</strong> Selección permite <strong>la</strong> caracterización <strong><strong>de</strong>l</strong> <strong>de</strong>sempeño algorítmico y su<br />
aplicación a <strong>la</strong> selección <strong>de</strong> algoritmos. La arquitectura se estructura <strong>en</strong> dos fases:<br />
<strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to y predicción [Cruz04]. Para fines <strong>de</strong> esta investigación, <strong>la</strong>s fases se integraron<br />
<strong>en</strong> un solo diseño que se muestra <strong>en</strong> <strong>la</strong> figura 5.4. Este diseño integrado permite visualizar los<br />
módulos <strong>de</strong>sarrol<strong>la</strong>dos y propuestos <strong>en</strong> esta investigación.<br />
En <strong>la</strong> Fase <strong>de</strong> predicción, <strong>la</strong> re<strong>la</strong>ción apr<strong>en</strong>dida se usa para pre<strong>de</strong>cir el mejor algoritmo para un<br />
nuevo caso dado. Consiste <strong>de</strong> los sigui<strong>en</strong>tes módulos:<br />
a) Medición <strong>de</strong> indicadores (8). Transforma los parámetros <strong>de</strong> un caso nuevo <strong>en</strong> indicadores<br />
<strong>de</strong> <strong>la</strong>s características críticas <strong><strong>de</strong>l</strong> problema.<br />
b) Selección (9). El selector <strong>de</strong> algoritmos re<strong>la</strong>ciona una nueva instancia a una <strong>de</strong> <strong>la</strong>s c<strong>la</strong>ses<br />
i<strong>de</strong>ntificadas y elige el algoritmo asociado a <strong>la</strong> c<strong>la</strong>se. Las nuevas instancias resueltas son<br />
incorporadas al sistema para increm<strong>en</strong>tar <strong>la</strong> calidad <strong>de</strong> <strong>la</strong> selección.<br />
c) Solución <strong><strong>de</strong>l</strong> caso (10). Resuelve el nuevo caso con el algoritmo <strong>de</strong> solución seleccionado<br />
<strong>en</strong> <strong>la</strong> fase <strong>de</strong> predicción, el resultado se pres<strong>en</strong>ta al usuario.<br />
71
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
Figura 5.4 Arquitectura <strong>de</strong> selección <strong>de</strong> algoritmos <strong>de</strong> solución<br />
El objetivo <strong>de</strong> <strong>la</strong> Fase <strong>de</strong> <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to es construir mo<strong><strong>de</strong>l</strong>os <strong>de</strong> predicción <strong><strong>de</strong>l</strong> <strong>de</strong>sempeño a<br />
partir <strong>de</strong> experi<strong>en</strong>cia pasada, es <strong>de</strong>cir, módulos que apr<strong>en</strong><strong>de</strong>n <strong>la</strong> re<strong>la</strong>ción <strong>en</strong>tre el <strong>de</strong>sempeño <strong>de</strong><br />
los algoritmos y los indicadores <strong>de</strong> complejidad obt<strong>en</strong>idos <strong>de</strong> una muestra inicial <strong>de</strong> casos<br />
resueltos con varios algoritmos. Esta fase consta <strong>de</strong> los sigui<strong>en</strong>tes módulos:<br />
a) Mo<strong><strong>de</strong>l</strong>ado <strong>de</strong> índices (1) . Obti<strong>en</strong>e un conjunto <strong>de</strong> índices <strong>de</strong> complejidad que son los<br />
valores <strong>de</strong> los parámetros <strong>de</strong> cada caso.<br />
b) Muestreo estadístico (2). G<strong>en</strong>era un conjunto <strong>de</strong> casos repres<strong>en</strong>tativos <strong><strong>de</strong>l</strong> problema <strong>de</strong><br />
optimización.<br />
72
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
c) Medición <strong>de</strong> índices (3). Transforma los parámetros <strong>de</strong> cada caso <strong>en</strong> indicadores <strong>de</strong> <strong>la</strong>s<br />
características críticas <strong><strong>de</strong>l</strong> problema.<br />
d) Solución <strong>de</strong> casos y Evaluación <strong>de</strong> algoritmos (4). Módulo propuesto y <strong>de</strong>sarrol<strong>la</strong>do <strong>en</strong><br />
esta investigación. Resuelve una muestra <strong>de</strong> casos y evalúa el <strong>de</strong>sempeño <strong>de</strong> algoritmos<br />
para <strong>de</strong>terminar los algoritmos campeones <strong>de</strong> cada caso.<br />
e) Agrupación <strong>de</strong> casos (6). Forma grupos constituidos por instancias para <strong>la</strong>s cuales un<br />
algoritmo tuvo un <strong>de</strong>sempeño simi<strong>la</strong>r o mejor que los otros.<br />
f) Construcción <strong><strong>de</strong>l</strong> Selector (7). Construye un c<strong>la</strong>sificador <strong>de</strong> casos a partir <strong>de</strong> los grupos<br />
formados. El c<strong>la</strong>sificador se construye <strong>en</strong> un selector <strong>de</strong>bido a que cada c<strong>la</strong>se <strong>de</strong> casos<br />
ti<strong>en</strong>e asociado un algoritmo campeón.<br />
g) Verificación <strong>de</strong> consist<strong>en</strong>cia <strong>de</strong> patrones (5). Módulo propuesto por esta investigación<br />
para monitorear <strong>la</strong> calidad <strong>de</strong> los resultados <strong><strong>de</strong>l</strong> sistema <strong>de</strong> selección y realizar ajustes a los<br />
patrones <strong>de</strong> casos.<br />
5.5.2 Diagrama G<strong>en</strong>eral <strong><strong>de</strong>l</strong> módulo <strong>de</strong> Solución <strong>de</strong> Casos y Evaluación <strong>de</strong> Algoritmos<br />
La arquitectura propuesta para <strong>la</strong> Solución y Evaluación figura 5.5, consta <strong>de</strong> un conjunto<br />
configurable <strong>de</strong> algoritmos heurísticos y métricas <strong>de</strong> caracterización <strong>de</strong> algoritmos, <strong>la</strong>s cuales<br />
hac<strong>en</strong> posible el apr<strong>en</strong>dizaje <strong>de</strong> experi<strong>en</strong>cia pasada y su explotación <strong>en</strong> tareas <strong>de</strong> predicción.<br />
Se espera que <strong>en</strong> un proyecto futuro <strong>la</strong>s métricas <strong>de</strong> superficie sean <strong>de</strong> utilidad <strong>en</strong> el<br />
refinami<strong>en</strong>to <strong><strong>de</strong>l</strong> apr<strong>en</strong>dizaje y rediseño <strong>de</strong> algoritmos.<br />
La arquitectura <strong>de</strong> solución <strong>de</strong> casos y evaluación <strong>de</strong> algoritmos soporta <strong>la</strong>s fases <strong>de</strong><br />
<strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to y predicción, y consta <strong>de</strong> los sigui<strong>en</strong>tes módulos, figura 5.5.<br />
a) Solución <strong>de</strong> Casos (4.1)<br />
b) Evaluación <strong>de</strong> algoritmos (4.2)<br />
c) Módulos propuestos <strong>de</strong> esta tesis: Verificación <strong>de</strong> Consist<strong>en</strong>cia <strong>de</strong> Patrones (5) y<br />
Rediseño <strong>de</strong> Algoritmos (11).<br />
73
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
En <strong>la</strong> Fase <strong>de</strong> predicción <strong>la</strong> participación <strong>de</strong> esta arquitectura consiste <strong>en</strong> el sigui<strong>en</strong>te módulo:<br />
a) Solución <strong><strong>de</strong>l</strong> caso (10). Dado un caso nuevo y el nombre <strong><strong>de</strong>l</strong> algoritmo que el selector le<br />
proporciona al usuario, adquiere <strong>la</strong> arquitectura el algoritmo <strong>de</strong> solución y procesa para<br />
proporcionar al usuario el resultado.<br />
Figura 5.5 Arquitectura <strong>de</strong> Solución <strong>de</strong> Casos y Evaluación <strong>de</strong> Algoritmos<br />
La Evaluación <strong>de</strong> Algoritmos se divi<strong>de</strong> <strong>en</strong> do módulos <strong>de</strong>nominados:<br />
a) Análisis <strong>de</strong> Desempeño (4.2.1)<br />
b) Análisis <strong>de</strong> Superficie (4.2.2)<br />
74
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
Análisis <strong>de</strong> Desempeño (4.2.1)<br />
El procedimi<strong>en</strong>to <strong>de</strong> Evaluación <strong>de</strong> Algoritmos <strong>de</strong> <strong>de</strong>sempeño consta <strong>de</strong> tres procesos, figura<br />
5.6:<br />
Convertidor a salida estándar<br />
Los archivos g<strong>en</strong>erados <strong>en</strong> el proceso <strong>de</strong> Solución <strong>de</strong> casos, proporciona una serie <strong>de</strong> archivos<br />
<strong>de</strong> salida que pasan por un proceso <strong>de</strong> estandarización, es <strong>de</strong>cir que in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>tem<strong>en</strong>te <strong><strong>de</strong>l</strong><br />
formato que cont<strong>en</strong>gan estos archivos se da un tratami<strong>en</strong>to para extraer tres elem<strong>en</strong>tos<br />
principales: nombre <strong><strong>de</strong>l</strong> caso, radio y tiempo.<br />
Archivos <strong>de</strong> Desempeño<br />
<strong>de</strong> los<br />
Algoritmos <strong>de</strong> Solución<br />
• Criterio <strong>de</strong> <strong>de</strong>sempeño<br />
• Número <strong>de</strong> <strong>de</strong>cimales significativos<br />
• Nombres <strong>de</strong> archivos <strong>de</strong> salida<br />
• Algoritmos <strong>de</strong> solución<br />
Convertidor a salida estándar<br />
Configuración<br />
Archivos <strong>de</strong> <strong>de</strong>sempeño<br />
estandarizados<br />
Archivo <strong>de</strong><br />
Configuración<br />
Evaluador <strong>de</strong><br />
Desempeño<br />
• Tab<strong>la</strong> <strong>de</strong> integradora <strong>de</strong> <strong>de</strong>sempeño<br />
• Lista <strong>de</strong> campeones<br />
• Primer campeón<br />
• Archivo <strong>de</strong> reetiquetado<br />
Figura 5.6 Procedimi<strong>en</strong>to g<strong>en</strong>eral <strong>de</strong> Evaluación <strong>de</strong> Algoritmos basado <strong>en</strong> métricas <strong>de</strong> <strong>de</strong>sempeño<br />
Configuración<br />
Este proceso ti<strong>en</strong>e como <strong>en</strong>trada <strong>de</strong>cisiones <strong><strong>de</strong>l</strong> usario para <strong>de</strong>terminar bajo que criterios<br />
g<strong>en</strong>erar <strong>la</strong> lista <strong>de</strong> algoritmos campeones, así como establecer cantidad <strong>de</strong> <strong>de</strong>cimales<br />
75
Capítulo 5<br />
Arquitecturas con Integración Intelig<strong>en</strong>te<br />
significativos consi<strong>de</strong>rados para establecer comparaciones internas. Su salida es un archivo<br />
con <strong>la</strong> configuración establecida.<br />
Evaluador <strong>de</strong> Desempeño<br />
Este procedimi<strong>en</strong>to ti<strong>en</strong>e como <strong>en</strong>trada los archivos <strong>de</strong> <strong>de</strong>sempeño estandarizados y el archivo<br />
<strong>de</strong> configuración. A continuación se <strong>de</strong>scrib<strong>en</strong> los pasos para dicho procedimi<strong>en</strong>to:<br />
a. G<strong>en</strong>erar un archivo <strong>de</strong> salida l<strong>la</strong>mado Reetiquetado, que conti<strong>en</strong>e <strong>la</strong> lista <strong>de</strong> los algoritmos<br />
<strong>de</strong> solución con su respectiva nom<strong>en</strong>c<strong>la</strong>tura numérica.<br />
b. Integrar <strong>en</strong> un archivo <strong>la</strong> información <strong>de</strong> <strong>de</strong>sempeño (radio y tiempo) <strong>de</strong> todos los<br />
algoritmos con todos los casos.<br />
c. Para cada caso <strong>de</strong>terminar los mejores algoritmos <strong>de</strong> acuerdo a <strong>la</strong> configuración<br />
establecida para <strong>la</strong> evaluación. Con este resultado g<strong>en</strong>erar un archivo con los campeones<br />
<strong>de</strong> cada caso y otra con el primer campeón.<br />
Análisis <strong>de</strong> Superficie (4.2.2)<br />
El procedimi<strong>en</strong>to g<strong>en</strong>eral <strong>de</strong> <strong>la</strong> evaluación <strong>de</strong> algoritmos por superficie consta <strong>de</strong> 3 etapas:<br />
a) Durante el proceso <strong>de</strong> solución se registran los movimi<strong>en</strong>tos (soluciones y distancias al<br />
óptimo) realizados por cada algoritmo.<br />
b) Cuantificación <strong>de</strong> <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> <strong>la</strong> superficie g<strong>en</strong>erada por los algoritmos <strong>de</strong> solución<br />
aplicados a los casos <strong>de</strong> <strong>la</strong> muestra. Las métricas <strong>de</strong> superficie que mi<strong>de</strong>n dichas<br />
propieda<strong>de</strong>s se <strong>de</strong>scrib<strong>en</strong> <strong>en</strong> el <strong>la</strong>s secciones anteriores.<br />
c) Aplicación <strong>de</strong> técnicas estadísticas (medidas <strong>de</strong> t<strong>en</strong><strong>de</strong>ncia c<strong>en</strong>tral, análisis <strong>de</strong> factores,<br />
agrupación k-mean) para el análisis final <strong>de</strong> resultados. Las técnicas estadísticas utilizadas<br />
están ampliam<strong>en</strong>te docum<strong>en</strong>tados <strong>en</strong> [Santiago 04, Cruz 04, Lan<strong>de</strong>ro04].<br />
Para dar continuidad a este arquitectura se propone el <strong>de</strong>sarrollo <strong>de</strong> los módulos: validación <strong>de</strong><br />
consist<strong>en</strong>cia <strong>de</strong> patrones (5) y rediseño <strong>de</strong> algoritmos <strong>de</strong> solución (11).<br />
76
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
6<br />
Resultados<br />
Experim<strong>en</strong>tales<br />
6.1 Condiciones G<strong>en</strong>erales <strong>de</strong> <strong>la</strong> Experim<strong>en</strong>tación<br />
En esta sección, se <strong>de</strong>scrib<strong>en</strong> <strong>en</strong> forma g<strong>en</strong>eral los dos tipos <strong>de</strong> casos <strong>de</strong> prueba que se<br />
utilizaron como <strong>en</strong>trada <strong>de</strong> todos los experim<strong>en</strong>tos: casos aleatorios para <strong>en</strong>tr<strong>en</strong>ar el sistema<br />
<strong>de</strong> selección <strong>de</strong> algoritmos y casos estándar para verificar <strong>la</strong> calidad <strong><strong>de</strong>l</strong> selector. Así como, <strong>la</strong><br />
especificación <strong><strong>de</strong>l</strong> ambi<strong>en</strong>te operativo don<strong>de</strong> se efectuaron tanto el <strong>de</strong>sarrollo <strong>de</strong> los algoritmos<br />
<strong>de</strong> solución, como <strong>la</strong> evaluación <strong>de</strong> los mismos.<br />
6.1.1 Casos <strong>de</strong> Prueba Aleatorios<br />
Se utilizaron 2430 casos aleatorios para <strong>en</strong>tr<strong>en</strong>ar al selector <strong>de</strong> algoritmos, éstos fueron<br />
creados según el método <strong>de</strong>scrito <strong>en</strong> [Cruz04], <strong>en</strong> particu<strong>la</strong>r con el g<strong>en</strong>erador G<strong>en</strong>5<br />
[Santiago04]. En <strong>la</strong> tab<strong>la</strong> 6.1 se pres<strong>en</strong>ta un subconjunto <strong>de</strong> <strong>la</strong> muestra <strong>de</strong> casos aleatorios. La<br />
primera columna, <strong>la</strong> segunda, tercera y última columnas correspon<strong>de</strong>n respectivam<strong>en</strong>te al<br />
nombre <strong><strong>de</strong>l</strong> caso, número <strong>de</strong> objetos (n), capacidad <strong><strong>de</strong>l</strong> cont<strong>en</strong>edor (c) y los tamaños <strong>de</strong> los<br />
objetos (S).<br />
77
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
Tab<strong>la</strong> 6.1 Ejemplo <strong>de</strong> casos aleatorios <strong>de</strong> una muestra<br />
Caso n c S<br />
e70i2 820 217 163, 44,12, 35, 80, 1...<br />
e100i9 1858 319 1712, 1858, 1749, 1858...<br />
e101i8 23 2436 2024, 1969, 1991, 1904...<br />
e103i2 245 8096 8096, 8096, 7821, 8096...<br />
e104i8 64 8781 6866, 6342, 5217, 6484....<br />
e109i10 536 1148 351, 271, 273, 287, 287...<br />
6.1.2 Casos <strong>de</strong> Prueba Estándar<br />
Para probar el mo<strong><strong>de</strong>l</strong>o <strong>de</strong> <strong>de</strong>sempeño apr<strong>en</strong>dido, se obtuvieron casos estándar tomados <strong>de</strong> los<br />
sitios <strong>de</strong> Internet más reconocidos; estos cu<strong>en</strong>tan con un dato adicional <strong>de</strong>nominado “mejor<br />
solución conocida”, para t<strong>en</strong>er una i<strong>de</strong>a <strong>de</strong> <strong>la</strong> calidad <strong>de</strong> <strong>la</strong> solución obt<strong>en</strong>ida por los<br />
algoritmos <strong>de</strong>sarrol<strong>la</strong>dos. Se obtuvieron 1,369 casos estándar <strong>la</strong> biblioteca <strong>de</strong> Investigación <strong>de</strong><br />
Operaciones <strong>de</strong> Beasley [Library_BOR] y <strong>la</strong> biblioteca <strong>de</strong> Investigación <strong>de</strong> Operaciones <strong>de</strong> <strong>la</strong><br />
Universidad Tecnológica <strong>de</strong> Darmstadt [Library_DOR]. En <strong>la</strong> tab<strong>la</strong> 6.2 se pres<strong>en</strong>ta un<br />
subconjunto <strong>de</strong> esta muestra.<br />
Tab<strong>la</strong> 6.2 Ejemplo <strong>de</strong> casos estándar <strong>de</strong> una muestra<br />
Caso n c S<br />
N1c1w2_b 50 100 99, 96, 95, 95, 91, 91…<br />
N1w1b2r2 50 1000 492, 489, 483, 482, 481…<br />
N2c2w2_t 100 120 100, 100, 100, 99, 99, 99…<br />
N2c3w4_t 100 150 100, 100, 99, 99, 97, 97…<br />
N2w4b2r9 100 1000 163, 162, 157, 157, 156…<br />
N3c3w1_c 200 150 100, 100, 100, 100, 99, 99…<br />
N3c3w4_t 200 150 100, 100, 99, 99, 99, 98…<br />
78
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
6.1.3 Ambi<strong>en</strong>te Operativo<br />
Para el <strong>de</strong>sarrollo <strong>de</strong> los algoritmos que se ejecutan <strong>en</strong> los experim<strong>en</strong>tos, se utilizó una PC con<br />
<strong>la</strong>s sigui<strong>en</strong>tes características: Sistema Operativo Windows XP, compi<strong>la</strong>dor Bor<strong>la</strong>nd C Versión<br />
5.01, Procesador Intel P<strong>en</strong>tium 4 a 1.7 Mhz, 120 Mb RAM y 30Gb <strong>de</strong> disco duro.<br />
La evaluación <strong>de</strong> los resultados se realizo <strong>en</strong> cuatro servidores, DELL PowerEdge 2600 con<br />
sistema operativo Microsoft Windows Server 2003 para pequeños negocios y procesador<br />
Xeon a 3.06 GHz, RAM <strong>de</strong> 3.87 GB.<br />
6.2 Experim<strong>en</strong>to 1: Mo<strong><strong>de</strong>l</strong>ado <strong><strong>de</strong>l</strong> Problema Bin-Packing<br />
6.2.1 Hipótesis<br />
Es posible obt<strong>en</strong>er <strong>la</strong> solución óptima <strong>de</strong> casos aleatorios y estándar <strong><strong>de</strong>l</strong> problema Bin-<br />
Packing, <strong>en</strong> un tiempo <strong>de</strong> computo no mayor <strong>de</strong> 30 minutos, utilizando el algoritmo <strong>de</strong><br />
Ramificación y Acotami<strong>en</strong>to implem<strong>en</strong>tado <strong>en</strong> el paquete computacional LINDO API 3.0 para<br />
Windows.<br />
6.2.2 Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
En <strong>la</strong> figura 6.1 se pres<strong>en</strong>ta el algoritmo g<strong>en</strong>eral <strong>de</strong> solución <strong>de</strong> un caso <strong><strong>de</strong>l</strong> problema Bin-<br />
Packing mediante el paquete computacional LINDO.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
Inicio<br />
Tomar una muestra <strong>de</strong> casos aleatorios y estándar <strong>de</strong> Bin-Packing<br />
Leer Archivo <strong>de</strong> Entrada <strong>de</strong> un caso<br />
G<strong>en</strong>erar un Mo<strong><strong>de</strong>l</strong>o <strong>de</strong> Programación Lineal Entera<br />
Resolver el mo<strong><strong>de</strong>l</strong>o Mediante Librerías <strong>de</strong> LINDO dando una tolerancia <strong>de</strong><br />
30 minutos<br />
Fin Procedimi<strong>en</strong>to<br />
Figura 6.1 Algoritmo G<strong>en</strong>eral <strong>de</strong> Solución <strong>de</strong> Bin-Packing mediante LINDO<br />
6.2.2.1 G<strong>en</strong>eración <strong><strong>de</strong>l</strong> Mo<strong><strong>de</strong>l</strong>o <strong>de</strong> Programación Lineal Entera <strong>de</strong> Bin-Packing<br />
El Mo<strong><strong>de</strong>l</strong>o G<strong>en</strong>eral <strong>de</strong> Programación Lineal Entera (PLE) para Bin-Packing se muestra <strong>en</strong> <strong>la</strong><br />
figura 6.2, se divi<strong>de</strong> <strong>en</strong> 3 partes principales: función objetivo, restricciones <strong>de</strong> capacidad y<br />
restricciones <strong>de</strong> asignación.<br />
79
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
m<br />
min z = ∑ Y<br />
j=<br />
1<br />
j<br />
Función Objetivo<br />
Sujeto a:<br />
m<br />
∑<br />
i=<br />
1<br />
sX − Y * c= 0 ∀<br />
i ij j j<br />
Restricciones <strong>de</strong><br />
Capacidad<br />
m<br />
∑<br />
j=<br />
1<br />
X<br />
ij<br />
= 1 ∀<br />
i<br />
Restricciones <strong>de</strong><br />
Asignación<br />
Figura 6.2 Mo<strong><strong>de</strong>l</strong>o G<strong>en</strong>eral <strong>de</strong> PLE que resuelve un caso <strong><strong>de</strong>l</strong> problema <strong>de</strong> Bin-Packing.<br />
Función Objetivo<br />
La variable binaria Y j<br />
, toma el valor <strong>de</strong> 1 sí el cont<strong>en</strong>edor<br />
m<strong>en</strong>os un objeto, y 0 <strong>en</strong> caso contrario.<br />
j<br />
es usado para almac<strong>en</strong>ar al<br />
Para Bin-Packing <strong>la</strong> función objetivo es minimizar, es <strong>de</strong>cir, <strong>en</strong>contrar <strong>en</strong> z , el m<strong>en</strong>or número<br />
<strong>de</strong> cont<strong>en</strong>edores para empacar todos los m objetos; m también es el número máximo <strong>de</strong><br />
cont<strong>en</strong>edores (se asigna un objeto por cont<strong>en</strong>edor).<br />
Restricción <strong>de</strong> Capacidad<br />
El tamaño <strong>de</strong> los objetos asignados al cont<strong>en</strong>edor j no <strong>de</strong>be exce<strong>de</strong>r <strong>la</strong> capacidad c <strong>de</strong> éste.<br />
La variable binaria<br />
X toma el valor <strong>de</strong> 1 cuando un objeto i <strong>de</strong> tamaño s , 1≤i≤m, sea<br />
i j<br />
i<br />
ubicado <strong>en</strong> el cont<strong>en</strong>edor j, <strong>en</strong> caso contrario tomarán el valor <strong>de</strong> 0.<br />
Restricción <strong>de</strong> Asignación<br />
Su propósito es forzar, para un objeto i , que <strong>la</strong> suma <strong>de</strong> <strong>la</strong>s variables<br />
X<br />
ij<br />
, adquiere el valor<br />
<strong>de</strong> 1 y así obligar a <strong>la</strong> asignación <strong><strong>de</strong>l</strong> objeto i <strong>en</strong> algún cont<strong>en</strong>edor j , ya que sería más barato<br />
no asignarlo. En <strong>la</strong> figura 6.3 se muestra un caso <strong><strong>de</strong>l</strong> problema Bin-Packing y <strong>en</strong> <strong>la</strong> figura 6.4<br />
se proporciona el mo<strong><strong>de</strong>l</strong>o <strong>de</strong> programación lineal correspondi<strong>en</strong>te.<br />
80
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
//Number of item<br />
5<br />
//Bin Capacity<br />
100.00<br />
//Known Best Solution<br />
17<br />
//Weight of item<br />
39.00<br />
38.00<br />
28.00<br />
27.00<br />
26.00<br />
Figura 6.3 Caso <strong>de</strong> Bin-Packing<br />
MIN z= Y 1 + Y 2 + Y 3 + Y 4 + Y 5<br />
Subject to:<br />
39 * X 11 + 38 * X 21 + 28 * X 31 + 27 * X 41 + 26 * X 51 – 100 * Y 1 = 0<br />
39 * X 12 + 38 * X 22 + 28 * X 32 + 27 * X 42 + 26 * X 52 – 100 * Y 2 = 0<br />
39 * X 13 + 38 * X 23 + 28 * X 33 + 27 * X 43 + 26 * X 53 – 100 * Y 3 = 0<br />
39 * X 14 + 38 * X 24 + 28 * X 34 + 27 * X 44 + 26 * X 54 – 100 * Y 4 = 0<br />
39 * X 15 + 38 * X 25 + 28 * X 35 + 27 * X 45 + 26 * X 55 – 100 * Y 5 = 0<br />
X 11 + X 12 + X 13 + X 14 + X 15 = 1<br />
X 21 + X 22 + X 23 + X 24 + X 25 = 1<br />
X 31 + X 32 + X 33 + X 34 + X 35 = 1<br />
X 41 + X 42 + X 43 + X 44 + X 45 = 1<br />
X 51 + X 52 + X 53 + X 54 + X 55 = 1<br />
Figura 6.4 Mo<strong><strong>de</strong>l</strong>o <strong>de</strong> PLE para el caso <strong>de</strong> Bin-Packing mostrado <strong>en</strong> <strong>la</strong> Figura 6.3<br />
6.2.2.2 Solución <strong><strong>de</strong>l</strong> Mo<strong><strong>de</strong>l</strong>o<br />
Una vez que se ti<strong>en</strong>e el mo<strong><strong>de</strong>l</strong>o se hace uso <strong>de</strong> <strong>la</strong>s sigui<strong>en</strong>tes funciones <strong>de</strong> <strong>la</strong> librería LINDO<br />
API para obt<strong>en</strong>er su solución y por consigui<strong>en</strong>te <strong>la</strong> <strong><strong>de</strong>l</strong> caso Bin-Packing:<br />
a) LScreateEnv( ). Permite inicializar el ambi<strong>en</strong>te capaz <strong>de</strong> mant<strong>en</strong>er los mo<strong><strong>de</strong>l</strong>os <strong>de</strong><br />
programación lineal.<br />
81
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
b) LScreateMo<strong><strong>de</strong>l</strong>( ). Crea el Mo<strong><strong>de</strong>l</strong>o <strong>de</strong> Programación Lineal. Para el objetivo que se<br />
pret<strong>en</strong><strong>de</strong> alcanzar g<strong>en</strong>era <strong>la</strong> estructura que cont<strong>en</strong>drá el mo<strong><strong>de</strong>l</strong>o <strong>de</strong> PL <strong>de</strong>sarrol<strong>la</strong>do para el<br />
caso <strong>de</strong> Bin-Packing que se quiere resolver.<br />
c) LSreadLINDOFile( ). Permite leer el mo<strong><strong>de</strong>l</strong>o (<strong>en</strong> formato LINDO) g<strong>en</strong>erado por el paso 3<br />
<strong><strong>de</strong>l</strong> algoritmo mostrado <strong>en</strong> <strong>la</strong> figura 6.1, y lo almac<strong>en</strong>a <strong>en</strong> <strong>la</strong> estructura creada por <strong>la</strong><br />
función LScreateMo<strong><strong>de</strong>l</strong>.<br />
d) LSsolveMIP( ). Resuelve el mo<strong><strong>de</strong>l</strong>o <strong>de</strong> PLE mediante <strong>la</strong> técnica <strong>de</strong> Ramificación y<br />
Acotami<strong>en</strong>to.<br />
e) LSgetInfo( ). Permite obt<strong>en</strong>er <strong>la</strong> solución obt<strong>en</strong>ida para el mo<strong><strong>de</strong>l</strong>o que fue resuelto por <strong>la</strong><br />
función LSsolveMIP.<br />
f) LSgetMIPPrimalSolution( ). Permite obt<strong>en</strong>er los valores <strong>de</strong> <strong>la</strong>s variables que hicieron<br />
óptima <strong>la</strong> solución obt<strong>en</strong>ida por LSsolveMIP.<br />
g) LS<strong><strong>de</strong>l</strong>eteEnv( ). Permite eliminar <strong>la</strong> memoria utilizada por <strong>la</strong> estructura creada a través <strong>de</strong><br />
<strong>la</strong> función LScreateEnv.<br />
Una vez que se ha resuelto el mo<strong><strong>de</strong>l</strong>o se <strong>de</strong>spliegan los resultados <strong>en</strong> un archivo <strong>de</strong> salida<br />
<strong>de</strong>nominado Resultados.txt. La información <strong>de</strong>splegada es <strong>la</strong> sigui<strong>en</strong>te y <strong>en</strong> el or<strong>de</strong>n mostrado:<br />
a) Nombre <strong><strong>de</strong>l</strong> Archivo <strong>de</strong> Entrada que conti<strong>en</strong>e los parámetros <strong><strong>de</strong>l</strong> caso a resolver.<br />
b) Cantidad <strong>de</strong> cont<strong>en</strong>edores que se acomodaron.<br />
c) Solución al caso (m<strong>en</strong>or número <strong>de</strong> cont<strong>en</strong>edores).<br />
d) Tiempo que se tardó <strong>en</strong> llegar a <strong>la</strong> solución óptima.<br />
e) Ubicación <strong>de</strong> los objetos por or<strong>de</strong>n <strong>de</strong> aparición <strong>en</strong> el archivo <strong>de</strong> <strong>en</strong>trada.<br />
6.2.3 Análisis <strong>de</strong> Resultados<br />
Los casos se tomaron <strong>de</strong> los 16 grupos formados <strong>en</strong> el <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to inicial <strong>de</strong> <strong>la</strong><br />
Arquitectura <strong>de</strong> Selección; se tomó una muestra repres<strong>en</strong>tativa sigui<strong>en</strong>do el criterio <strong>de</strong> adquirir<br />
el 30% <strong>de</strong> los casos <strong>en</strong> grupos m<strong>en</strong>ores o igual a 100 casos, y 30 casos <strong>en</strong> grupos mayores <strong>de</strong><br />
100.<br />
82
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
En <strong>la</strong> tab<strong>la</strong> 6.3 se muestran los resultados <strong>de</strong> los casos estándar y <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 6.4 <strong>de</strong> los casos<br />
aleatorios. Con base a estos resultados se rechaza <strong>la</strong> hipótesis, los recursos limitados <strong>de</strong><br />
memoria y tiempo no permitieron <strong>la</strong> solución <strong><strong>de</strong>l</strong> 74% <strong>de</strong> los casos estándar y 59% <strong>de</strong> los<br />
casos aleatorios <strong>de</strong> <strong>la</strong> muestra. En 13% <strong>de</strong> los aleatorios excedió <strong>la</strong> memoria disponible y 46%<br />
el limite <strong>de</strong> tiempo.<br />
Tab<strong>la</strong> 6.3 Resultados <strong>de</strong> casos estándar resueltos por LINDO.<br />
Grupo<br />
Total<br />
Casos Analizados<br />
Casos Resueltos No Resueltos 1 No Resueltos 2 Casos No Analizados<br />
1 88 4 0 22 62<br />
2 2 2 0 0 0<br />
4 50 0 0 15 35<br />
5 411 9 0 21 390<br />
6 302 18 0 12 272<br />
7 6 1 0 0 5<br />
12 51 6 0 30 36<br />
16 481 3 1 26 451<br />
1 El equipo no soporto <strong>la</strong> estructura creada por el caso mo<strong><strong>de</strong>l</strong>ado.<br />
2 No lo resolvió <strong>de</strong>ntro <strong><strong>de</strong>l</strong> tiempo especificado <strong>de</strong> 30 minutos.<br />
Tab<strong>la</strong> 6.4 Resultados <strong>de</strong> casos aleatorios resueltos por LINDO.<br />
Grupo<br />
Total<br />
Casos Analizados<br />
Casos Resueltos No Resueltos 1 No Resueltos 2 Casos No Analizados<br />
1 86 1 0 22 63<br />
2 8 2 0 0 6<br />
3 2 0 1 1 0<br />
4 55 0 9 0 41<br />
5 1087 11 6 13 1057<br />
6 132 28 0 3 101<br />
7 66 13 0 6 47<br />
8 12 3 0 0 9<br />
9 8 2 0 0 6<br />
10 3 3 0 0 0<br />
11 2 0 0 2 0<br />
12 3 0 0 3 0<br />
13 1 0 0 1 0<br />
14 4 0 1 0 3<br />
15 262 15 0 15 232<br />
16 692 0 8 22 662<br />
1 El equipo no soporto <strong>la</strong> estructura creada por el caso mo<strong><strong>de</strong>l</strong>ado.<br />
2 No lo resolvió <strong>de</strong>ntro <strong><strong>de</strong>l</strong> tiempo especificado <strong>de</strong> 30 minutos.<br />
83
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
Durante <strong>la</strong> experim<strong>en</strong>tación se observó, que el tamaño <strong>de</strong> los casos no siempre es un<br />
indicador <strong>de</strong> dificultad <strong><strong>de</strong>l</strong> problema, los tamaños <strong>de</strong> los casos <strong>de</strong> prueba osci<strong>la</strong>n <strong>de</strong>ntro <strong>de</strong><br />
1≤<br />
número <strong>de</strong> objetos ≤1000<br />
. También se concluye, que <strong>en</strong> situaciones don<strong>de</strong> los casos son<br />
muy gran<strong>de</strong>s (número <strong>de</strong> objetos es cercano a 1000), se pres<strong>en</strong>ta excesivo manejo <strong>de</strong> memoria<br />
RAM, no permiti<strong>en</strong>do <strong>en</strong>contrar <strong>la</strong> solución <strong>de</strong> los mismos.<br />
6.3 Experim<strong>en</strong>to 2: Desempeño <strong>de</strong> Algoritmos <strong>de</strong> Solución<br />
6.3.1 Hipótesis<br />
Dado un conjunto <strong>de</strong> algoritmos <strong>de</strong> solución <strong>de</strong> casos Bin-Packing, ningún algoritmo es <strong>la</strong><br />
mejor opción para todos los casos <strong>de</strong> una muestra repres<strong>en</strong>tativa.<br />
6.3.2 Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
El experim<strong>en</strong>to se efectuó <strong>en</strong> cuatro etapas:<br />
a) G<strong>en</strong>eración <strong>de</strong> una muestra repres<strong>en</strong>tativa <strong>de</strong> instancias [Cruz04]<br />
b) Solución <strong>de</strong> <strong>la</strong>s instancias <strong>de</strong> <strong>la</strong> muestra con todos los algoritmos disponibles (ver Cap. 3).<br />
c) Recopi<strong>la</strong>ción <strong>de</strong> resultados estadísticos <strong><strong>de</strong>l</strong> <strong>de</strong>sempeño.<br />
d) Para cada instancia <strong>de</strong>terminar <strong>la</strong> lista <strong>de</strong> algoritmos campeones aplicando métricas <strong>de</strong><br />
<strong>de</strong>sempeño (ver Cap. 4) . El procedimi<strong>en</strong>to <strong>de</strong> Evaluación <strong>de</strong> Algoritmos por <strong>de</strong>sempeño<br />
se <strong>de</strong>tal<strong>la</strong> <strong>en</strong> <strong>la</strong> sección 5.5.2.<br />
6.3.3 Análisis <strong>de</strong> Resultados<br />
Los casos se tomaron <strong>en</strong> el <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to inicial <strong>de</strong> <strong>la</strong> Arquitectura <strong>de</strong> Selección; se tomó<br />
una 1360 casos estándar y 2430 casos aleatorios. Resolviéndolos ambos con el conjunto <strong>de</strong><br />
algoritmos <strong>de</strong> solución disponibles. Y aplicando el procedimi<strong>en</strong>to <strong>de</strong> evaluación <strong>de</strong> <strong>de</strong>sempeño<br />
se visualiza <strong>en</strong> <strong>la</strong>s figuras 6.5 y 6.6 los algoritmos <strong>de</strong> solución que tuvieron regiones <strong>de</strong><br />
dominación <strong>en</strong> ambos tipos <strong>de</strong> casos. Don<strong>de</strong> el algoritmo ACO, manti<strong>en</strong>e fuerte dominación al<br />
resolver <strong>la</strong> mayoría <strong>de</strong> los casos estándar y aleatorios.<br />
84
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
Cantidad <strong>de</strong> Casos Aleatorios don<strong>de</strong> domina cada Algoritmo<br />
<strong>de</strong> Solución<br />
2000<br />
Casos Aleatorios<br />
1500<br />
1000<br />
500<br />
0<br />
1 2 3 4 5 6 7 8<br />
Serie1 312 319 354 290 355 319 1777 19<br />
Algoritmos <strong>de</strong> Solución<br />
Figura 6.5 Región <strong>de</strong> D<strong>en</strong>ominación Algoritmos –Casos Aleatorios<br />
Cantidad <strong>de</strong> Casos Estándar don<strong>de</strong> domina cada Algoritmo<br />
<strong>de</strong> Solución<br />
Casos Estándar<br />
1400<br />
1200<br />
1000<br />
800<br />
600<br />
400<br />
200<br />
0<br />
1 2 3 4 5 6 7 8<br />
Serie1 58 60 61 30 61 62 1259 24<br />
Algoritmos <strong>de</strong> Solución<br />
Figura 6.6 Región <strong>de</strong> D<strong>en</strong>ominación Algoritmos –Casos Estándar<br />
85
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
En <strong>la</strong> implem<strong>en</strong>tación <strong>de</strong> este procedimi<strong>en</strong>to se usó una métrica <strong>de</strong> <strong>de</strong>sempeño que consi<strong>de</strong>ra<br />
<strong>la</strong> calidad <strong>de</strong> <strong>la</strong> solución, el tiempo <strong>de</strong> procesami<strong>en</strong>to y <strong>la</strong> precisión numérica. Como resultado<br />
<strong>de</strong> los experim<strong>en</strong>tos, se <strong>en</strong>contró que <strong>en</strong> el 77% <strong>de</strong> los casos ACO (Ant colony Optimization)<br />
es <strong>la</strong> mejor opción, TA (Threshold Accepting) resuelve mejor el 4%, TS (Tabu search) el 1% y<br />
los algoritmos <strong>de</strong>terministas el 18%; para los casos estándar, figura 6.7.<br />
1. FFD<br />
2. BDF<br />
3. MBF<br />
4. MBFD<br />
5. MFF<br />
6. AU<br />
7. ACO<br />
8. BT<br />
Algoritmo <strong>de</strong> Solución: Mejor Opción, con los casos estándar<br />
8<br />
1%<br />
1<br />
4%<br />
2<br />
4% 3<br />
4% 4<br />
2% 5<br />
4% 6<br />
4%<br />
7<br />
77%<br />
Figura 6.7 Porc<strong>en</strong>tajes <strong>de</strong> dominación <strong>de</strong> los algoritmos <strong>de</strong> solución –casos estándar<br />
Como resultado <strong>de</strong> los experim<strong>en</strong>tos, se <strong>en</strong>contró que <strong>en</strong> el 47% <strong>de</strong> los casos ACO (Ant<br />
colony Optimization) es <strong>la</strong> mejor opción, AU (Threshold Accepting) resuelve mejor el 9%, BT<br />
(Tabu search) el 1% y los algoritmos <strong>de</strong>terministas el 43%; para los casos aleatorios, figura<br />
6.8.<br />
Algoritmo <strong>de</strong> Solución: Mejor Opción, con los casos<br />
aleatorios<br />
7<br />
47%<br />
8<br />
1%<br />
1<br />
8%<br />
2<br />
9%<br />
3<br />
9%<br />
6<br />
9%<br />
5<br />
9%<br />
4<br />
8%<br />
Figura 6.7 Porc<strong>en</strong>tajes <strong>de</strong> dominación <strong>de</strong> los algoritmos <strong>de</strong> solución –casos aleatorios<br />
86
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
6.4 Experim<strong>en</strong>to 3: Análisis <strong>de</strong> Superficie<br />
6.4.1 Hipótesis<br />
Dado un conjunto <strong>de</strong> algoritmos heurísticos <strong>de</strong> solución, el uso <strong>de</strong> métricas <strong>de</strong> superficie<br />
permite i<strong>de</strong>ntificar <strong>la</strong> dificultad <strong>de</strong> <strong>la</strong> búsqueda <strong>de</strong> soluciones óptimas para un problema <strong>de</strong><br />
optimización combinatoria.<br />
6.4.2 Procedimi<strong>en</strong>to G<strong>en</strong>eral<br />
El experim<strong>en</strong>to se efectuó <strong>en</strong> cuatro etapas:<br />
1. G<strong>en</strong>eración <strong>de</strong> una muestra <strong>de</strong> casos aleatorios y estándar utilizando el procedimi<strong>en</strong>to<br />
<strong>de</strong>scrito <strong>en</strong> el experim<strong>en</strong>to 6.2.<br />
2. Solución <strong>de</strong> casos aplicando el conjunto <strong>de</strong> algoritmos no-<strong>de</strong>terministas que mostraron<br />
región <strong>de</strong> dominación (ver capítulo 3 y experim<strong>en</strong>to 6.2). Durante el proceso <strong>de</strong> solución<br />
se registran los movimi<strong>en</strong>tos (soluciones y distancias al óptimo) realizados por cada<br />
algoritmo.<br />
3. Cuantificación <strong>de</strong> <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> <strong>la</strong> superficie g<strong>en</strong>erada por los algoritmos <strong>de</strong> solución<br />
aplicados a los casos <strong>de</strong> <strong>la</strong> muestra. Las métricas <strong>de</strong> superficie que mi<strong>de</strong>n dichas<br />
propieda<strong>de</strong>s se <strong>de</strong>scrib<strong>en</strong> <strong>en</strong> el capítulo 4.<br />
4. Aplicación <strong>de</strong> técnicas estadísticas (medidas <strong>de</strong> t<strong>en</strong><strong>de</strong>ncia c<strong>en</strong>tral, análisis <strong>de</strong> factores,<br />
agrupación k-mean) para el análisis final <strong>de</strong> resultados. Las técnicas estadísticas utilizadas<br />
están ampliam<strong>en</strong>te docum<strong>en</strong>tados <strong>en</strong> [Santiago 04, Cruz 04, Lan<strong>de</strong>ro04].<br />
6.4.3 Análisis <strong>de</strong> Resultados<br />
De acuerdo con los resultados pres<strong>en</strong>tados <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 6.5, se aprueba <strong>la</strong> hipótesis. En los casos<br />
<strong>en</strong> los que el <strong>de</strong>sempeño real <strong>de</strong> BT es superior al <strong>de</strong> AU, <strong>en</strong> un 30% <strong>de</strong> éstos los métricas<br />
i<strong>de</strong>ntificaron que <strong>la</strong> superficie <strong>de</strong> BT es más difícil que <strong>la</strong> <strong>de</strong> AU. Por el contrario, cuando AU<br />
es superior a BT, se acertó <strong>en</strong> el 70% <strong>de</strong> los casos.<br />
87
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
Tab<strong>la</strong> 6.5 Resultados <strong>de</strong> casos estándar aplicando métricas <strong>de</strong> superficie<br />
ANÁLISIS DONDE EL ALGORITMO DOMINANTE FUE BÚSQUEDA TABÚ (8)<br />
Y EL ALGORTIMO NO DEMINANTE ES ACEPTACIÓN POR UMBRAL (6)<br />
s<br />
k_<br />
e<br />
k_<br />
i<br />
s ( 1)<br />
ρ λ γ<br />
2<br />
γ<br />
N1c1w2_j<br />
….<br />
N1c1w4_n<br />
….<br />
N1c2w1_l<br />
8 0.933334 0.322791 0.167967 1.207491 -0.009272 0.000568 10%<br />
6 0 0.421188 0.757764 4.36891 -0.245765 0.090313<br />
8 0 0.286809 0.06541 1.0724 -0.000522 0.000425 30%<br />
6 0 0.316035 0.759378 4.209312 -0.099102 0.010227<br />
8 0.799999 0.305964 0.464133 1.919506 -0.007212 0.001618 30%<br />
6 0.25 0.323262 0.877446 8.28639 0.038334 0.058413<br />
0% 4% 5% 50% 9% 3%<br />
Los resultados anteriores muestran <strong>la</strong> necesidad <strong>de</strong> iniciar un estudio a profundidad para<br />
<strong>en</strong>contrar nuevas métricas que permitan cuantificar propieda<strong>de</strong>s que aún son <strong>de</strong>sconocidas, y<br />
establecer re<strong>la</strong>ciones <strong>en</strong>tre el<strong>la</strong>s. Las re<strong>la</strong>ciones podrían hacer posible <strong>la</strong> i<strong>de</strong>ntificación <strong>de</strong><br />
patrones <strong>de</strong> superficie que permitan asociar algoritmos a c<strong>la</strong>ses <strong>de</strong> problemas.<br />
Figura 6.9 Análisis <strong>de</strong> factores métricas superficie-casos estandar-algoritmo Aceptación por Umbral<br />
88
Capítulo 6<br />
Resultados Experim<strong>en</strong>tales<br />
Figura 6.10 Análisis <strong>de</strong> factores métricas superficie-casos estándar-algoritmo Búsqueda Tabú<br />
En <strong>la</strong>s figuras 6.8 y 6.9, se muestra cómo el análisis <strong>de</strong> factores divi<strong>de</strong> el espacio <strong>de</strong><br />
corre<strong>la</strong>ción <strong>en</strong>tre variables. En este espacio se ubican los resultados <strong>de</strong> <strong>la</strong> corre<strong>la</strong>ción <strong>en</strong>tre<br />
métricas <strong>de</strong> superficie. Se pue<strong>de</strong> apreciar que se forman grupos <strong>de</strong> métricas, lo que hace<br />
suponer que <strong>la</strong>s métricas <strong>de</strong> un grupo son redundantes <strong>en</strong>tre sí, por lo que posiblem<strong>en</strong>te midan<br />
<strong>la</strong> misma propiedad.<br />
89
Capítulo 7<br />
Conclusiones y Trabajos Futuros<br />
7<br />
Conclusiones y<br />
Trabajos Futuros<br />
En este capítulo se pres<strong>en</strong>tan <strong>la</strong>s conclusiones , y se sugier<strong>en</strong> directrices para trabajos futuros.<br />
7.1 Conclusiones<br />
En esta investigación, se propone una Arquitectura <strong>de</strong> Solución y Evaluación que permite<br />
analizar por medio <strong>de</strong> métricas estadísticas el comportami<strong>en</strong>to <strong>de</strong> algoritmos <strong>de</strong> solución<br />
aplicados a un problema <strong>de</strong> optimización combinatoria. Posibilita <strong>la</strong> selección <strong>de</strong> <strong>la</strong> mejor<br />
opción <strong>de</strong> algoritmo para un caso dado.<br />
Las principales contribuciones son <strong>la</strong>s sigui<strong>en</strong>tes:<br />
Se <strong>de</strong>sarrol<strong>la</strong>ron cuatro expresiones matemáticas que permit<strong>en</strong> mo<strong><strong>de</strong>l</strong>ar el comportami<strong>en</strong>to <strong>de</strong><br />
algoritmos <strong>de</strong> solución, lo cual posibilita que para cada algoritmo se <strong>de</strong>termine un<br />
agrupami<strong>en</strong>to <strong>de</strong> los casos que ha resuelto mejor. Tres <strong>de</strong> estas expresiones <strong>de</strong>scrib<strong>en</strong> <strong>la</strong><br />
90
Capítulo 7<br />
Conclusiones y Trabajos Futuros<br />
superficie <strong>de</strong> búsqueda y <strong>la</strong> cuarta el <strong>de</strong>sempeño algorítmico. Las métricas <strong>de</strong>sarrol<strong>la</strong>das y<br />
otras tres métricas adquiridas <strong>de</strong> <strong>la</strong> literatura se <strong>de</strong>scrib<strong>en</strong> <strong>en</strong> el Capítulo 4.<br />
Se aporta una Arquitectura <strong>de</strong> Solución y Evaluación <strong>de</strong> algoritmos, <strong>la</strong> cual consta <strong>de</strong> dos<br />
módulos principales: Solución <strong>de</strong> casos y Evaluación <strong>de</strong> algoritmos. El módulo dos a su vez<br />
se divi<strong>de</strong> <strong>en</strong> submódulos que son: Análisis <strong>de</strong> <strong>de</strong>sempeño y Análisis <strong>de</strong> superficie. Dicha<br />
arquitectura se implem<strong>en</strong>tó computacionalm<strong>en</strong>te, y se incorporó a una Arquitectura <strong>de</strong><br />
Selección <strong>de</strong> algoritmos. En el submódulo Análisis <strong>de</strong> Desempeño se evalúa el <strong>de</strong>sempeño <strong>de</strong><br />
algoritmos y <strong>de</strong>termina para un caso dado el mejor algoritmo (campeón).<br />
Se <strong>de</strong>sarrol<strong>la</strong>ron ocho algoritmos <strong>de</strong> solución <strong><strong>de</strong>l</strong> problema <strong>de</strong> distribución <strong>de</strong> objetos <strong>en</strong><br />
cont<strong>en</strong>edores, el cual es un caso particu<strong>la</strong>r <strong><strong>de</strong>l</strong> problema <strong>de</strong> distribución <strong>de</strong> bases <strong>de</strong> datos. Los<br />
algoritmos <strong>de</strong>sarrol<strong>la</strong>dos se <strong>de</strong>scrib<strong>en</strong> <strong>en</strong> el Capítulo 3.<br />
Para validar <strong>la</strong> calidad <strong>de</strong> <strong>la</strong> predicción <strong><strong>de</strong>l</strong> sistema <strong>de</strong> selección, que se soportó <strong>en</strong> <strong>la</strong><br />
arquitectura <strong>de</strong> solución y evaluación propuesta, se adquirieron 1,369 casos estándar <strong>de</strong> los<br />
dos sitios <strong>de</strong> Internet más reconocidos por <strong>la</strong> comunidad <strong>de</strong> investigadores <strong><strong>de</strong>l</strong> área: <strong>la</strong><br />
biblioteca <strong>de</strong> Investigación <strong>de</strong> Operaciones <strong>de</strong> Beasley y <strong>la</strong> biblioteca <strong>de</strong> Investigación <strong>de</strong><br />
Operaciones <strong>de</strong> La Universidad Tecnológica <strong>de</strong> Darmstadt. Estos casos fueron resueltos con<br />
los ocho algoritmos disponibles.<br />
El sistema <strong>de</strong> selección se validó sistemáticam<strong>en</strong>te mediante un conjunto <strong>de</strong> casos <strong>de</strong> prueba.<br />
Como resultado <strong>de</strong> <strong>la</strong>s pruebas se <strong>en</strong>contró que <strong>en</strong> el 77% <strong>de</strong> los casos se eligió el algoritmo<br />
correcto y <strong>en</strong> promedio los algoritmos seleccionados dieron resultados que sólo diferían <strong><strong>de</strong>l</strong><br />
valor óptimo teórico <strong>en</strong> un 3.8%. Para contrastar lo anterior, para los mismos casos se<br />
seleccionaron al azar los algoritmos y se <strong>en</strong>contró que el mejor algoritmo se eligió un 33% <strong>de</strong><br />
<strong>la</strong>s veces, y <strong>la</strong> <strong>de</strong>sviación <strong><strong>de</strong>l</strong> óptimo teórico fue <strong><strong>de</strong>l</strong> 41.1%. Detalles adicionales sobre los<br />
resultados se muestran <strong>en</strong> [Cruz04, Santiago04]<br />
91
Capítulo 7<br />
Conclusiones y Trabajos Futuros<br />
7.2 Trabajos Futuros<br />
Para dar continuidad a este trabajo <strong>de</strong> investigación se sugiere el <strong>de</strong>sarrollo <strong>de</strong> dos módulos,<br />
uno que permita validar <strong>la</strong> consist<strong>en</strong>cia <strong>de</strong> patrones y otro el rediseño <strong>de</strong> algoritmos <strong>de</strong><br />
solución. A continuación se <strong>de</strong>scrib<strong>en</strong> los trabajos propuestos:<br />
Módulo <strong>de</strong> Validación <strong>de</strong> <strong>la</strong> Consist<strong>en</strong>cia <strong>de</strong> Patrones<br />
La Arquitectura <strong>de</strong> Solución y Evaluación <strong>de</strong> Algoritmos, proporciona dos conjuntos <strong>de</strong><br />
indicadores: <strong>de</strong>sempeño y superficie. Sería <strong>de</strong> interés abrir una línea <strong>de</strong> investigación que<br />
integre dichos indicadores <strong>en</strong> <strong>la</strong> validación <strong>de</strong> patrones y permitiese obt<strong>en</strong>er <strong>en</strong> un futuro<br />
mejor caracterización <strong>de</strong> regiones <strong>de</strong> dominación <strong>de</strong> algoritmos superando <strong>la</strong>s expectativas<br />
exist<strong>en</strong>tes <strong>en</strong> <strong>la</strong> actual Arquitectura <strong>de</strong> Selección.<br />
Módulo <strong>de</strong> Rediseño <strong>de</strong> Algoritmos<br />
Se propone <strong>la</strong> utilización <strong><strong>de</strong>l</strong> conjunto <strong>de</strong> indicadores <strong>de</strong> superficie para el <strong>de</strong>sarrollo <strong><strong>de</strong>l</strong><br />
módulo rediseño <strong>de</strong> algoritmos que permita mejorar cada algoritmo <strong>de</strong> solución disponible, y<br />
obt<strong>en</strong>er un mejor <strong>de</strong>sempeño <strong>en</strong> cuestión <strong>de</strong> calidad <strong>de</strong> solución como tiempo <strong>de</strong><br />
procesami<strong>en</strong>to.<br />
La metodología <strong>de</strong> selección <strong>de</strong> algoritmos propuesta <strong>en</strong> [Cruz04] don<strong>de</strong> participó esta tesis se<br />
aplicó a <strong>la</strong> solución <strong><strong>de</strong>l</strong> problema clásico Bin-packing. Sería <strong>de</strong> interés validar <strong>la</strong> aplicabilidad<br />
<strong>de</strong> <strong>la</strong>s metodologías <strong>de</strong>sarrol<strong>la</strong>das como propuestas a otros problemas complejos. A<strong>de</strong>más<br />
posee características básicas <strong>de</strong> intelig<strong>en</strong>cia que están soportadas por el módulo propuesto;<br />
estas características podrían ser ext<strong>en</strong>didas incorporando retroalim<strong>en</strong>tación <strong><strong>de</strong>l</strong> análisis <strong>de</strong><br />
algoritmos.<br />
92
REFERENCIAS Y BIBLIOGRAFÍA<br />
[Alonso00] Alonso, S., Cordón, O., Herrera, F.: La Metaheuristica <strong>de</strong><br />
Optimización basada <strong>en</strong> colonias hormigas: mo<strong><strong>de</strong>l</strong>os y nuevos<br />
<strong>en</strong>foques. Departam<strong>en</strong>to <strong>de</strong> Ci<strong>en</strong>cias <strong>de</strong> <strong>la</strong> Computación, Granada,<br />
España (2000)<br />
[An<strong>de</strong>rson03] An<strong>de</strong>rson, R.J.: The Role of Experim<strong>en</strong>t in The Theory of Algorithms.<br />
In: Goldwasser, M.H., Johnson, D.S., McGeoch, C. (eds.): Data<br />
Structures, Near Neighbor Searches, and Methodology: Fifth and<br />
Sixth DIMACS Implem<strong>en</strong>tation Chall<strong>en</strong>ges, Series DIMACS, Vol. 5<br />
(2003) 191-196<br />
[Angel98] Angel, E., Zissimopoulos, V.: AutoCorre<strong>la</strong>tion Coeffici<strong>en</strong>t for the<br />
Graph bipartitioning problem. Laboratory Recherche <strong>en</strong> Informatique,<br />
C<strong>en</strong>tre d´Orsay, Université <strong>de</strong> Paris Sud, Orsay, Ce<strong>de</strong>s, France (1998)<br />
[Avélez97] Vélez, A.: Ubicación Optima <strong>de</strong> Datos <strong>en</strong> Aplicaciones <strong>de</strong> BDDs.<br />
Tesis <strong>de</strong> MC. CENIDET, Cuernavaca, Mor. (1997)<br />
[Baase98] Basse, S.: Computer Algorithms, Introduction to Design and Analysis.<br />
Editorial Addison-Wesley Publishing Company (1998)<br />
[Barba00] Barba, B.E.G.: Análisis Comparativo <strong>de</strong> <strong>la</strong>s Técnicas <strong>de</strong> Recocido<br />
Simu<strong>la</strong>do Vs. Aceptación por Umbral Aplicadas a <strong>la</strong> Solución <strong><strong>de</strong>l</strong><br />
Mo<strong><strong>de</strong>l</strong>o FURD. Tesis <strong>de</strong> MC. ITESM, Campus Morelos (2000)<br />
[Borghetti96] Borghetti, B.J.: Infer<strong>en</strong>ce Algorithm Performance and Selection un<strong>de</strong>r<br />
Constrained Resources. MS Thesis. AFIT/GCS/ENG/96D-05 (1996)<br />
[Borie98] Borie, R., German, B.<br />
http://cs.au.edu/reu/1998_stuff<br />
[Barr95]<br />
Barr, R., Gol<strong>de</strong>n, Bruce., Kelly, James., Res<strong>en</strong><strong>de</strong>, Mauricio., Stewart,<br />
William.: Designing and Reporting on Computational Experim<strong>en</strong>ts<br />
with Heuristic Methods. (1995)<br />
93
[Bradwell] Bradwell, R., Ford, J., Mills, P., Tsang, E., Williams, R.: An Overview<br />
of the CACP Proyect: Mo<strong><strong>de</strong>l</strong>ling And Solving Constraint<br />
Satisfaction/Optimisation Problems with Minimal Expert Interv<strong>en</strong>tion.<br />
Departam<strong>en</strong>t of Computer Sci<strong>en</strong>cie, University of Essex. Colchester<br />
CO4 3SQ UK.<br />
[Coffman97] Coffman, J.E., Garey, M.R., Jonson, D.S.: Approximation Algorithms<br />
for Bin-Packing, a Survey In: Approximation Algorithms for NP-hard<br />
Problems. PWS, Boston (1997) 46-93<br />
[Coffman98] Coffman, J.E., Ga<strong>la</strong>mbos, G., Martello, S., Vigo, D.: Bin Packing<br />
Approximation Algorithms: Combinatorial Analysis. In: Du, D.-Z,<br />
Pardalos, P.M. (eds.): Handbook of Combinatorial Optimization.<br />
Kluwer Aca<strong>de</strong>mic Publishers. Boston, MA (1998)<br />
[Coffman02] Coffman, J.E., Courboubetis, C., Garey, M.R., Johnson, D.S., Shor,<br />
P.W., Weber, R.R.: Perfect Packing Theorems and the Average Case<br />
Behavior of Optimal and Online Bin Packing. SIAM Review Vol. 44<br />
(2002) 95-108<br />
[Library_DOR] Friedrich, K.: Bin Packing. Universität J<strong>en</strong>a.<br />
http://www.bwl.tudarmstadt.<strong>de</strong>/bwl3/forsch/projekte/binpp. (2002)<br />
[Cogarch5] Laird,J., Morton, M., Vidal, J., Ford, M., Chong, R<br />
http://ai.eecs.umich.edu/cogarch1 (1994)<br />
[Cogarch1] Laird,J., Arreo<strong>la</strong>, J., Larson, K., Mast M., Richardson D.<br />
http://ai.eecs.umich.edu/cogarch1 (1994)<br />
[Colunga01] Colunga, A., Muñoz, L., Ramírez, M.: “Ag<strong>en</strong>te Intelig<strong>en</strong>te <strong>de</strong><br />
Apr<strong>en</strong>dizaje Reforzado Aplicado al Diseño <strong>de</strong> Bases <strong>de</strong> Datos<br />
Distribuidas”. Tesis <strong>de</strong> lic<strong>en</strong>ciatura. ITCM(2001)<br />
[Cruz99]<br />
Cruz, L.: Automatización <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> <strong>la</strong> Fragm<strong>en</strong>tación Vertical y<br />
Ubicación <strong>en</strong> Bases <strong>de</strong> Datos Distribuidas Usando Métodos<br />
Heurísticos. Tesis <strong>de</strong> MC. ITESM (1999)<br />
[Cruz00]<br />
Pérez, J., Pazos, R., Frausto, J., Romero, D., Cruz, L.: Vertical<br />
94
[Cruz04a]<br />
[Cruz04b]<br />
[Dorigo99]<br />
[Ducatelle01]<br />
[Eug<strong>en</strong>e93]<br />
[F<strong>la</strong>k<strong>en</strong>auer92]<br />
[Gal<strong>la</strong>gher01]<br />
[Garey79]<br />
[Gleason95]<br />
[Glover86]<br />
[González01]<br />
Fragm<strong>en</strong>tation and Allocation in Distributed Databases with Site<br />
Capacity Restrictions Using the Threshold Accepting Algorithm.<br />
MICAI 2000 (2000) 75-81<br />
Pérez, J., Pazos, R., Frausto, J., Cruz, L., Fraire, H., Santiago, E.,<br />
García, N.: A Machine Learning Approach for Mo<strong><strong>de</strong>l</strong>ing Algorithm<br />
Performance Predictors. MDAI 2004 (2004) 70-80<br />
Cruz, L.: C<strong>la</strong>sificación <strong>de</strong> Algoritmos Heurísticos para <strong>la</strong> Solución <strong>de</strong><br />
Problemas <strong>de</strong> Bin-Packing. Tesis <strong>de</strong> Doctorado. CENIDET. (2004)<br />
Dorigo, M., Di Caro, G.: Ant Colony Optimization: A New Meta<br />
Heuristic. Université Libre <strong>de</strong> Bruxelles. (1999)<br />
Ducatelle, F., Levine, J.: Ant Colony Optimization for Bin Packing<br />
and Cutting Stock Problems. Proceedings of the UK Workshop on<br />
Computational Intellig<strong>en</strong>ce. Edinburgh (2001)<br />
Santos, E.J.: Computing with Bayesian Multi-Networks. Technical<br />
Report Departm<strong>en</strong>t of Electrical and computer Engineering. Air Force<br />
Institute of Technology (1993)<br />
F<strong>la</strong>k<strong>en</strong>auer, E., Delchambre, A.: A G<strong>en</strong>etic Algorithm for Bin Packing<br />
and Line Ba<strong>la</strong>ncing. CRIF- Research C<strong>en</strong>tre for Belgian Metalworking<br />
Industry, Brussels, Belgium (1992)<br />
Gal<strong>la</strong>gher, M.: Fitness Distance Corre<strong>la</strong>tion of Neural Network Error<br />
Surfaces: A Sca<strong>la</strong>ble, Continuous Optimization Problem. University of<br />
Que<strong>en</strong>s<strong>la</strong>nd, Australia (2001)<br />
Garey, M.R., Johnson, D.S.: Computer and intractability: aGui<strong>de</strong> to the<br />
Theory of NP-Complet<strong>en</strong>ess. WH Freeman, New York (1979)<br />
Gleason, H.T.: “Probabilistic knowledge base validation”: Thesis.<br />
School of Engineering of the Air Force Institute of Technology. Air<br />
University (1995)<br />
Glover, F., Laguna, M.: Tabu Search. Kluwer Aca<strong>de</strong>mic Publishers<br />
(1986)<br />
González, J., Fraire, H., Mor<strong>en</strong>o, A., Muñoz, L., Ramírez, M.: Ag<strong>en</strong>te<br />
95
[Hbaéz02]<br />
[Hernán<strong>de</strong>z00]<br />
[Hoos98]<br />
[Je<strong>la</strong>sity01]<br />
[Jones95]<br />
[Jpecero02]<br />
[Kallet97]<br />
[Kingdon95]<br />
[Lan<strong>de</strong>ro04]<br />
[Landgley02]<br />
Intelig<strong>en</strong>te <strong>de</strong> Apr<strong>en</strong>dizaje Reforzado Aplicado al Diseño <strong>de</strong> Base <strong>de</strong><br />
Datos Distribuidas. Instituto Tecnológico <strong>de</strong> Cd. Ma<strong>de</strong>ro. CIECE<br />
(2001)<br />
Hernán<strong>de</strong>z, I.: Evaluación <strong><strong>de</strong>l</strong> Desempeño <strong>de</strong> Algoritmos <strong>de</strong> Retroceso<br />
Aplicados a <strong>la</strong> Solución <strong><strong>de</strong>l</strong> Mo<strong><strong>de</strong>l</strong>o FURD, ITCM (2002)<br />
Hernán<strong>de</strong>z, I., López, R., Nieto, A.: Automatización <strong>de</strong> <strong>la</strong> Evaluación<br />
<strong>de</strong> Algoritmos G<strong>en</strong>éticos. Tesis <strong>de</strong> lic<strong>en</strong>ciatura. ITCM(2000)<br />
Hoos, H.H.: Stochastic Local Search -Methods, Mo<strong><strong>de</strong>l</strong>s, Applications.<br />
PhD Thesis, Departm<strong>en</strong>t of Computer Sci<strong>en</strong>ce from Darmstadt<br />
University of Technology. Germany (1998)<br />
Je<strong>la</strong>sity, M.: Characterizations of Trajectory Structure of Fitness<br />
Landscapes Based on Pairwise Transition Probabilities of Solutions.<br />
Research Group of Artificial Intellig<strong>en</strong>ce, Hungary. (1999)<br />
Jones, T.: Evolutionary Algorithms, Fitness Landscapes and Search.<br />
The University of New Mexico, Albuquerque, New Mexico. (1995)<br />
Pecero, J.: Un método estadístico que permita caracterizar y comparar<br />
el <strong>de</strong>sempeño <strong>de</strong> algoritmos heurísticos, y mediante el cual sea posible<br />
estimar el mejor algoritmo para solucionar casos específicos <strong><strong>de</strong>l</strong><br />
problema <strong><strong>de</strong>l</strong> diseño <strong>de</strong> <strong>la</strong> distribución. Tesis <strong>de</strong> Lic<strong>en</strong>ciatura. ITCM<br />
(2002).<br />
Kallet, L., Scho<strong>en</strong>aer, M.: Fitness Distance Corre<strong>la</strong>tion for Variable<br />
L<strong>en</strong>gth Repres<strong>en</strong>tations. École Polytechnique, Pa<strong>la</strong>iseau Ce<strong>de</strong>x,<br />
France. (1997)<br />
Kingdon, J., Dekker; L.: The shape of space. University College<br />
London, UK. (1995)<br />
Lan<strong>de</strong>ro, V.: Análisis <strong>de</strong> <strong>la</strong>s regiones <strong>de</strong> dominación <strong>de</strong> los algoritmos<br />
heuristicos aplicados al Problema <strong>de</strong> Distribución <strong>de</strong> Base <strong>de</strong> Datos.<br />
Tesis Maestría. México, ITCM (2004)<br />
Langley, P.: Cognitive Architectures: Research Issues and Chall<strong>en</strong>ges.<br />
Stanford University, Stanford, CA. (2002)<br />
96
[Laur<strong>en</strong>ce01] Laur<strong>en</strong>ce, C.: Evaluación <strong><strong>de</strong>l</strong> Mo<strong><strong>de</strong>l</strong>o FURD usando Tabú Search.<br />
Reporte Técnico <strong>de</strong> Resi<strong>de</strong>ncias asesorado por Laur<strong>en</strong>ce Santillán,<br />
Carm<strong>en</strong>. ITCM(2001)<br />
[Library_BOR] Beasley, J. E.: OR-Library. Brunel University.<br />
http://www.ms.ic.ac.uk/info.html. (2003)<br />
[Library_DOR] Friedrich, K.: Bin Packing. Universität J<strong>en</strong>a.<br />
http://www.bwl.tudarmstadt.<strong>de</strong>/bwl3/forsch/projekte/binpp. (2002)<br />
[Lodi02]<br />
Lodi, A., Martello, S., Vigo, D.: Rec<strong>en</strong>t Advances on Twodim<strong>en</strong>sional<br />
Bin Packing Problems. Discrete Applied Mathematics,<br />
Vol. 123, No. 1-3. Elsevier Sci<strong>en</strong>ce B.V., Amsterdan (2002) 379-396<br />
[Lvélez00] Vélez L.: Esquema <strong>de</strong> Enfriami<strong>en</strong>to Adaptivo para el Algoritmo <strong>de</strong><br />
Aceptación por Umbral Aplicado al Diseño <strong>de</strong> Bases <strong>de</strong> Datos<br />
Distribuidas. Tesis <strong>de</strong> MC. Instituto Tecnológico <strong>de</strong> León, León,<br />
Noviembre (2000)<br />
[McGeoch02] McGeoch, C.C.: Experim<strong>en</strong>tal Analysis of Algorithms. In: Pardalos,<br />
P.M., Romeijn, H.E. (eds.): Handbook of Global Optimization, Vol. 2<br />
(2002) 489-513<br />
[Merz00]<br />
Merz, P.: Memetic Algorithms for Combinatorial Optimization<br />
Problems; Fitness <strong>la</strong>ndscapes and effective search strategies.<br />
Universita Sieg<strong>en</strong> (2000)<br />
[Merz99]<br />
Merz, P., Freisleb<strong>en</strong>, B.: Fitness Landscapes and Memetic Algortihm<br />
Design. University of Sieg<strong>en</strong>, Germany (1999)<br />
[Newell90] Newell, A. Unified Theories of Cognition . Harvard. (1990)<br />
[P<strong>la</strong>za93] P<strong>la</strong>za, E., Aamodt, A., Ram, A., Van <strong>de</strong> Vel<strong>de</strong>, W., Van Somer<strong>en</strong>, M.:<br />
Itegrated Learning Architectures. ECML. Euripean Confer<strong>en</strong>ce on<br />
Machine Learning. (1993)<br />
[Pérez98] Pérez J., Romero, D., Fausto, J., Pazos, R., Rodríguez, G., Reyes, F.:<br />
Dynamic Allocation of Vertical Fragm<strong>en</strong>ts in Distributed Database<br />
Using the Threshold Accepting Algorithm. Proceeding of the 10th<br />
IASTED International Confer<strong>en</strong>ce on Parallel and Distributed<br />
97
[Pérez99]<br />
[Pérez00a]<br />
[Pérez00b]<br />
[Pérez03a]<br />
[Pérez03b]<br />
[Pérez 2003c]<br />
[Pérez 2003d]<br />
Computing and System. Las Vegas (1998) 210- 213<br />
Pérez, J.: Integración <strong>de</strong> <strong>la</strong> Fragm<strong>en</strong>tación Vertical y Ubicación <strong>en</strong> el<br />
Diseño Adaptativo <strong>de</strong> Bases <strong>de</strong> Datos Distribuidas, Tesis Doctoral.<br />
ITESM Campus Morelos (1999)<br />
Pérez, J., Pazos, R.A., Romero, D., Cruz, L.: Análisis <strong>de</strong> Complejidad<br />
<strong><strong>de</strong>l</strong> Problema <strong>de</strong> <strong>la</strong> Fragm<strong>en</strong>tación Vertical y Reubicación Dinámica<br />
<strong>en</strong> Bases <strong>de</strong> Datos Distribuidas. Memorias <strong><strong>de</strong>l</strong> 7mo. Congreso<br />
Internacional <strong>de</strong> Investigación <strong>en</strong> Ci<strong>en</strong>cias Computacionales. México<br />
(2000) 63-70<br />
Pérez, J., Pazos, R.A., Frausto, J., Romero, D., Cruz, L.: Vertical<br />
Fragm<strong>en</strong>tation and Allocation in Distributed Databases with Site<br />
Capacity Restrictions Using the Threshold Accepting Algorithm.<br />
Lectures Notes in Computer Sci<strong>en</strong>ce, Vol. 1793. Springer-Ver<strong>la</strong>g,<br />
Berlin Hei<strong><strong>de</strong>l</strong>berg New York (2000) 75-81<br />
Pérez, J., Pazos, R.A., Cruz, L., Santiago, E., Fraire, H., Guerrero,<br />
V.H.: Análisis y Diseño <strong>de</strong> un Mo<strong><strong>de</strong>l</strong>o <strong>de</strong> Ubicación, Migración y<br />
Replicación <strong>de</strong> objetos <strong>de</strong> Datos <strong>en</strong> Web. Memoria <strong><strong>de</strong>l</strong> 4to.<br />
Simposium Intertecnológico <strong>de</strong> Computación e Informática. Oaxtepec,<br />
Morelos (2003)<br />
Perez, J., Pazos, R.A., Fraire, H., Cruz, L., Pecero, J.: Adaptive<br />
Allocation of Data-Objects in the Web Using Neural Networks.<br />
Lectures Notes in Computer Sci<strong>en</strong>ce, Vol. 2829. Springer-Ver<strong>la</strong>g,<br />
Berlin Hei<strong><strong>de</strong>l</strong>berg New York (2003) 154-164<br />
Pérez, J., Pazos, R.A., Rodríguez, G., Frausto, J., Cruz, L., Fraire, H.:<br />
Replication and Allocation Managem<strong>en</strong>t of Data-Objects in Network<br />
Environm<strong>en</strong>ts. Proceeding of the IASTED International Confer<strong>en</strong>ce<br />
on Computer Sci<strong>en</strong>ce and Technology. Cancún, México (2003) 388-<br />
392<br />
Perez, J., Pazos, R.A., Fraire, H., Cruz, L., Pecero, J.: Adaptive<br />
Allocation of Data-Objects in the Web Using Neural Networks.<br />
98
Lectures Notes in Computer Sci<strong>en</strong>ce, Vol. 2829. Springer-Ver<strong>la</strong>g,<br />
Berlin Hei<strong><strong>de</strong>l</strong>berg New York (2003) 154-164<br />
[Pérez04a] Pérez, J., Pazos, R.A., Frausto, J., Rodríguez, G., Cruz, L., Mora, G.,<br />
Fraire, H.: Self-Tuning Mechanism for G<strong>en</strong>etic Algorithms<br />
Parameters, an Application to Data-Object Allocation in the web.<br />
Lectures Notes in Computer Sci<strong>en</strong>ce, Vol. 3046. Springer Ver<strong>la</strong>g,<br />
Berlin Hei<strong><strong>de</strong>l</strong>berg New York (2004) 77-86<br />
[Pérez04b] Pérez, J., Pazos, R.A., Frausto, J., Rodríguez, G., Cruz, L., Fraire, H.:<br />
Comparison and Selection of Exact and Heuristic Algorithms.<br />
Lectures Notes in Computer Sci<strong>en</strong>ce, Vol. 3045. Springer Ver<strong>la</strong>g,<br />
Berlin Hei<strong><strong>de</strong>l</strong>berg New York (2004) 415-424<br />
[PérezK01] Pérez, K.: Evaluación <strong><strong>de</strong>l</strong> Mo<strong><strong>de</strong>l</strong>o FURD usando Tabú Search.<br />
Reporte Técnico <strong>de</strong> Resi<strong>de</strong>ncias asesorado por Laur<strong>en</strong>ce Santil<strong>la</strong>n,<br />
Carm<strong>en</strong>. Instituto Tecnológico <strong>de</strong> Cd. Ma<strong>de</strong>ro, (2001)<br />
[Pham00] Pham, Karaboga and D.: Intellig<strong>en</strong>t Optimisation Techniques.<br />
Springer. (2000)<br />
[Reidys02] Reidys C., Stadler P.: Combinatorial Landscapes. (2002)<br />
[Romero90] Romero, D., Sanchez, A.: Methods for the one-dim<strong>en</strong>sional sapce<br />
allocation problem. Computers Opns Res, vol.17, no.5, Great Britain,<br />
(1990) 465-473<br />
[Santiago04] Santiago, E.: Mo<strong><strong>de</strong>l</strong>o Estadístico para <strong>la</strong> Caracterización <strong>de</strong> Casos <strong><strong>de</strong>l</strong><br />
Problema <strong><strong>de</strong>l</strong> Diseño <strong>de</strong> <strong>la</strong> Distribución. Tesis Maestría. México,<br />
ITCM (2004)<br />
[Smith02] Smith, T., Husbands, P., Layzell, P., O´Shea, M.: Fitness Landscapes<br />
and Evolvability. C<strong>en</strong>tre for Computational Neurosci<strong>en</strong>ce and<br />
Robotics, School of Biological Sci<strong>en</strong>ces, University of Sussex,<br />
Brighton, UK (2002)<br />
[Smith97] Smith, J. K.: Distributed Database System Survey Paper On Vertical<br />
Partitioning. University of Hawaii (1997)<br />
[Stützle]<br />
Stützle, T., Dorigo, M.: Local Search and Metaheuristics for the<br />
99
[Sydney91]<br />
[Velez02]<br />
[Vleal02]<br />
[Wiec90]<br />
[Wolf89]<br />
Quadratic Assignm<strong>en</strong>t Problem. Darmstadt University of Technology<br />
and Université Libre <strong>de</strong> Bruxelles.<br />
Sydney, H. A..: Introducción a <strong>la</strong> metalurgia física. 2da. Edición.<br />
McGraw-Hill. New York (1991)<br />
Pérez, J., Pazos, R., Velez, L., Rodríguez, G.: Automatic G<strong>en</strong>eration<br />
of Control Parameters for the Threshold Accepting Algorithm. MICAI<br />
(2002) 118-127<br />
Vega, R.: Método Estadístico para caracterizar y Comparar<br />
Algoritmos Heurísticos Utilizados para resolver el Mo<strong><strong>de</strong>l</strong>o FURD,<br />
ITCM ( 2002)<br />
Wieczorek-leb<strong>en</strong>: Tecnología fundam<strong>en</strong>tal para el trabajo <strong>de</strong> los<br />
metales. Gustavo Gilid A (1990)<br />
Wolf, J. L., Dias, D., Iyer, B, Yu, P.: Multisystem Coupling by a<br />
Combination of Data Sharing and Data Partitioning. IEEE<br />
Transactions of software <strong>en</strong>gineering, vol. 15, no. 7 (1989) 116-123<br />
100