Comparing Metaheuristic Algorithms for Error Detection in Java Programs
Dos estrategias de búsqueda anytime basadas en programación lineal entera para resolver el problema de selección de requisitos
1. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
1 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Dos estrategias de búsqueda anytime basadas
en programación lineal entera para resolver el
problema de selección de requisitos
Francisco Chicano, Miguel Ángel Rodríguez,
Isabel del Águila, José del Sagrado y Enrique Alba
3. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
3 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Motivación
Problemas multi-objetivo
• En un problema MO hay varios objetivos (funciones) que queremos optimizar
f1
f2 Soluciones eficientes
(no dominadas)
Soluciones débilmente
eficientes
Solución no
soportada
4. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
4 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Motivación
• El trabajo de Veerapen et al. concluye que 𝜀-constraint con ILP encuentra
el frente de Pareto en 8 horas como mucho (para las instancias resueltas)
• Para reducir este tiempo proponen la primera fase del método del TPM y
NSGA-II
• La primera fase del TPM solo encuentra soluciones soportadas, NSGA-II
es aproximado
Previamente en NRP multi-objetivo…
¿Podemos asegurar soluciones no dominadas bien distribuidas en el frente
cualquier momento de la búsqueda sin renunciar a obtener el frente completo?
• Podemos hacerlo con estrategias anytime
• RQ1: ¿Cuál es la calidad de la parte del frente de Pareto encontrada por los
distintos algoritmos comparados cuando limitamos el tiempo de ejecución
de los mismos?
• RQ2: ¿Cuándo conviene utilizar metaheurísticas para resolver el problema y
cuándo es mejor usar algoritmos basados en programación lineal entera?
5. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
5 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Next Release Problem (NRP)
Problemas MO Formalización del problema
Dados:
Ø Un conjunto de requisitos R = {r1, r2, ..., rn} …
Ø … cada uno con un coste cj y un valor wj
Ø Un conjunto de interacciones funcionales entre requisitos
Ø Implicación (ri antes que rj):
Ø Combinación (ri a la vez que rj):
Ø Exclusión (no a la vez):
Encontrar un subconjunto de requisitos que además de cumplir con las
interacciones minimice el coste y maximice el valor:
da requisito rj 2 R tiene un coste cj para la empresa si se
del requisito rj para el cliente i se representa con vij 2 R. L
valor a˜nadido por la inclusi´on de rj en la siguiente versi´on de
calcular como la suma ponderada de los valores de importa
sj =
Pm
i=1 wi ⇤vij. Los requisitos interaccionan entre ellos, im
de desarrollo determinado, lo que limita las alternativas par
Las interacciones funcionales entre requisitos se clasifican en
Implicaci´on o precedencia. ri ) rj. Un requisito rj no p
previamente otro requisito ri no ha sido implementado.
Combinaci´on o acoplamiento. ri rj. Los requisitos ri y rj
de forma conjunta en el software.
Exclusi´on. ri rj. El requisito ri no puede ser incluido j
Si llamamos X ✓ R al conjunto de requisitos seleccionado
de X vienen dados por las funciones:
nX nX
ar como la suma ponderada de los valores de imporPm
i=1 wi ⇤vij. Los requisitos interaccionan entre ellos,
sarrollo determinado, lo que limita las alternativas p
teracciones funcionales entre requisitos se clasifican
mplicaci´on o precedencia. ri ) rj. Un requisito rj no
eviamente otro requisito ri no ha sido implementado
ombinaci´on o acoplamiento. ri rj. Los requisitos ri y
forma conjunta en el software.
xclusi´on. ri rj. El requisito ri no puede ser incluido
llamamos X ✓ R al conjunto de requisitos selecciona
vienen dados por las funciones:
nX nX
j
calcular como la suma ponderada de los va
sj =
Pm
i=1 wi ⇤vij. Los requisitos interaccion
de desarrollo determinado, lo que limita las
Las interacciones funcionales entre requisito
Implicaci´on o precedencia. ri ) rj. Un
previamente otro requisito ri no ha sido
Combinaci´on o acoplamiento. ri rj. Los
de forma conjunta en el software.
Exclusi´on. ri rj. El requisito ri no pu
Si llamamos X ✓ R al conjunto de requis
de X vienen dados por las funciones:
coste(X) =
nX
j,rj 2X
cj y v
da requisito rj 2 R tiene un coste cj para la empresa si se
del requisito rj para el cliente i se representa con vij 2 R. L
valor a˜nadido por la inclusi´on de rj en la siguiente versi´on de
calcular como la suma ponderada de los valores de importa
sj =
Pm
i=1 wi ⇤vij. Los requisitos interaccionan entre ellos, im
de desarrollo determinado, lo que limita las alternativas pa
Las interacciones funcionales entre requisitos se clasifican en
Implicaci´on o precedencia. ri ) rj. Un requisito rj no
previamente otro requisito ri no ha sido implementado.
Combinaci´on o acoplamiento. ri rj. Los requisitos ri y r
de forma conjunta en el software.
Exclusi´on. ri rj. El requisito ri no puede ser incluido
Si llamamos X ✓ R al conjunto de requisitos seleccionad
de X vienen dados por las funciones:
coste(X) =
nX
j,rj 2X
cj y valor(X) =
nX
j,rj 2X
respectivamente. Consideraremos una versi´on multi-objetiv
minimice el coste y maximice el valor del conjunto de requi
min
max
Xuan et al. Del Sagrado et al.
6. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
6 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
𝜀-constraint con 1 ILP por iteración
f1
f2
continuaci´on asigna a " el valor f1(z) 1. Al entrar en el bucle
f2 sujeto a que el valor de f1 sea menor que ". El valor de f1
servir´a para establecer el nuevo l´ımite para f1. El bucle
existen soluciones con f1 por debajo de ✏, garantiz´andose d
existir´an m´as soluciones eficientes. El algoritmo resuelve un
en cada iteraci´on (l´ınea 5) y s´olo puede garantizar obtener so
eficientes. Esto exige eliminar soluciones dominadas al finaliz
Algoritmo 1 "-constraint con un ILP por iteraci´on
1: z resolver {m´ın f2(x), sujeto a x 2 X}
2: FP {z} // Frente de Pareto
3: " f1(z) 1
4: while 9x 2 X, f1(x) " do
5: z resolver {m´ın f2(x), sujeto a f1(x) ", x 2 X}
6: FP = FP [{z}
7: " f1(z) 1
8: end while
9: Eliminar de FP las soluciones dominadas
4.2. Algoritmo "-constraint con dos ILPs por itera
En el Algoritmo 2 mostramos una variante de "-constra
subproblemas por iteraci´on en lugar de uno. El objetivo es
7. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
7 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
𝜀-constraint con 2 ILPs por iteración
f1
f2
Podr´ıa parecer que el Algoritmo 1 es m´as r´apido que el Algoritm
esfuerzo computacional es menor, pero esta diferencia va disminuye
que el problema a resolver posea un conjunto mayor de solucione
eficientes. Sup´ongase el caso en que |N| = k y |wN| > 2k, siendo
conjuntos de puntos eficientes (no dominados) y d´ebilmente eficien
vamente. El Algoritmo 1 tendr´a que realizar en el bucle m´as de 2k
el Algoritmo 2 s´olo 2k iteraciones.
Algoritmo 2 "-constraint con dos ILPs por iteraci´on
1: z resolver {m´ın f2(x), sujeto a x 2 X}
2: z resolver {m´ın f1(x), sujeto a f2(x) f2(z), x 2 X}
3: FP {z} // Frente de Pareto
4: " f1(z) 1
5: while 9x 2 X, f1(x) " do
6: z resolver {m´ın f2(x), sujeto a f1(x) ", x 2 X}
7: z resolver {m´ın f1(x), sujeto a f2(x) f2(z), x 2 X}
8: FP = FP [{z}
9: " f1(z) 1
10: end while
4.3. Algoritmo "-constraint aumentado (A"-con)
El Algoritmo 3, conocido como augmented "-constraint o AUG
mina las deficiencias de los Algoritmos 1 y 2. Por un lado, solo s
subproblema en cada iteraci´on, y por otro, se garantiza que el p
minado obtenido es eficiente. El lector interesado puede consultar
detalles. En cada iteraci´on, el algoritmo fija un valor positivo par
te , que debe ser suficientemente peque˜no para evitar que el alg
algunas de las soluciones eficientes, y lo bastante grande como par
blemas num´ericos. En general, es suficiente tomar un valor de en
(v´ease [9]). En nuestro caso, hemos optado por calcular el valor
da iteraci´on teniendo en cuenta el punto eficiente obtenido anter
particular la expresi´on que usamos es: = 1/(f1(z) u1), dond
cota inferior de m´ın f1(x), x 2 X, es decir, la primera componente
ut´opico.
8. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
8 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
𝜀-constraint con 2 ILPs por iteración
f1
f2
Podr´ıa parecer que el Algoritmo 1 es m´as r´apido que el Algoritm
esfuerzo computacional es menor, pero esta diferencia va disminuye
que el problema a resolver posea un conjunto mayor de solucione
eficientes. Sup´ongase el caso en que |N| = k y |wN| > 2k, siendo
conjuntos de puntos eficientes (no dominados) y d´ebilmente eficien
vamente. El Algoritmo 1 tendr´a que realizar en el bucle m´as de 2k
el Algoritmo 2 s´olo 2k iteraciones.
Algoritmo 2 "-constraint con dos ILPs por iteraci´on
1: z resolver {m´ın f2(x), sujeto a x 2 X}
2: z resolver {m´ın f1(x), sujeto a f2(x) f2(z), x 2 X}
3: FP {z} // Frente de Pareto
4: " f1(z) 1
5: while 9x 2 X, f1(x) " do
6: z resolver {m´ın f2(x), sujeto a f1(x) ", x 2 X}
7: z resolver {m´ın f1(x), sujeto a f2(x) f2(z), x 2 X}
8: FP = FP [{z}
9: " f1(z) 1
10: end while
4.3. Algoritmo "-constraint aumentado (A"-con)
El Algoritmo 3, conocido como augmented "-constraint o AUG
mina las deficiencias de los Algoritmos 1 y 2. Por un lado, solo s
subproblema en cada iteraci´on, y por otro, se garantiza que el p
minado obtenido es eficiente. El lector interesado puede consultar
detalles. En cada iteraci´on, el algoritmo fija un valor positivo par
te , que debe ser suficientemente peque˜no para evitar que el alg
algunas de las soluciones eficientes, y lo bastante grande como par
blemas num´ericos. En general, es suficiente tomar un valor de en
(v´ease [9]). En nuestro caso, hemos optado por calcular el valor
da iteraci´on teniendo en cuenta el punto eficiente obtenido anter
particular la expresi´on que usamos es: = 1/(f1(z) u1), dond
cota inferior de m´ın f1(x), x 2 X, es decir, la primera componente
ut´opico.
9. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
9 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
𝜀-constraint aumentado
f1
f2
Algoritmo 3 "-constraint aumentado
1: z resolver {m´ın f2(x), sujeto a x 2 X}
2: z resolver {m´ın f1(x), sujeto a f2(x) f2(z), x 2 X}
3: FP {z} // Frente de Pareto
4: " f1(z) 1
5: while 9x 2 X, f1(x) " do
6: Estimar un valor para > 0
7: z resolver {m´ın f2(x) l, sujeto a f1(x) + l = ", x 2 X}
8: FP = FP [{z}
9: " f1(z) 1
10: end while
4.4. Algoritmo anytime basado en augmented weighted T
(AAWTcheby)
Todos los algoritmos anteriores encuentran las soluciones eficient
lexicogr´afico de sus objetivos. El principal problema de ese orden se p
nifiesto cuando se trata de resolver una instancia tan grande que req
tiempo de c´omputo. En ese caso, los algoritmos encontrar´an s´olo un
frente. Desde un punto de vista pr´actico al decisor le interesa tener
de soluciones eficientes que se encuentren lo mejor distribuidas posi
pacio objetivo. Esto puede conseguirse dise˜nando algoritmos que “s
espacio objetivo en busca de soluciones eficientes. Estas estrategias
en ingl´es como anytime. Veerapen et al. [13] utilizaron una b´usqued
ca para lograr este objetivo. La b´usqueda dicot´omica, sin embargo
un grave problema: s´olo es capaz de encontrar soluciones eficientes
Como consecuencia, en frentes c´oncavos, la calidad del frente que ca
ser muy baja. En el presente trabajo proponemos dos t´ecnicas ayti
capaces de encontrar el frente completo con suficiente tiempo. Com
esta secci´on describiendo la primera de ellas.
El algoritmo aumentado y ponderado de Tchebyche↵ permite e
luciones eficientes en una zona cualquiera del frente usando una so
de resolutor ILP. La zona a explorar viene determinada por un pa
(generalmente eficientes) (z(1)
, z(2)
), que asumimos ordenados de ta
(1) (2)
10. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
10 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Anytime Augmented weighted Tchebycheff
f1
f2
cula los dos ´optimos lexicogr´aficos (l´ıneas 1 y 2) y, a contin
espacio entre ellos. Cada vez que encuentra un nuevo punto e
existentes, lo a˜nade al frente de Pareto y divide el rect´angulo
para explorarlos m´as adelante (l´ınea 10). Cuando ya no queda
sin explorar el algoritmo termina. En nuestra implementaci´o
son explorados por orden de ´area, el de mayor ´area se explo
permite obtener un punto en cada iteraci´on con potencial p
hipervolumen cubierto hasta ese momento.
Algoritmo 4 Anytime augmented weighted Tchebyche↵
1: z(1)
calcular ´optimo lexicogr´afico para el orden (f1, f2)
2: z(2)
calcular ´optimo lexicogr´afico para el orden (f2, f1)
3: FP {z(1)
, z(2)
} // Frente de Pareto
4: Cola {(z(1)
, z(2)
)}
5: while Cola 6= ; do
6: (z(1)
, z(2)
) extraerParDeMayorArea(Cola)
7: z resolverTchebyche↵((z(1)
, z(2)
))
8: if z no dominado en (z(1)
, z(2)
) then
9: FP = FP [{z}
10: Cola Cola [{(z(1)
, z), (z, z(2)
)}
11: end if
12: end while
4.5. Algoritmo anytime basado en "-constraint aum
(AA"-con)
El Algoritmo 5 act´ua de forma similar al anterior, analiza
en el espacio objetivo delimitado por pares de puntos. La difere
entre ambos algoritmos es que en AA"-con se utiliza el algor
aumentado para encontrar la soluci´on eficiente dentro de ese r
El algoritmo "-constraint aumentado necesita un valor de ",
al punto medio entre z(1)
y z(2)
(l´ınea 7). Si existe una soluci´o
menor que dicho ", el algoritmo la encontrar´a y la incorporar´a a
una soluci´on dominada (es decir, que la haya encontrado antes
ninguna soluci´on, entonces debe a˜nadir a la cola de explora
rect´angulo que no ha sido explorado, es decir, aquella con f1
11. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
11 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Anytime 𝜀-constraint aumentado
f1
f2
Algoritmo 5 Anytime "-constraint aumentado
1: z(1)
calcular ´optimo lexicogr´afico para el orden (f1, f2)
2: z(2)
calcular ´optimo lexicogr´afico para el orden (f2, f1)
3: FP {z(1)
, z(2)
} // Frente de Pareto
4: Cola {(z(1)
, z(2)
)}
5: while Cola 6= ; do
6: (z(1)
, z(2)
) extraerParDeMayorArea(Cola)
7: " (z
(1)
1 + z
(2)
1 )/2
8: z resolver {m´ın f2(x) l, s.a. f1(x) + l = ", x 2 X}
9: if z no dominado en (z(1)
, z(2)
) then
10: FP = FP [{z}
11: Cola Cola [{(z(1)
, z), (z, z(2)
)}
12: else
13: Cola Cola [{((", z
(1)
2 ), z(2)
)}
14: end if
15: end while
5. Estudio experimental
En esta secci´on comparamos los resultados obtenidos por lo
goritmos de programaci´on lineal entera. En particular, estamos
estudiar la calidad del frente de Pareto cuando limitamos el
cuci´on de los algoritmos. Este escenario puede corresponderse c
en la pr´actica, en especial, cuando se usan metodolog´ıas ´agiles
verse el problema de determinar los requisitos a implementar
iteraci´on. Por otro lado, nos gustar´ıa comparar los resultados
ci´on lineal entera con los algoritmos metaheur´ısticos que se ha
zando para resolver este problema hasta el momento. El c´odigo
mentaci´on de los algoritmos utilizados en el estudio est´a public
https://github.com/jfrchicanog/NextReleaseProblem. En d
bi´en puede encontrarse un enlace a las instancias.
12. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
12 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Resultados: Instancias
• 17 instancias de Xuan et al.
• 2 instancias de Del Sagrado et al.
Instancia Requisitos Clientes
nrp1 140 100
nrp2 620 500
nrp3 1500 500
nrp4 3250 750
nrp5 1500 1000
nrp-e1 3502 536
nrp-e2 4254 491
nrp-e3 2844 456
nrp-e4 3186 399
nrp-g1 2690 445
nrp-g2 2650 315
nrp-g3 2512 423
nrp-g4 2246 294
nrp-m1 4060 768
nrp-m2 4368 617
nrp-m3 3566 765
nrp-m4 3643 568
Instancia Requisitos Clientes
dataset1 20 5
dataset2 100 5
13. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
13 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Resultados: RQ1 (frente con límite de tiempo)
0,00E+00
5,00E+07
1,00E+08
1,50E+08
2,00E+08
2,50E+08
Hipervolumen en 5 minutos
!-constraint 1 ILP !-constraint 2 ILPs
!-constraint aumentado anytime tchebycheff
anytime !-constraint aumentado
14. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
14 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Resultados: RQ1 (frente con límite de tiempo)
0,00E+00
5,00E+06
1,00E+07
1,50E+07
2,00E+07
2,50E+07
3,00E+07
3,50E+07
Hipervolumen en 5 minutos
!-constraint 1 ILP !-constraint 2 ILPs
!-constraint aumentado anytime tchebycheff
anytime !-constraint aumentado
15. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
15 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Resultados: RQ2 (comparación con metaHs)
0,00E+00
5,00E+07
1,00E+08
1,50E+08
2,00E+08
2,50E+08
Hipervolumen de algoritmos anytime frente a NSGA-II
anytime tchebycheff anytime !-constraint aumentado NSGA-II
16. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
16 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Resultados: RQ2 (comparación con metaHs)
con aplicar una t´ecnica exacta para resolverlos. En cualquier caso, en la tabla 3
mostramos el hipervolumen y el tiempo de ejecuci´on requerido por ACO, GRASP
y NSGA-II para resolver estas instancias, y en la Figura 1 mostramos el frente
de Pareto y las aproximaciones obtenidas por las metaheur´ısticas.
Tabla 3. Comparaci´on del hipervolumen obtenido y tiempo requerido por NSGA-II,
GRASP y ACS en las instancias de Del Sagrado et al. En el caso de las metaheur´ısticas
el tiempo e hipervolumen son promedios de 100 ejecuciones independientes.
dataset1 dataset2
Algoritmo % esfuerzo Hipervolumen Tiempo (ms) Hipervolumen Tiempo (ms)
30 6843 1892 218138 28128
NSGA-II 50 15677 1981 495949 35046
70 24409 2034 873384 38300
30 5851 363 112419 28920
GRASP 50 14508 1208 425642 118340
70 24474 840 769613 324604
30 7805 639 234583 616874
ACS 50 18153 788 527685 770221
70 29196 837 902769 881951
"-con. 1-ILP 100 52271 290 1797324 11553
17. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
17 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Resultados: RQ2 (comparación con metaHs)
0
100
200
300
400
500
600
700
800
0 10 20 30 40 50 60
Valor
Coste
ACS
NSGAII
GRASP
Pareto
(a) dataset1
0
500
1000
1500
2000
0 100 200 300 400 500 600 700
Valor
Coste
ACS
NSGAII
GRASP
Pareto
(b) dataset2
Figura 1. Frente de Pareto y aproximaciones de los algoritmos metaheur´ısticos.
18. Introducción
Next Release
Problem
Algoritmos Resultados
Conclusiones y
Trabajo futuro
18 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Conclusiones y Trabajo Futuro
•Los algoritmos basados en ILP suficientes para resolver
la mayorías de las instancias de interés en la actualidad
para el NRP multiobjetivo
•Las estrategias anytime obtienen un frente bien
distribuido en cualquier momento
•Código disponible en
https://github.com/jfrchicanog/NextReleaseProblem
Conclusiones
• Añadir incertidumbre al problema
• Estudiar las “sorpresas” descubiertas en la investigación
Trabajo Futuro
19. 19 / 19Septiembre 2016JISBD 2016 (CEDI), Salamanca, España
Gracias por su atención !!!
Dos estrategias de búsqueda anytime basadas en programación
lineal entera para resolver el problema de selección de requisitos
TIN2014-57341-R (MoveOn)
TIN2015-71841-REDT (SEBASE Net)