24.11.2014 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!