127
Metaheurísticas Aplicadas a Problemas Complexos da Engenharia de Software GOES.UECE - Grupo de Otimização em Engenharia de Software Universidade Estadual do Ceará Dr. Jerffeson Teixeira de Souza XXIV Simpósio Brasileiro de Banco de Dados XXIII Simpósio Brasileiro de Engenharia de Software Fortaleza, 05 a 09 de Outubro de 2009

GOES.UECE - SOES Especial Minicurso SBES 2009

Embed Size (px)

DESCRIPTION

Nesta apresentação são cobertos os tópicos conceituais importantes na área de Otimização em Engenharia de Software. Além disso, são apresentados os principais problemas já atacados e os resultados encontrados.

Citation preview

Page 1: GOES.UECE - SOES Especial Minicurso SBES 2009

Metaheurísticas Aplicadas a Problemas Complexos da Engenharia de Software

GOES.UECE - Grupo de Otimização em Engenharia de Software

Universidade Estadual do Ceará

Dr. Jerffeson Teixeira de Souza

XXIV Simpósio Brasileiro de Banco de Dados XXIII Simpósio Brasileiro de Engenharia de Software

Fortaleza, 05 a 09 de Outubro de 2009

Page 2: GOES.UECE - SOES Especial Minicurso SBES 2009

Jerffeson Teixeira de SouzaUniversidade Estadual do Ceará Professor Adjunto

http://goes.comp.uece.br/[email protected]

Prazer em conhecer,

Page 3: GOES.UECE - SOES Especial Minicurso SBES 2009

Nosso tempo estádividido desta forma

Parte 01 Otimização em Engenharia de SoftwareParte 02 Introdução a Metaheurísticas Parte 03 Aplicação de Metaheurísticas em

Engenharia de Software Parte 04 Considerações Finais Parte 05 Discussões (se o tempo permitir)

Page 4: GOES.UECE - SOES Especial Minicurso SBES 2009

Metaheurísticas Aplicadas a Problemas Complexos da Engenharia de SoftwarePARTE 01 – OTIMIZAÇÃO EM ENGENHARIA DE SOFTWARE

XXIV Simpósio Brasileiro de Banco de Dados XXIII Simpósio Brasileiro de Engenharia de Software

Fortaleza, 05 a 09 de Outubro de 2009

Page 5: GOES.UECE - SOES Especial Minicurso SBES 2009

Espere um minuto.

Antes, vamos definir ...

Page 6: GOES.UECE - SOES Especial Minicurso SBES 2009

Otimização

Engenharia de Software

Page 7: GOES.UECE - SOES Especial Minicurso SBES 2009

Engenharia de Software

Page 8: GOES.UECE - SOES Especial Minicurso SBES 2009

Disciplina da engenhariaque se ocupa de todos osaspectos da produção de software, desde os estágiosiniciais de especificação atéa manutenção desse

sistema.

Sommerville

Page 9: GOES.UECE - SOES Especial Minicurso SBES 2009

Otimização

βελτιστοποίησης

Page 10: GOES.UECE - SOES Especial Minicurso SBES 2009

Otimização “Otimização consiste em encontrar uma ou mais soluções válidas para um determinado problema que correspondem a valores extremos (ou ótimos) de uma ou mais funções que valoram tais soluções.”

Page 11: GOES.UECE - SOES Especial Minicurso SBES 2009

Tipos de Otimização

Mono-objetiva

Uma única função a ser otimizada

Possui uma Ordenação Total

Busca uma única solução (ótima)

Multi-objetiva

Duas ou mais funções a serem otimizadas

Possui uma Ordenação Parcial

Busca um conjunto de soluções

Page 12: GOES.UECE - SOES Especial Minicurso SBES 2009

Ordenação Parcial

f(x) f(y) ou f(x) f(y), para todo x e y

Ordenação Total

f(x) f(y), f(x) f(y) ou (f(x) f(y) e f(x) f(y)) para algum x e y

/ /

Page 13: GOES.UECE - SOES Especial Minicurso SBES 2009

Na Otimização multi-objetiva, o conceito de Dominância substitui o conceito “melhor-pior-igual”

Dominância“Uma solução S1 domina uma solução S2 se S1 é melhor ou igual a S2 em todos os critérios, e estritamente melhor em pelo menos um deles”

Page 14: GOES.UECE - SOES Especial Minicurso SBES 2009

EXEMPLO ILUSTRATIVO

ProblemaEscolher um voo entre São Paulo e Fortaleza, minimizando

o custo, que deve ser no máximo de R$ 800,00, e que possua o menor tempo de voo possível.

Page 15: GOES.UECE - SOES Especial Minicurso SBES 2009

Tempo de Voo(horas)

2 1 2 3,5 4 6 7 8

Custo (R$) 300,00 700,00 900,00 650,00 400,00 100,00 300,00 600,00

Voos Disponíveis

EXEMPLO ILUSTRATIVO

ProblemaEscolher um voo entre São Paulo e Fortaleza, minimizando

o custo, que deve ser no máximo de R$ 800,00, e que possua o menor tempo de voo possível.

Page 16: GOES.UECE - SOES Especial Minicurso SBES 2009

Tempo de Voo(horas)

2 1 2 3,5 4 6 7 8

Custo (R$) 300,00 700,00 900,00 650,00 400,00 100,00 300,00 600,00

Voos Disponíveis

EXEMPLO ILUSTRATIVO

ProblemaEscolher um voo entre São Paulo e Fortaleza, minimizando

o custo, que deve ser no máximo de R$ 800,00, e que possua o menor tempo de voo possível.

Solução Inválida

Page 17: GOES.UECE - SOES Especial Minicurso SBES 2009

0,00

100,00

200,00

300,00

