Académique Documents
Professionnel Documents
Culture Documents
Abstract. Traditionally algorithms are compared through the theoretical analysis of their
performance, from which it is concluded that one outperforms the other. In contrast, the method
presented in this paper statistically evaluates and characterizes the algorithms using functions that
relate performance with problem size, in order to define dominance regions. This method generates
first a representative sample of the algorithms performance, then using a simplified regression analysis
determines performance functions, which are finally incorporated into an algorithm selection
mechanism. For testing purposes, a set of randomly generated instances of the database distribution
problem was solved using an exact algorithm (Branch & Bound) and a heuristic algorithm (Simulated
Annealing). Experimental results show that problem size affects differently both algorithms, in such a
way that there exist regions where one algorithm is more efficient than the other, and therefore it is
possible to determine analytically the most adequate algorithm to solve a problem instance depending
on its size.
Key words: heuristic optimization, statistical tests, algorithm selection.
1. INTRODUCCIN
ste trabajo suma esfuerzos dirigidos hacia la automatizacin del diseo de la distribucin de bases
de datos mediante la utilizacin del modelo matemtico de distribucin descrito en la seccin 2.1.
Aunque se sabe que el diseo de la distribucin afecta directamente el desempeo global de los
sistemas distribuidos, la complejidad de este problema ha frenado el desarrollo de metodologas y
herramientas de apoyo al diseo.
Prez et al.: Prediccin del Desempeo de Algoritmos Exactos y Heursticos: un Enfoque Estadstico
115
El estudio terico del desempeo de los algoritmos heursticos basado en el anlisis de los casos
medio y peor, con frecuencia es difcil de realizar. Adems, debido a que describe el comportamiento
de los algoritmos en el lmite, no ayuda a decidir qu tan bien se comportan los algoritmos con
ejemplares especficos [11]. Por otro lado, el anlisis experimental s es adecuado para ejemplares
especficos y es ampliamente reportado en publicaciones cientficas. Sin embargo, se utiliza muy
informalmente, no rene estndares mnimos de reproduccin y slo ocasionalmente se reportan
resultados analizados con rigurosos mtodos estadsticos [7].
En particular, estudios experimentales que comparen algoritmos exactos y heursticos son
escasos y de utilidad prctica limitada. El trabajo ms completo y actualizado es el presentado por
Hoos y Stutzle en [8], el cual se enfoca al anlisis de algunos de los mejores algoritmos conocidos para
el problema clsico de satisfabilidad (SAT), contrastando, mediante funciones de distribucin de
probabilidad, el desempeo de los algoritmos exactos y heursticos sobre un amplio rango de casos de
prueba. Un estudio similar presentado en [5] propone una tcnica general muy exacta para modelar el
crecimiento del costo de la bsqueda con el tamao del problema. Si bien, estos trabajo y los
presentados en [3, 9, 22], han contribuido a mejorar el diseo de los algoritmos contrastados, y por lo
tanto su desempeo, para efectos prcticos an se hace necesario contar con un mecanismo que permita
seleccionar entre varios algoritmos aquel que resuelva el problema en el menor tiempo disponible.
En este artculo se propone un nuevo mtodo estadstico para: (1) evaluar y caracterizar
estadsticamente los algoritmos mediante funciones de desempeo, las cuales permiten predecir la
calidad de la solucin y el tiempo de procesamiento dado el tamao del problema; y (2) elegir el
algoritmo ms adecuado para un ejemplar especfico. Los resultados de la experimentacin prueban
que el tamao del problema es un factor importante que afecta al desempeo del algoritmo, ya que
existen regiones donde cada algoritmo es ms eficiente que el otro.
El resto del artculo se organiza de la siguiente manera: La seccin 2 describe los dos
algoritmos usados en nuestra investigacin para evaluar el desempeo de algoritmos exactos y
heursticos; haciendo nfasis en el problema que resuelven. Enseguida, la seccin 3 describe el mtodo
estadstico propuesto para comparar y seleccionar algoritmos. Posteriormente, la seccin 4 describe los
resultados de la implementacin del mtodo propuesto. Finalmente, la seccin 4 concluye con un
resumen de nuestros principales resultados y algunas sugerencias para orientar trabajos futuros.
116
k i
donde
fki =
qkm =
lkm =
cij =
c1 =
ykj =
c2 =
wj =
ami =
dm =
m j
m i
(1)
x mj = 1
(2)
Cada atributo m debe ser ubicado en un sitio i que ejecute al menos una
consulta que involucre al atributo;
donde
(3)
x mi
m , i
q km ki
k
1, si f ki 0
ki =
0, si f ki = 0
Prez et al.: Prediccin del Desempeo de Algoritmos Exactos y Heursticos: un Enfoque Estadstico
t w j xmj 0
117
(4)
t ykj qkm xmj 0 Esta restriccin fuerza el valor de ykj a 1 cuando cualquier qkmxmj es igual
(5)
k, j
x mj p m CA cs j
m
(6)
118
Prez et al.: Prediccin del Desempeo de Algoritmos Exactos y Heursticos: un Enfoque Estadstico
119
Paso 2. Estimacin.
Determinar las funciones de estimacin del desempeo de los algoritmos, aplicando a los
resultados tabulares un tratamiento estadstico basado en tcnicas de aproximacin (por
ejemplo anlisis de regresin).
Paso 3. Seleccin de Algoritmos.
Elegir el algoritmo de solucin ms adecuado al tamao del problema mediante un algoritmo
de seleccin basado en las funciones de desempeo.
3.2. Medicin del Desempeo
Para comparar el esfuerzo de cmputo de los algoritmos generalmente se usan medidas
independientes de la mquina y de la implementacin; sin embargo, los diferentes enfoques de solucin
slo tienen dos puntos de comparacin: el tiempo de CPU y el porcentaje de error. Para medir el
esfuerzo de cmputo nosotros usamos el tiempo de CPU, mientras que para la calidad usamos el
porcentaje de desviacin del ptimo. Ambas cantidades fueron determinadas para ejemplares de la
misma clase pero de diferentes tamaos. A diferencia de muchos trabajos, aqu medimos el tamao del
problema contabilizando la cantidad de bytes ocupados por todos los parmetros. Consideramos que
esta medida es ms exacta ya que tiene una total representatividad de la estructura de datos del
problema.
En otras investigaciones [8], orientadas a la mejora de algoritmos, usaron como estrategia de
comparacin: a) ejecutar el algoritmo hasta obtener una solucin muy cercana a la ptima, b)ejecutar el
algoritmo hasta un tiempo predeterminado. Sin embargo, nuestro trabajo est enfocado a la
caracterizacin de algoritmos para propsitos de seleccin, sin buscar modificarlos, en esas
circunstancias, dejamos operar al algoritmo hasta el cumplimiento de su propio criterio de paro.
3.3. Determinacin de las Funciones de Estimacin del Desempeo
Como se menciono anteriormente, para la caracterizacin del desempeo slo se consideran dos
aspectos: la calidad de los resultados y el esfuerzo computacional requerido. En lo que sigue, las
funciones de desempeo se denotan con T(n) y E(n). La primera es la funcin de eficiencia que
representa la relacin entre el tamao del problema y el tiempo de procesamiento de un algoritmo
especfico, mientras que la segunda es la funcin de eficacia y representa la relacin entre el tamao del
problema y la calidad de la solucin obtenida por el algoritmo. La calidad se determina con la
desviacin del ptimo.
Con fines de prueba, para obtener las funciones de desempeo de los algoritmos se sigui un
procedimiento comn y simplificado basado en anlisis de regresin. En este procedimiento n es la
variable independiente que representa el tamao de un problema, t la variable aleatoria que representa
el tiempo de procesamiento del algoritmo, y r el tamao de la muestra.
Paso 1. Generar un conjunto de polinomios factibles, o sea de grado pequeo y menor que el tamao de
la muestra.
E(n) = a0 + a1 n + a2 n2 +...+ ag ng
T(n) = b0 + b1 n + b2 n2 +...+ bg ng
1 g (r-1)
1 g (r-1)
120
Paso 2. Determinar los coeficientes a y b del conjunto de polinomios factibles usando un mtodo de
ajuste como mnimos cuadrados.
Paso 3. Seleccionar el polinomio ms adecuado usando pruebas estadsticas que cuantifiquen la bondad
de stos para representar la relacin entre el desempeo y el tamao del problema. Para
aumentar el nivel de confianza en la funcin elegida, se recomiendan tres pruebas de bondad:
estimacin de la variancia del error, la prueba F global y la prueba W de Student. La primera da
una idea preliminar de la confiabilidad de las funciones, con la segunda se obtiene un
subconjunto de funciones tiles, y con la tercera se determina la utilidad de los coeficientes de
las funciones candidatas. En la Tabla 1 se resumen las ecuaciones y condiciones que se usaron
para determinar la bondad de ajuste de los polinomios de eficiencia, las cuales son similares
para los polinomios de eficacia.
se 2 =
2
(t i T( n i ))
i
r ( g + 1)
R2 =1
(t i T (ni ))
(t i t )
El polinomio es adecuado
si tiene el menor valor de
se
F=
R2 /g
(1 R 2 )/[r ( g +1)]
El polinomio es til si
F > (F(g, r-(g+1)))*
Prueba W de Student
Sebi = error estndar de bi
obtenido por
mnimos cuadrados
bi
W=
0 ig
sebi
El coeficiente bi es til si
W < -(W (r-(g+1)))*
W > (W (r-(g+1)))*
Prez et al.: Prediccin del Desempeo de Algoritmos Exactos y Heursticos: un Enfoque Estadstico
121
ALGORITMO
Inicio
real t, ;
entero i, n;
// tolerancia
// tamao problema
4. RESULTADOS EXPERIMENTALES
En esta seccin se presentan los resultados de la implementacin del mtodo propuesto.
4.1. Resultados del Comportamiento de los Algoritmos
Para obtener la descripcin tabular del comportamiento de los algoritmos, se realizaron 40
experimentos con cada caso de prueba. stos se obtuvieron de la siguiente manera: a) se generaron
aleatoriamente 26 casos de prueba y b) se generaron matemticamente 17 ejemplares grandes de
solucin conocida usando componentes desacoplados [2].
Cada caso de prueba se resolvi usando El Algoritmo de Ramificacin y Acotamiento y el
algoritmo de Aceptacin por Umbral. En las Tablas 2 y 3 se presentan parte de los resultados de estas
pruebas, las cuales fueron realizadas en una PC con un CPU Pentium a 120 MHz, el sistema operativo
Windows 95, el compilador Borland C, y el paquete LINDO, el cual est basado en el mtodo de
Ramificacin y Acotamiento. La segunda y tercera columnas de la Tabla 2 muestran los tamaos del
problema para los casos de prueba; mientras las ltimas dos columnas muestran los resultados del
desempeo obtenidos usando Ramificacin y Acotamiento. En la Tabla 3 se muestran los resultados
obtenidos usando el algoritmo de Aceptacin por Umbral. El porcentaje de diferencia con respecto a la
solucin ptima se muestra en las columnas 2 a la 4. La ltima columna muestra el tiempo de ejecucin
del algoritmo.
122
Grado
1
2
3
4
5
6
b7
Prez et al.: Prediccin del Desempeo de Algoritmos Exactos y Heursticos: un Enfoque Estadstico
123
alto de R2 (Tabla 6). En las Tabla 8 y 9 se muestran las mejores funciones polinomiales que se
obtuvieron con el procedimiento de regresin aplicado a los algoritmos de Aceptacin por Umbral y
Ramificacin y Acotamiento.
Tabla 5. Error estndar de los polinomios.
Grado del
se
polinomio
1
140.26009
2
103.27366
3
96.38950
4
96.45101
5
96.52202
6
96.59370
Algoritmo
Aceptacin por
Umbral
Ramificacin
y
Acotamiento
124
1000
0.3 + 6.7E-5n +
4.3E-10n 2 -6.2E-17n 3
100
T (n)
10
De un Conjunto de
Corridas de AU
0.01
100
1000
10000
100000
1000000
Figura 1. Grfica de las funciones de eficiencia del algoritmo de Aceptacin por Umbral.
Prez et al.: Prediccin del Desempeo de Algoritmos Exactos y Heursticos: un Enfoque Estadstico
125
500
Peor Caso
56 + 0.00011 n
De una corrida
400
De un Conjunto de
corridas
E (n)
300
Caso M edio
2.1 + 1.2E-4 n
-1.8E-11 n 2
+6.3E-19 n 3
200
M ejor Caso
-0.5 + 2.3E-5 n
100
100
1000
10000
100000
1000000
Figura 2. Grfica de las funciones de eficacia del algoritmo de Aceptacin por Umbral.
5. COMENTARIOS FINALES
Este artculo muestra que caracterizando los algoritmos mediante funciones de desempeo es
posible determinar automticamente el algoritmo ms adecuado dado el tamao del problema.
Adems, la caracterizacin nos ayuda a comprender mejor el comportamiento de los algoritmos. Por
ejemplo, establece umbrales en los cuales un algoritmo puede ser mejor que otro, a diferencia del
enfoque tradicional, el cual simplifica la evaluacin de los algoritmos; es decir, establece que un
algoritmo es mejor que otro en todos los casos, lo cual no siempre es cierto.
Para propsitos de demostracin se obtuvieron las funciones de desempeo de Ramificacin y
Acotamiento y Recocido Simulado, aplicados a la solucin del problema de la distribucin de bases de
datos modelado por FURD. Los resultados experimentales han confirmado que Ramificacin y
Acotamiento es satisfactorio para problemas pequeos, Recocido Simulado parece prometedor para
problemas grandes y que existe un punto de cruce que separa ambas regiones.
Con el mtodo estadstico propuesto es posible crear programas de cmputo para determinar,
mediante las funciones de desempeo, el mtodo de solucin ms adecuado al tamao del ejemplar.
Esta sistematizacin es relevante para los campos de la Optimizacin y Algoritmia por la falta de
metodologas formales para este propsito. En este sentido se justifican investigaciones que mejoren la
caracterizacin y validacin de las funciones de desempeo. Como trabajos futuros se planea realizar el
ajuste de datos con funciones exponenciales; explorar otras tcnicas de aproximacin; utilizar pruebas
de bondad de ajuste adecuadas al problema; modelar la dificultad del problema, la cual vara con el tipo
de instancia; y verificar la aplicabilidad del mtodo estadstico a la evaluacin de algoritmos que
resuelven otros problemas complejos.
126
REFERENCIAS
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
Prez et al.: Prediccin del Desempeo de Algoritmos Exactos y Heursticos: un Enfoque Estadstico
127
[21] B. Selman, H. Levesque y D. Mitchell, A new Method for Solving Hard Satisfability Problems,
Proceedings of AAAI92, Mit Press, pp. 440-446, 1992.
[22] B. Selman, H.A. Kautz y B.Cohen, Noise Strategies for Improving Local Search, Proceeding
of AAAI94, Mit Press, pp. 337-343, 1994.
[23] H.A. Taha, Integer Programming: Theory, Applications and Computations. Academic Press, USA,
1975.
[24] R. Walpole y R. Myers, Probabilidad y Estadstica, McGraw Hill, 1990.