Inteligência Computacional Aplicada a Engenharia de Software



Documentos relacionados
IA Colônia de Formigas. Prof. Ricardo Britto DIE-UFPI

Inteligência de Enxame: ACO

A Otimização Colônia de Formigas

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

Otimização por Colônia de Formigas (ACO)

Sistemas Auto-organizáveis BC0005

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH)

Algoritmos Genéticos

INF 1771 Inteligência Artificial

O que é? Swarm Intelligence. Qual a origem? Cardume. Qualquer tentativa de projetar algoritmos ou técnicas de resolução distribuída de

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Algoritmos Genéticos (GA s)

Complemento IV Introdução aos Algoritmos Genéticos

SUMÁRIO. Introdução... 3

Computação BioInspirada

APLICAÇÃO DA METAHEURÍSTICA COLÔNIA DE FORMIGAS AO PROBLEMA DE ROTEAMENTO DE VEÍCULOS

APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS

IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI

Inteligência Computacional: resolvendo problemas difíceis da vida real

Tabela de roteamento

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Resolução do Problema de Roteamento de Veículos com Frota Heterogênea via GRASP e Busca Tabu.

Minicurso SBSE 2012:

Meta-heurísticas. Métodos Heurísticos José António Oliveira meta-heurísticas

Sistema Inteligente Não-Linear de Apoio à Aprendizagem 1 Rangel RIGO, Ana Paula Laboissière AMBRÓSIO

Complexidade de Algoritmos. Edson Prestes

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Guia de Atividades para Introdução do Powersim no Processo Ensinoaprendizagem de Equações Diferenciais Ordinárias

BCC202 - Estrutura de Dados I

Gerenciamento de Projeto: Criando o Termo de Abertura II. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Algoritmos e Estrutura de Dados III. Árvores

Gestão Estratégica de Marketing

Complexidade de Algoritmos. Edson Prestes

A Otimização Nuvem de Partículas (particle swarm)

Figura 1.1: Exemplo de links patrocinados no Google

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE

Pós-Graduação em Engenharia Elétrica Inteligência Artificial

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Simulação Transiente

Analise filogenética baseada em alinhamento de domínios

Engenharia de Software I

Como melhorar a Qualidade de Software através s de testes e nua. Cláudio Antônio de Araújo 22/11/2008

Inteligência Artificial

3 Metodologia para Segmentação do Mercado Bancário

Tabela de símbolos: tabelas de espalhamento

1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3.

REDES BAYESIANAS. Palavras-chave: Redes bayesianas, Grafo, Estrutura de Dados, Inteligência artificial.

XX Seminário Nacional de Distribuição de Energia Elétrica SENDI a 26 de outubro Rio de Janeiro - RJ - Brasil

Análise e visualização de dados utilizando redes neurais artificiais auto-organizáveis

Lista de Exercícios Tratamento de Incerteza baseado em Probabilidade

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Arquitetura de Rede de Computadores

Organizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU

Aula 03 Custos de um algoritmo e funções de complexidade

Heurísticas para o Problema de Sequenciamento de Carros em Linhas de Montagem. Daniel Brasil, Thiago Ferreira de Noronha, Caroline Rocha

Análise e Complexidade de Algoritmos

Utilização do SOLVER do EXCEL

Conceitos Básicos da Venda B2B

LISTA DE EXEMPLOS - PROBABILIDADE

ALGORITMOS GENÉTICOS

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

Respostas dos Exercícios Cap. 2 Russell & Norvig

Organizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU

16.36: Engenharia de Sistemas de Comunicação Aula 14: Códigos cíclicos e detecção de erros

Microeconomia. Prof.: Antonio Carlos Assumpção

MLP (Multi Layer Perceptron)

Matemática Financeira Módulo 2

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

2 Atualidade de uma base de dados

A apresentação através de fluxos lógicos consegue mostrar mal entendidos e pontos que são controversos.

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

Backup. Permitir a recuperação de sistemas de arquivo inteiros de uma só vez. Backup é somente uma cópia idêntica de todos os dados do computador?

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

4 Implementação e Resultados Experimentais

Ciência de Computadores Sistemas Distribuídos e Móveis