400,00

500,00

600,00

700,00

800,00

900,00

1.000,00

0 1 2 3 4 5 6 7 8 9 10

custo() (R$)

tempo_de_voo() (horas)

Objetivo: Minimizar tempo_de_voo() e custo()

S2

S1

S1 domina S2

Page 18: GOES.UECE - SOES Especial Minicurso SBES 2009

0,00

100,00

200,00

300,00

400,00

500,00

600,00

700,00

800,00

900,00

1.000,00

0 1 2 3 4 5 6 7 8 9 10

custo() (R$)

tempo_de_voo() (horas)

Objetivo: Minimizar tempo_de_voo() e custo()

S2

S1

S1 não domina S2 eS2 não domina S1

Page 19: GOES.UECE - SOES Especial Minicurso SBES 2009

0,00

100,00

200,00

300,00

400,00

500,00

600,00

700,00

800,00

900,00

1.000,00

0 1 2 3 4 5 6 7 8 9 10

custo() (R$)

tempo_de_voo() (horas)

Objetivo: Minimizar tempo_de_voo() e custo()

Melhor

Indiferente

Indiferente

Pior

Page 20: GOES.UECE - SOES Especial Minicurso SBES 2009

0,00

100,00

200,00

300,00

400,00

500,00

600,00

700,00

800,00

900,00

1.000,00

0 1 2 3 4 5 6 7 8 9 10

custo() (R$)

tempo_de_voo() (horas)

Objetivo: Minimizar tempo_de_voo() e custo()

Soluções Dominadas

Soluções Não Dominadas

Frente de Pareto

Page 21: GOES.UECE - SOES Especial Minicurso SBES 2009

Formulação de Um Problema da Otimização

minimizar (x) fm

0

0

)()( Uii

Li

k

j

xxx

(x)h

(x)g

Funções a Minimizar/Maximizar

ni

Kk

Jj

Mm

,...,1

,...,1

,...,1

,...,1

:a sujeito

Definem as Soluções Válidas

Restrições

Page 22: GOES.UECE - SOES Especial Minicurso SBES 2009

Métodos à posterioriDecisor explicita suas preferências após o processo de busca

1 Métodos à prioriDecisor explicita suas preferências antes do processo de busca

2

Métodos InterativosDecisor explicida suas preferências durante o proceso de busca, guiando o processo iterativamente

3

Resolvendo Problemas Multi-objetivos

Page 23: GOES.UECE - SOES Especial Minicurso SBES 2009

1 Métodos à Priori

Atribui-se um peso a cada objetivo, explicitando as preferências do decisor, assim técnicas de otimização mono-objetivo podem ser utilizadas diretamente.

n

i

i

n

i

ii wxfwxf11

1 )()(

Técnicas de Resolução: Métodos Exatos, Métodos Aproximativos, Heurísticas, Metaheurísticas Mono-objetivas.

Page 24: GOES.UECE - SOES Especial Minicurso SBES 2009

2 Métodos à Posteriori

Selecionam um conjunto de soluções não dominadas, que deverão ser analisadas posteriormente pelo decisor.

Técnicas de Resolução: Metaheurísticas Multi-objetivas.

Page 25: GOES.UECE - SOES Especial Minicurso SBES 2009

Otimização

Engenharia de Software

Page 26: GOES.UECE - SOES Especial Minicurso SBES 2009

Otimização em Engenharia de Software

Por que, quando e como aplicar.

?Recapitulando...

Page 27: GOES.UECE - SOES Especial Minicurso SBES 2009

Otimização em Engenharia de Software

Novo ramo da Engenharia de Software dedicado a resolução

automática de problemas complexos dessa área, modelados

como problemas de otimização

Page 28: GOES.UECE - SOES Especial Minicurso SBES 2009

Otimização em Engenharia de Software

=Search-based Software

Engineering (SBSE)

Page 29: GOES.UECE - SOES Especial Minicurso SBES 2009

óri

Otimização em Engenharia de SoftwarePor que ?

Page 30: GOES.UECE - SOES Especial Minicurso SBES 2009

Sistemas cada vez mais complexosAbordagens automáticas se tornam cada vez mais necessárias.

EscalabilidadeSoluções convencionais sofrem com problemas de escalabilidade em grandes projetos. SBSE é escalável, dado o aumento no poder de processamento.

IndependênciaResultados são gerados a partir de análises ausentes de qualquer vício ou pré-conceitos.

Por que ?

Page 31: GOES.UECE - SOES Especial Minicurso SBES 2009

óri

Otimização em Engenharia de SoftwareQuando ?

Page 32: GOES.UECE - SOES Especial Minicurso SBES 2009

Problemas Complexos

1: Grande Espaço de Busca

2: Ausência de Solução Ótima Conhecida

Quando ?

Page 33: GOES.UECE - SOES Especial Minicurso SBES 2009

óri

Otimização em Engenharia de SoftwareComo ?

Page 34: GOES.UECE - SOES Especial Minicurso SBES 2009

Aplicando Otimização em Engenharia de Software

Escolha de uma Representação para as soluções do problema

Definição da Função(ões) de Avaliação e das Restrições do problema

Escolha e Aplicação de Algoritmos de Busca

Page 35: GOES.UECE - SOES Especial Minicurso SBES 2009

Exemplos de Problemas Complexos em Engenharia de Software

Estimativa de Custos

Alocação de Pessoal

Planejamento de Releases

Page 36: GOES.UECE - SOES Especial Minicurso SBES 2009

Exemplos de Problemas Complexos em Engenharia de Software

Otimização de Projeto

Otimização de Código Fonte

Geração, Seleção e Priorização de Casos de Teste

Page 37: GOES.UECE - SOES Especial Minicurso SBES 2009

Um Pouco de

História

Page 38: GOES.UECE - SOES Especial Minicurso SBES 2009

até 2001Diversos trabalhos esparsos, especialmenteem teste de software, tratam problemas de Engenharia de Software como problemas de busca.

2001Mark Harman e Bryan Jones introduzem o termo Search-based Software Engineering em um artigo de mesmo nome.

2008Chamada para Edição Especial do periódico IEEE Transactions on Software Engineering em Search-Based Optimization for Software Engineering.

Maio de 20091st International Symposium on Search Based Software Engineering, na cidade de Windsor, UK

2007Mark Harman publica o artigo “The Current State and Future of Search Based Software Engineering”.

Agosto de 2009Chamada para Edição Especial do periódico Software—Practiceand Experience em Practical Aspects of Search-Based Software Engineering

Page 39: GOES.UECE - SOES Especial Minicurso SBES 2009

Metaheurísticas Aplicadas a Problemas Complexos da Engenharia de Software

PARTE 02 - INTRODUÇÃO A METAHEURÍSTICAS

XXIV Simpósio Brasileiro de Banco de Dados XXIII Simpósio Brasileiro de Engenharia de Software

Fortaleza, 05 a 09 de Outubro de 2009

Page 40: GOES.UECE - SOES Especial Minicurso SBES 2009

MetaheurísticaCombinação de duas palavras gregas: heuriskein, quesignifica “encontrar”, e o sufixo meta significando“além, em um nível mais alto”.

Refere-se a uma estratégia inteligente de alto nível que guia um processo de busca, explorando eficientemente um espaço de soluções a procura de soluções ótimas ou sub-ótimas.

Page 41: GOES.UECE - SOES Especial Minicurso SBES 2009

Discutiremos as seguintes Metaheurísticas

Mono-objetivas Algoritmos GenéticosTêmpera SimuladaGRASP

Multi-objetiva NSGA II

Page 42: GOES.UECE - SOES Especial Minicurso SBES 2009

Algoritmos Genéticos

Page 43: GOES.UECE - SOES Especial Minicurso SBES 2009

Introdução

Método de busca inspirado na Teoria da

Evolução Natural de Charles Darwin

Introduzido por John Holland (1975) e

popularizado por um dos seus alunos, David

Goldberg (1989).

Page 44: GOES.UECE - SOES Especial Minicurso SBES 2009

Charles Darwin (1809 – 1882)

•Naturalista Britânico

•1859 – Livro “A Origem das Espécies”

•Conceitos Fundamentais

•Evolução é natural

•Seleção Natural

•Sobrevivências dos mais adaptados

•Propagação genética

•Mutação

Page 45: GOES.UECE - SOES Especial Minicurso SBES 2009

procedimento ALGORITMO_GENÉTICO()

cria_população_inicial(P);

repita

P’ ← avaliação_da_população(P);

P’’ ← seleção_dos_pais (P);

P’ ← recombinação_dos_pais(P’’);

mutação(P’’);

P ← P’’;

enquanto condições de parada não for atingida

fim ALGORITMO_GENÉTICO

Pseudocódigo do Algoritmo

Genético

Page 46: GOES.UECE - SOES Especial Minicurso SBES 2009

Representação Genética

Um AG processa populações de cromossomos.

Um cromossomo é uma estrutura de dados, geralmente vetor ou cadeia de bits (cadeia de bits é a estrutura mais tradicional, porém nem sempre a melhor), que representa uma possível solução do problema a ser otimizado.

O primeiro passo para resolver um problema utilizando AGs é representar uma possível solução deste problema na forma de um cromossomo.

Page 47: GOES.UECE - SOES Especial Minicurso SBES 2009

População Inicial

Um Algoritmo Genético começa com uma população inicial de N cromossomos.

Essa população pode ser gerada de forma aleatória ou a partir de conhecimentos prévios do problema.

O tamanho da população inicial deve ser determinado de acordo com cada problema.

Page 48: GOES.UECE - SOES Especial Minicurso SBES 2009

Seleção

Inspirado no processo de seleção natural de seres vivos.

O AG seleciona os melhores cromossomos (aqueles de alta aptidão) com maior probabilidade para gerar cromossomos filhos (que são variantes dos pais) através dos operadores de cruzamento e mutação.

Page 49: GOES.UECE - SOES Especial Minicurso SBES 2009

Métodos de Seleção

• Seleciona um cromossomo com probabilidade proporcional a sua aptidão.

Método da Roleta

• Seleciona um cromossomo a partir de competições, normalmente envolvendo dois cromossomos.

Método de Torneio

Page 50: GOES.UECE - SOES Especial Minicurso SBES 2009

Cruzamento (ou Crossover)

Processo de combinação de dois cromossomos para a geração de dois filhos.

Garante a propagação de material genético.

Respeita uma Taxa de Cruzamento (entre 60 e 90%) determinada a priori.

Page 51: GOES.UECE - SOES Especial Minicurso SBES 2009

Métodos de Cruzamento

• Realiza um corte único de cada cromossomo e combina os materiais genéticos divididos.

Cruzamento de 1 ponto

• Realize dois cortes, e similarmente combina os materiais genéticos divididos.

Cruzamento de 2 pontos

Page 52: GOES.UECE - SOES Especial Minicurso SBES 2009

Mutação

Processo de alteração genética aleatório.

Permite a adição de material genético inédito.

Respeita uma Taxa de Mutação (até 5%) determinada a priori.

Page 53: GOES.UECE - SOES Especial Minicurso SBES 2009

Calibragem dos Parâmetros

Tamanho da População

Número de Populações

Taxa de Reprodução

Taxa de Mutação

Page 54: GOES.UECE - SOES Especial Minicurso SBES 2009

Critério de Parada

• Número de Gerações• Qualidade da Solução • Ausência de Evolução• Tempo

Alternativas

Page 55: GOES.UECE - SOES Especial Minicurso SBES 2009

Têmpera Simulada

Page 56: GOES.UECE - SOES Especial Minicurso SBES 2009

Introdução

Simulação do processo de tratamento térmico

de têmpera de um sólido.

Aplicação a problemas de otimização, em que a

pesquisa pelo mínimo de uma função objetivo

corresponderá a procurar o valor mínimo de

energia na matéria solidificada após

tratamento térmico de têmpera.

Page 57: GOES.UECE - SOES Especial Minicurso SBES 2009

Têmpera RealX

Têmpera Simulada

Soluções viáveis

Qualidade de uma solução

Transição para uma solução vizinha

Parâmetro de controle

Número de iterações

Solução ótima global

Microestados

Energia de um Microestado

Perturbação de um Microestado

Temperatura

Tempo de arrefecimento

Microestado de energia mínima

Page 58: GOES.UECE - SOES Especial Minicurso SBES 2009

procedimento TEMPERA_SIMULADA()

s ← GerarSoluçãoInicial()

T ← T0enquanto condições de parada não for atingida faça

s’ ← EscolherRandomicamente(N(s))

se (f(s ) < f(s)) então

s ← s

senão

Aceita s’ com probabilidade e -(f(s ) - f(s))/T

fim se

Atualiza(T)

fim enquanto

fim TEMPERA_SIMULADACritério de Metrópolis

Page 59: GOES.UECE - SOES Especial Minicurso SBES 2009

Análise do Critério de Metrópolis

e -(f(s ) - f(s))/T

Quanto maior f(s ) - f(s), menor a probabilidade de aceitação

Quanto maior T, maior a probabilidade de aceitação

Page 60: GOES.UECE - SOES Especial Minicurso SBES 2009

Calibragem dos Parâmetros

Temperatura Inicial

Taxa de Resfriamento

Page 61: GOES.UECE - SOES Especial Minicurso SBES 2009

Critério de Parada

• Congelamento Número de iterações sem melhora• Número de iterações (soluções visitadas)• Qualidade da Solução• Tempo

Alternativas

Page 62: GOES.UECE - SOES Especial Minicurso SBES 2009

GRASP

Page 63: GOES.UECE - SOES Especial Minicurso SBES 2009

Introdução

Proposto por Feo e Resende (1995)

Possui duas fases1. Construcão

Encontra uma solução viável utilizando método

semiguloso (utiliza fator aleatório)

2. Busca Local

Procura o mínimo local a partir da solução obtida

na fase Construção

Page 64: GOES.UECE - SOES Especial Minicurso SBES 2009

procedimento GRASP()

enquanto condições de parada não for atingida faça

s ConstruirSolucaoGulosaRandomica()

BuscaLocal(s)

GuardarMelhorSolucaoEncontrada()

fim enquanto

fim GRASP

Page 65: GOES.UECE - SOES Especial Minicurso SBES 2009

Melhor Solução

...

...

...

...

...

......

Fase de Construção

Fase de Busca Local

Page 66: GOES.UECE - SOES Especial Minicurso SBES 2009

procedimento GRASP()

enquanto condições de parada não for atingida faça

s ConstruirSolucaoGulosaRandomica()

BuscaLocal(s)

GuardarMelhorSolucaoEncontrada()

fim enquanto

fim GRASP

Page 67: GOES.UECE - SOES Especial Minicurso SBES 2009

Fase de Construção

Inicia com lista de candidatos válidos

Reduz essa lista para uma Lista Restrita de Candidatos (RLC)

Escolhe aleatoriamente um elemento na RLC

Como ??

Page 68: GOES.UECE - SOES Especial Minicurso SBES 2009

procedimento ConstruirSolucaoGulosaRandomica()

Solução

Inicializar o conjunto dos candidatos C E

Avaliar os custos incrementais dos elementos candidatos

enquanto Solução não estiver completa faça

cmin min{c(e)|e C}

cmax max{c(e)|e C}

LRC {e C|c(e) cmin + (cmax – cmin)}

Selecionar um elemento s LRC randomicamente

Solução Solução {s}

Atualizar C

Reavaliar os custos incrementais dos candidatos

fim enquanto

retorne Solução

fim ConstruirSolucaoGulosaRandomica

Fase de Construção do GRASP

Page 69: GOES.UECE - SOES Especial Minicurso SBES 2009

Análise da LRC

LRC {e C|c(e) cmin + (cmax – cmin)}

varia de 0 a 1

Quando = 1, LRC = C

Quando = 0, LRC = {e C|c(e) cmin}

Page 70: GOES.UECE - SOES Especial Minicurso SBES 2009

Fase de Busca Local

Retorna melhor solução da vizinhança

Page 71: GOES.UECE - SOES Especial Minicurso SBES 2009

GRASP Reativo

Ajuste dinâmico do valor de de acordo com as soluções encontradas

Conjunto de valores possíveis de

Probabilidade inicial de escolha de cada é igual a 1/ n, onde n é o número de valores possíveis de

Page 72: GOES.UECE - SOES Especial Minicurso SBES 2009

NSGA-II

Page 73: GOES.UECE - SOES Especial Minicurso SBES 2009

Introdução

AG multi-objetivo desenvolvido em Deb et al. (2000)

Utiliza dois algoritmos de ordenação1. Non-dominated Sorting Algorithm

Busca por soluções próximas a Frente de Pareto

2. Crowding Distance Sorting

Busca por soluções bem distribuídas no espaço

Page 74: GOES.UECE - SOES Especial Minicurso SBES 2009

Rejeitado

Non-Dominated Sorting

Crowding Distance Sorting

pop

filhos

pop

F1F2

F3

Page 75: GOES.UECE - SOES Especial Minicurso SBES 2009

Non-dominated Sorting

Para cada solução calcula-se quantas outras soluções a dominam e quais soluções são dominadas por ela

Faz-se um ciclo no qual a cada iteração são retiradas as soluções que não são dominadas e diminui-se o contador das soluções dominadas por estas que foramretiradas

A cada ciclo, uma nova frente é criada com as soluçõesretiradas do conjunto

Page 76: GOES.UECE - SOES Especial Minicurso SBES 2009

Crowding Distance Sorting

Utiliza uma função de cálculo de distância entre soluções que estejam no mesmo front para garantir um melhor fitness àquelas que estejam em áreas menospovoadas no espaço de busca.

Para cada função objetivo as soluções com valoresextremos são classificadas como tendo distância infinita.

As outras soluções tem sua distância recalculada de acordo com uma fórmula normalizada que utiliza a diferença de valores para esta solução e as duas maispróximas a ela.

Page 77: GOES.UECE - SOES Especial Minicurso SBES 2009

Metaheurísticas Aplicadas a Problemas Complexos da Engenharia de SoftwarePARTE 03 - APLICAÇÃO DE METAHEURÍSTICAS

EM ENGENHARIA DE SOFTWARE

XXIV Simpósio Brasileiro de Banco de Dados XXIII Simpósio Brasileiro de Engenharia de Software

Fortaleza, 05 a 09 de Outubro de 2009

Page 78: GOES.UECE - SOES Especial Minicurso SBES 2009

Roteiro de Aplicações

Engenharia de Requisitos

Problema do Próximo Release (Mono-objetivo)

Problema do Próximo Release (Multi-objetivo)

Planejamento de Releases

Page 79: GOES.UECE - SOES Especial Minicurso SBES 2009

Roteiro de Aplicações

Teste de Software

Alocação de Pessoal

Priorização de Casos de Teste

Page 80: GOES.UECE - SOES Especial Minicurso SBES 2009

ATENÇÃO

Notações e formulação serão respeitadas integralmente

!

Page 81: GOES.UECE - SOES Especial Minicurso SBES 2009

Problema do Próximo Releases (Mono-Objetivo)

Fonte: Bagnall, A., Rayward-Smith, V., e Whittley, I. The Next Release Problem. Information andSoftware Technology, 43:883-890(8), 2001.

Empresas desenvolvedoras de sistemascomplexos para vários clientes precisam

determinar quais requisitos serãoincluidos no próximo release.

Demanda de vários clientes por requisitosindividuais

Requisitos possuem pré-requisitos

Clientes tem importâncias diferentes

Requisitos possuem custo

Page 82: GOES.UECE - SOES Especial Minicurso SBES 2009

Problema do Próximo Releases (Mono-Objetivo)

Problema

Selecionar um conjunto de requisitos que possam ser implementados dentro de um orçamento restrito e quesatisfaçam as demandas de clientes importantes

Page 83: GOES.UECE - SOES Especial Minicurso SBES 2009

Formulação

Problema do Próximo Releases (Mono-Objetivo)

R é o conjunto de requisitos

Cada cliente, i, possui um conjunto de requisitos, Ri R, e um peso, wi, o qualindica a importância desse clientes para a empresa

Associado com o conjunto R está um grafo G = (R,E), direcionado e acíclico, onde

(r,r´) E sss r é um pré-requisito de r´

Se a empresa decide satisfazer os requisitos do cliente i, ela deve tambémdesenvolver não somente Ri, mas também, parents(Ri), onde

parents(Ri) = {r R | (r,r´) E , r´ Ri}

Page 84: GOES.UECE - SOES Especial Minicurso SBES 2009

Formulação

Problema do Próximo Releases (Mono-Objetivo)

R*i = Ri parents(Ri ) contêm todos os requisitos que devem ser implementados para satisfazer o cliente i.

Cada r possui um custo associado, cost(r) Z+

Para um subconjunto de requisitos R´, temos que cost (R´) = ({cost(r)|r R´}

Assumindo que a empresa tem n clientes, a tarefa é encontrar um subconjuntode clientes, S {1,2,3,…,n}, cujo requisitos serão satisfeitos

Page 85: GOES.UECE - SOES Especial Minicurso SBES 2009

Problema do Próximo Releases (Mono-Objetivo)

Si

iwMaximizar

BRcostSi

i * a sujeito

Maximização da Importância

Restrição de Custo

Page 86: GOES.UECE - SOES Especial Minicurso SBES 2009

Problema do Próximo Releases (Mono-Objetivo)

Foram avaliados vários algoritmos (Método Exato, GRASP, Busca Local, Subidaem Encosta e Têmpera Simulada) sobre problemas gerados aleatoriamentecontendo entre 100 clientes e 140 tarefas e 500 clientes e 3250 tarefas.

No menor dos problemas, o Método Exato se mostrou satisfatório. Enquanto nos outros, a Têmpera Simulada encontrou as melhores soluções com baixo custo computacional, obtendo em médio resultados somente 1.5% piores que os ótimos conhecidos.

Resultados

Page 87: GOES.UECE - SOES Especial Minicurso SBES 2009

Problema do Próximo Releases

(Multi-Objetivo)

Fonte: Zhang, Y., Harman, M., e Mansouri, S. A. The multi-objective next release problem. Anais

do IX Annual Conference on Genetic and Evolutionary Computation. 2007.

Extensão da formulação anterior

Considera o custo como objetivo, e não como restrição

Page 88: GOES.UECE - SOES Especial Minicurso SBES 2009

Problema do Próximo Releases (Multi-Objetivo)

Problema

Selecionar um conjunto de requisitos que possammaximizar o valor total e minimizar o custo requerido.

Page 89: GOES.UECE - SOES Especial Minicurso SBES 2009

Formulação

Problema do Próximo Releases (Multi-Objetivo)

Conjunto de clientes, C = {c1, . . .,cm} e conjunto de requisitos, R = {r1, . . .,rm} todos independentes

Cada requisito possui um certo custo, dado por Cost = {cost1, . . .,costm}

Cada cliente têm uma importância, dado por Weight = {weight1, . . .,weightm}

Cada cliente indica um valor para cada requisito, dado por value(ri,cj), ondevalue(ri,cj) > 0 se possui esse requisito, ou value(ri,cj) = 0, ao contrário.

A importância total de um requisito ri é dada por scorei= j=1m value(ri,cj)

A tarefa é encontrar um vetor de decisão x = {x1, . . .,xn} {0,1}, onde 1 indicaque o requisito foi selecionado, e 0 que não.

Page 90: GOES.UECE - SOES Especial Minicurso SBES 2009

Problema do Próximo Releases (Multi-Objetivo)

i

n

i

i xscore1

Maximizar

i

n

i

i xcost1

-Maximizar

Maximização da Importância

Minimização do Custo

Page 91: GOES.UECE - SOES Especial Minicurso SBES 2009

Problema do Próximo Releases (Multi-Objetivo)

Foram avaliados vários algoritmos (NSGA-II, Algoritmo Genético de Pareto (Pareto GA), Algoritmo Genético Mono-Objetivo, Busca Randômica) sobre doisproblemas de tamanhos variados.

A metaheurística NSGA-II obteve os melhores resultados em todos os casos.

Quando maior o conjunto de teste, maior foi a diferença de desempenho entre o NSGA-II e o Pareto GA, que obteve o segundo melhor resultado nos experimentos.

Resultados

Page 92: GOES.UECE - SOES Especial Minicurso SBES 2009

Planejamento de Releases

Fonte: Colares, F., Souza, J., Carmo, R., Pádua, C. e Mateus, G. A New Approach to the Software

Release Planning. Anais do XXIII Simpósio Brasileiro de Engenharia de Software. 2009.

Extensão da formulação anterior

Trata a dependência entre requisitos e risco

Planeja todos os releases, e não somente o próximo

Aspectos Considerados

• Satisfação dos Clientes

• Priorização de Requisitos (pelo risco)

• Interdependência entre Requisitos

• Recursos Limitados

Page 93: GOES.UECE - SOES Especial Minicurso SBES 2009

Planejamento de Releases

Problema

Distribuir um conjunto de requisitos entre diversos releases com os objetivos de aumentar a satisfação dos clientes e diminuir os riscos do projeto, respeitando a quantidade de recursos disponíveis em cada release e a interdependência entre requisitos.

Page 94: GOES.UECE - SOES Especial Minicurso SBES 2009

Formulação

Planejamento de Releases

Conjunto de Requisitos, R = {r1, r2, ..., r|R|}

Conjunto de Clientes, S = {s1, s2,..., s|S|}

Conjunto de Releases, K = {k1, k2,..., k|K|}

Conjunto de Recursos, P = {p1, p2, ..., p|P|}

Page 95: GOES.UECE - SOES Especial Minicurso SBES 2009

Formulação

Cada cliente possui um peso, Weight = {weight1, . . .,weight|S|}

Cada cliente tem uma prioridade para cada requisito, prioritys,r

Cada requisito tem um custo relativo a cada recurso, efforti

Planejamento de Releases

Page 96: GOES.UECE - SOES Especial Minicurso SBES 2009

Formulação

Há um valor disponível para cada recurso em cada iteração, Available_resources = {available_resources1, . . .,available_resources iority|K|}

Cada requisito tem um risco associado, Risk = {risk1, . . .,risk|R|}

Deseja-se calcular o vetor x = {x1, ..., r|R|}, onde cada xi varia de 1 até |K|, indicando em qual release o requisito i será implementado.

Planejamento de Releases

Page 97: GOES.UECE - SOES Especial Minicurso SBES 2009

Ss Rr

i

s

rs

s xKprioritytotal

priorityweight

_Maximizar

,

Rr

ir xriskMinimizar

Rr

ir Kiiresourcesavailableeffort 1|,_ a Sujeito

)(, jiji rrxx

Maximização da Satisfação

Minimização do Risco

Restrição de Recursos

Restrição de Precedência

Planejamento de Releases

Page 98: GOES.UECE - SOES Especial Minicurso SBES 2009

A metaheurística NSGA-II foi avaliada sobre um problema com 19 requisitos, 5 releases, 5 clientes e 3 recursos diferentes.

A metaheurística NSGA-II obteve melhores resultado que uma busca aleatória.

Comparado com os resultados gerados por 5 profissionais, o NSGA-II os superou significantemente.

Resultados

Planejamento de Releases

Page 99: GOES.UECE - SOES Especial Minicurso SBES 2009

Alocação de Pessoal

Fonte: Burdett, G. e Li, R. Quantitative Approach to the Formation of Workgroups. Anais do ACM

SIGCPR Conference on Supporting Teams, Groups, and Learning inside and Outside

the IS Function: Reinventing IS. 1995

Alocação de pessoas para a execução de uma determinada conjunto de

tarefas

Considera as preferências e as habilidades de cada pessoa

Page 100: GOES.UECE - SOES Especial Minicurso SBES 2009

Alocação de Pessoal

Problema

Alocar um conjunto de pessoas a um conjunto de tarefas minimizando o custo salarial, priorizando as habilidadesde cada pessoa e respeitando suas preferências.

Page 101: GOES.UECE - SOES Especial Minicurso SBES 2009

Alocação de Pessoal

P

p

a

N

a

app DurASal1 1

Minimizar

N

a

P

p

P

p

ppapappp

N

a

P

p

apmpa

N

a

P

p

appa

P

p

S

s

N

a

sapps

XAAP

APAP

SIAR

1 11 12

212121

1 11 1

1 1 1

Page 102: GOES.UECE - SOES Especial Minicurso SBES 2009

Formulação

Alocação de Pessoal

Duração da Atividade a, Dura

Tempo de finalização da Atividade a, FTa

Número de instâncias da Habilidade s requeridas para a Atividade a, Isa

Peso da performance na função objetivo,

Page 103: GOES.UECE - SOES Especial Minicurso SBES 2009

Formulação

Alocação de Pessoal

Peso das preferências na função objetiva,

Número total de Atividades, N

Número total de Pessoas, P

Preferência da gerência pela Pessoa P na Atividade a, Pma

Preferência da Pessoa p pela Atividade a, Ppa

Page 104: GOES.UECE - SOES Especial Minicurso SBES 2009

Formulação

Alocação de Pessoal

A Pessoa 1 prefere trabalhar com a Pessoa 2, Pp1p2

Ranking da Pessoa p na Habilidade s, Rps

Custo salarial da Pessoa p por unidade de tempo, Salp

Importância da Habilidade s, SIs

Tempo de inicialização da Atividade a, STa

Page 105: GOES.UECE - SOES Especial Minicurso SBES 2009

Onde ...

Alocação de Pessoal

Aap = 1 se a Pessoa p for alocada para a Atividade a, e 0, caso contrário

Aap1 = 1 se a Pessoa p1 for alocada para a Atividade a, e 0, caso contrário

Aap2 = 1 se a Pessoa p2 for alocada para a Atividade a, e 0, caso contrário

Page 106: GOES.UECE - SOES Especial Minicurso SBES 2009

Onde ...

Alocação de Pessoal

Das = 1 se a Atividade a demanda a habilidade s, e 0, caso contrário

Xp1p2 = 1 se a Pessoa p1 é diferente da pessoa p2, e 0, caso contrário

Page 107: GOES.UECE - SOES Especial Minicurso SBES 2009

Alocação de Pessoal

P

p

a

N

a

app DurASal1 1

Minimizar

N

a

P

p

P

p

ppapappp

N

a

P

p

apmpa

N

a

P

p

appa

P

p

S

s

N

a

sapps

XAAP

APAP

SIAR

1 11 12

212121

1 11 1

1 1 1

Custo Salarial

Page 108: GOES.UECE - SOES Especial Minicurso SBES 2009

Alocação de Pessoal

P

p

a

N

a

app DurASal1 1

Minimizar

N

a

P

p

P

p

ppapappp

N

a

P

p

apmpa

N

a

P

p

appa

P

p

S

s

N

a

sapps

XAAP

APAP

SIAR

1 11 12

212121

1 11 1

1 1 1

Priorização das Habilidades

Page 109: GOES.UECE - SOES Especial Minicurso SBES 2009

Alocação de Pessoal

P

p

a

N

a

app DurASal1 1

Minimizar

N

a

P

p

P

p

ppapappp

N

a

P

p

apmpa

N

a

P

p

appa

P

p

S

s

N

a

sapps

XAAP

APAP

SIAR

1 11 12

212121

1 11 1

1 1 1

Priorização das Preferências por

Atividades

Page 110: GOES.UECE - SOES Especial Minicurso SBES 2009

Alocação de Pessoal

P

p

a

N

a

app DurASal1 1

Minimizar

N

a

P

p

P

p

ppapappp

N

a

P

p

apmpa

N

a

P

p

appa

P

p

S

s

N

a

sapps

XAAP

APAP

SIAR

1 11 12

212121

1 11 1

1 1 1

Priorização das Preferências por

Pessoas

Page 111: GOES.UECE - SOES Especial Minicurso SBES 2009

Alocação de Pessoal

A metaheurística Têmpera Simulada foi avaliada sobre dados geradosaleatoriamento contendo 10, 20, 50 e 100 pessoas, onde foram selecionadasequipes de 5 ou 10 pessoas.

A solução ótima foi encontrado pela Têmpera Simulada para equipes de 5 pessoas de um total de 10, 20, 50 e 100 pessoas, com baixo custocomputacional.

Para equipes de 10 pessoas, como as soluções ótimas não eram conhecidas, os resultados obtidos pela Têmpera Simulada não puderam ser avaliados.

Resultados

Page 112: GOES.UECE - SOES Especial Minicurso SBES 2009

Priorização de Casos de Teste

Fonte: Maia, C. , Carmo, R., Campos, G. e SOUZA, J. A Reactive GRASP Approach for Regression

Test Case Prioritization. Anais do XL Simpósio Brasileiro de Pesquisa Operacional. 2008.

Modificações em um software pode causar problemas em outras funcionalidades

Re-testar todo o software pode ser inviável

A ordenação de casos de teste permite a seleção de um subconjunto destes

Um caso de teste é avaliado pela quantidade de erros que ele encontra

Calcular esse valor é impossível sem executar o caso de teste

Métricas de cobertura (de bloco, de linhas de comando e de decisão) são utilizadas

Page 113: GOES.UECE - SOES Especial Minicurso SBES 2009

Priorização de Casos de Teste

Problema

Ordenar os casos de teste de forma que somente um subconjunto de casos de teste possa ser executado, com somente pequena, ou nenhuma, perda de efetividade.

Page 114: GOES.UECE - SOES Especial Minicurso SBES 2009

Formulação

Suíte de testes, T, com n casos de teste que cobre um conjunto B de mblocos de código

Seja TBi o primeiro caso de teste na ordem T´, de T, que cobre o bloco i.

A métrica APBC (Average Percentage Block Coverage) para a ordem T´ é dada por 1 – (TB1 + TB2 + ... + TBm)/nm + 1/2n

As métricas APDC (Average Percentage Decision Coverage) e APSC (Average Percentage Statement Coverage) são calculadas de forma similar

Priorização de Casos de Teste

Page 115: GOES.UECE - SOES Especial Minicurso SBES 2009

Entendendo a Métrica APBC

Priorização de Casos de Teste

1 2 3 4 5 6 7 8 9 10

A X X

B X X X X

C X X X X X X

D X X

E X X X XCas

os

de

Test

e

Blocos

0102030405060708090

100

0,0 0,2 0,4 0,6 0,8 1,0

Per

cen

tual

de

Co

ber

tura

de

Blo

cos

Fração do Suíte de Teste

Ordenação T1: A – B – C – D – E

APBC = 46%

Page 116: GOES.UECE - SOES Especial Minicurso SBES 2009

Entendendo a Métrica APBC

Priorização de Casos de Teste

1 2 3 4 5 6 7 8 9 10

A X X

B X X X X

C X X X X X X

D X X

E X X X XCas

os

de

Test

e

Blocos

0102030405060708090

100

0,0 0,2 0,4 0,6 0,8 1,0

Per

cen

tual

de

Co

ber

tura

de

Blo

cos

Fração do Suíte de Teste

Ordenação T1: C – E – B – A – D

APBC = 82%

Page 117: GOES.UECE - SOES Especial Minicurso SBES 2009

Priorização de Casos de Teste

APBCMaximizar

Page 118: GOES.UECE - SOES Especial Minicurso SBES 2009

Priorização de Casos de Teste

A metaheurística GRASP Reativo foi comparada com os métodos Guloso, GulosoAdicional e Algoritmo Genético. Foram usados 5 programas de tamanhosvariados, onde foram avaliadas as métricas APBC, APDC e APSC.

O algoritmo Guloso Adicional teve o melhor desempenho de todos, superando significantemente o método Guloso e Algoritmo Genético, que surpreendentemente obteve a pior performance de todos.

O GRASP Reactivo obteve o segundo melhor resultado, gerando resultados insignificantemente piores do que o Guloso Adicional.

Não foram encontradas diferenças de performance nas diferentes métricas.

Resultados

Page 119: GOES.UECE - SOES Especial Minicurso SBES 2009

Metaheurísticas Aplicadas a Problemas Complexos da Engenharia de Software

PARTE 04 - CONSIDERAÇÕES FINAIS

XXIV Simpósio Brasileiro de Banco de Dados XXIII Simpósio Brasileiro de Engenharia de Software

Fortaleza, 05 a 09 de Outubro de 2009

Page 120: GOES.UECE - SOES Especial Minicurso SBES 2009

A Otimização em Engenharia de Software (Search-based Software Engineering) se apresenta como novo ramo de pesquisa daEngenharia de Software.

Tem alcançado um crescente interesse mundial (ver slide a seguir), e gerado resultados relevantes rapidamente, especialmente porcombinar conhecimentos consolidados.

Muito ainda precisa ser feito no sentido de popularização desses resultados fora do meio acadêmico.

Considerações Finais

Page 121: GOES.UECE - SOES Especial Minicurso SBES 2009

0

10

20

30

40

50

60

70

80

90

100

Histórico de Publicações em SBSE

FONTE: SEBASE

Page 122: GOES.UECE - SOES Especial Minicurso SBES 2009

Pesquisa em Otimização em Engenharia de Software

Novos Problemas

Geração de novas formulações para problemas da engenharia de software. Extensão de formulações existentes . Tratamento multi-objetivo para formulações mono-objetivas.

Novas Abordagens

Aplicações de novos métodos de busca em problemas existentes. Estudos comparativos de técnicas de busca.

Competitividade Humana

Análise da competitividade dos resultados gerados automaticamente em comparação com resultados produzidos por humanos.

Page 123: GOES.UECE - SOES Especial Minicurso SBES 2009

Pesquisa em Otimização em Engenharia de Software

Análise de Sensibilidade

Avaliação da influência de variáveis na qualidade de resultados gerados e na dificuldade de resolver certos problemas.

Otimização Interativa

Estratégias de incorporação do julgamento humano durante o processo de otimização.

Hibridização

Combinação de métodos na geração de abordagens mais eficientes.

Page 124: GOES.UECE - SOES Especial Minicurso SBES 2009

Cooperação

O Grupo de Otimização em Engenharia de Software (GOES.UECE) está a disposição.

Divulgação/Aprendizado

2nd International Symposium on Search Based Software Engineering, em Setembro de 2010 na Cidade de Benevento, Itália

1o Workshop Brasileiro de Otimização em Engenharia de Software, em conjunto com o SBES´2010 (a confirmar)

Oportunidades

Page 125: GOES.UECE - SOES Especial Minicurso SBES 2009

Chegamos ao fim!Obrigado pelo tempo e pela atenção.

Page 126: GOES.UECE - SOES Especial Minicurso SBES 2009

Chegamos ao fim!Obrigado pelo tempo e pela atenção.

Page 127: GOES.UECE - SOES Especial Minicurso SBES 2009

Universidade Estadual do Ceará

GOES.UECE - Grupo de Otimização em Engenharia de Software

http://goes.comp.uece.br/

XXIV Simpósio Brasileiro de Banco de Dados XXIII Simpósio Brasileiro de Engenharia de Software

Fortaleza, 05 a 09 de Outubro de 2009

[email protected]

Metaheurísticas Aplicadas a Problemas Complexos da Engenharia de Software