Memória Cache. Prof. Leonardo Barreto Campos 1

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

MANUAL DO USUÁRIO. TOOLBOX SIA.

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti

Solitaire Interglobal

Pesquisa Operacional Programação em Redes

Manejo Florestal Sustentável: Dificuldade Computacional e Otimização de Processos

Você sabe a regra de três?

Busca em Espaço de Estados

Pesquisa Operacional

POLÍTICA DE GESTÃO DE RISCO - PGR

SLAG - Resolvendo o Problema do Caixeiro Viajante Utilizando Algoritmos Genéticos

Unidade 7: Panes no Excel

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Inteligência de Enxame: PSO

6 Trabalhos Relacionados

Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha

Transcrição:

Inteligência Computacional Aplicada a Engenharia de Software Estudo de caso III Prof. Ricardo de Sousa Britto rbritto@ufpi.edu.br

Introdução Em alguns ambientes industriais, pode ser necessário priorizar os casos de teste existentes. Isto permite uma execução seletiva, a qual usa como base os casos de teste de maior importância. É necessário criar uma ordem de execução que otimize a característica mais importante para o teste em um determinado momento: cobertura de código; ataque aos casos de uso críticos; Execução dos casos de teste em menor tempo e com menor custo.

Abordagem proposta Priorização de casos de teste baseada em requisitos. Três etapas: Avaliar as classes que compõem os requisitos por meio de um sistema de inferência fuzzy de Mamdani; Determinar a criticidade dos casos de teste por meio das classes cobertas por cada um deles; Selecionar um subconjunto priorizado desses casos de teste com base no valor calculado no passo anterior e no tempo de execução de cada um, respeitando a restrição de tempo para realização dos testes.

Sistema de Inferência Fuzzy Duas variáveis de entrada: Grau de importância das classes; Acoplamento entre as classes; Uma variável de saída: Criticidade da classe

Calculo da criticidade dos casos de teste Calculado para cada caso de teste por meio da fórmula: 5

Seleção de subconjunto 6

Colônia de Formigas Otimização colônia de formigas é uma metaheurística baseada em população e inspirada no comportamento forrageiro das formigas. Muitas espécies de formigas são quase cegas. A comunicação entre as formigas é realizada através de uma substância química denominada de feromônio. Em algumas espécies, o feromônio é usado para criar caminhos (trilhas de formigas).

Introdução

Introdução

Introdução

Introdução Ao caminhar, as formigas depositam no chão o feromônio, formando, deste modo, uma trilha de feromônios. Quando elas têm que escolher um caminho, escolhem, com maior probabilidade, o caminho com maior quantidade de feromônio. A trilha ajuda a formiga a achar o caminho de volta e as outras formigas a encontrar a fonte de alimentos.

O Experimento da Ponte Binária Experimento realizado por Deneubourg et al., 1990, para estudar o comportamento forrageiro das formigas.

O Experimento da Ponte Binária No inicio: As formigas são deixadas livres para escolher o caminho. Não há feromônio ainda.

O Experimento da Ponte Binária As formigas convergem para um dos caminhos com igual probabilidade. Devido a flutuações aleatórias, uma das pontes terá mais feromônio e atrairá as formigas com maior probabilidade.

O Experimento da Ponte Binária Usando pontes de tamanhos diferentes, as formigas convergem para a ponte mais curta. Uma formiga percorre ida e volta na ponte curta no mesmo tempo que outra formiga realiza apenas o percurso de ida na ponte longa. Logo, será depositado mais feromônio na ponte curta do que na longa.

Algoritmo Colônia de Formigas É um algoritmo heurístico construtivo que utiliza o comportamento forrageiro de formigas artificiais para se encontrar a solução de um problema. Elas constroem soluções de forma probabilística utilizando duas informações: A trilha de feromônio (artificial) que muda dinamicamente durante a execução do programa de modo a refletir a experiência já adquirida durante a busca; A informação heurística específica do problema a ser resolvido.

Ant System Aplicado ao PCV Ant System foi o primeiro algoritmo criando com base em colônia de formigas reais. Para melhor entendimento deste algoritmo, vamos apresentá-lo no contexto do problema do caixeiro viajante.

Ant System Aplicado ao PCV Matriz de Distância do PCV Cidades do PCV

Inicialização Cada formiga irá construir uma solução movendo-se de uma cidade para outra. No ínicio, cada formiga é colocada em uma cidade diferente (ou colocada aleatoriamente).

Construção da Solução Começando de uma cidade i, a formiga move-se escolhendo probabilisticamente a cidade vizinha j (entre os vizinhos factíveis).

Probabilidade de Escolha A probabilidade da formiga k que está na cidade i de escolher a cidade j é dada pela regra: é feromônio associado a aresta (i,j). α e β são parâmetros para determinar a influência do feromônio e da informação heurística. é a vizinhança factível da formiga k (o conjunto das cidades ainda não visitadas pela formiga k). A escolha é feita de forma similar à roleta viciada dos GA.

A Informação Heurística do PCV Associada a aresta (i,j) existe um valor heurístico η ij dado por: que representa a atratividade da formiga visitar a cidade i depois de visitar a cidade j. O valor η ij é inversamente proporcional a distância d ij entre as cidades i e j.

Executando o Algoritmo Passo 1

Executando o Algoritmo Passo 2

Executando o Algoritmo Passo 3

Executando o Algoritmo Passo 4

Executando o Algoritmo Término da Primeira Iteração

Implementando o Ant System Caminho AntSystem_PCV(int iteracoes, int num_formigas, int tam_caminho){ Formigas populacao(num_formigas); Int t, k, L, L*=1000000000000; Caminho S*; for(t=0; t < iteracoes; t++){ for(k=0; k < num_formigas; k++){ }! while(populacao.formiga[k].getsizesk()< tam_caminho){! populacao.formiga[k].selecionacidade(); } if(populacao.formiga[k].calculalk()< L*){! S = populacao.formiga[k].getsk();! L = populacao.formiga[k].getlk(); } } populacao.atualizaferomonio(); } return S

Atualização do Feromônio No feromônio τ ij associado a aresta (i,j) ocorre dois eventos: A evaporação Evita que o feromônio acumulado cresça indefinidamente; Permite esquecer pobres decisões do passado da busca. O depósito de feromônio de todas as formigas que passaram sobre (i,j).

Atualização do Feromônio O feromônio τ ij associado a aresta (i,j) é atualizado pelo fórmula: onde 0 < ρ 1 é a taxa de evaporação de feromônio.

Atualização do Feromônio Depois que todas as formigas construíram suas viagens, o feromônio é atualizado. Onde Q é uma constante.

Colônia de formigas aplicado ao problema da mochila O estudo de caso descrito é similar ao problema da mochila. Tenho uma janela de tempo para executar um dado conjunto priorizado de casos de teste. Deve escolher o subconjunto de modo a não ferir a restrição de tempo imposta 32

Colônia de formigas aplicado ao problema da mochila CT1 CT2 T CT3 CT4 33

Colônia de formigas aplicado ao problema da mochila Com uma pequena alteração na modelagem do algoritmo original, que é direcionado para o TSP, podemos aplicar o ACO para o problema da mochila binário. Quanto mais ferômonio estiver em um elemento, maior a chance dele ser selecionado. Isso significa que o feromônio é depositado nos nós e Não nas arestas, como no TSP. 34

Colônia de formigas aplicado ao problema da mochila Outra diferença reside no processo de construção de uma solução. Primeiro se determina o tamanho do espaço já ocupado pelos elementos já selecionados. Posteriormente seleciona-se, de acordo com a probabilidade de escolha, um dos elementos restantes que não ultrapasse a capacidade da mochila 35

Colônia de formigas aplicado ao problema da mochila Por fim, existe uma diferença na equação que determina a probabilidade de escolha do próximo elemento a ser inserido na solução. Onde no denominador entram apenas os valores referentes aos elementos que ainda podem ser escolhidos. 36

Atividade Ler o artigo abaixo: Shi, Hanxiao. Solution to 0/1 Knapsack Problem Based on Improved Ant Colony Algorithm. Proceedings of the 2006 IEEE International Conference on Information Acquisition, 2006. 37