A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Junho 2005Seminários de Informática – Pesquisa e Optimização 1 Seminários de Informática Pesquisa e Optimização Programação por Restrições Pedro Barahona.

Apresentações semelhantes


Apresentação em tema: "1 Junho 2005Seminários de Informática – Pesquisa e Optimização 1 Seminários de Informática Pesquisa e Optimização Programação por Restrições Pedro Barahona."— Transcrição da apresentação:

1 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 1 Seminários de Informática Pesquisa e Optimização Programação por Restrições Pedro Barahona Junho de 2005

2 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 2 Pesquisa e Optimização Alguns exemplos de Problemas de Decisão que envolvem pesquisa e optimização: Testes em circuitos digitais (para detecção de avarias) Gestão de Redes de Telecomunicações Sequenciação de Tarefas (Scheduling) Gestão de Frotas Gestão da Produção Geração de Horários Colocação ou preenchimento –2D: corte de peças (tecido, tábuas, etc...) –3D: prenchimento de contentores

3 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 3 Problemas de Pesquisa e Optimização O que têm em comum estas aplicações: Muitas soluções potenciais Restrições entre as variáveis do problema Nenhuma forma de as obter de uma forma óbvia Recurso: pesquisa das várias soluções Espaço de pesquisa ENORME Necessidade de pesquisa eficiente

4 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 4 Exemplo: Circuitos Digitais Objectivo: Verificar se a gate G2 está stuck-at-1. Possibilidades: Valores 0/1 nas várias entradas Restrições (binárias): Exemplo: F = nand(B,C) A C D B E F G H I G1 G2 G3 G4 G5 Espaço de Pesquisa: As 4 entradas, A, B, C e D, podem tomar valores 0 ou 1, Existem 2*2*2*2 = 2 4 soluções potenciais Se o circuito tiver n entradas há que testar 2 n possibilidades!

5 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 5 Exemplo: Gestão de Redes (de Telecomunicações) Espaço de Pesquisa: Os m troços (m=17 neste caso) com 0 a C pacotes Neste caso 6*5*8*9 *....* 7*10*8*3 possibilidades Em geral, com n nós, existem até n*(n-1)/2 troços. Se assumirmos a mesma capacidade c em todos os troços temos c n(n-1)/2 possibilidades. Objectivo: Enviar k pacotes de A a Z. Possibilidades: 0 a C pacotes em cada troço C- capacidade do troço Restrições: Não se perdem pacotes AE + BE + CE = EH + EZ A B C D E F G Z H

6 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 6 Exemplo: Escalonamento de tarefas Espaço de Pesquisa: As k tarefas têm duração inteira e começam entre os tempos 0 e T. Em geral teremos de considerar T*T*... * T = T k possibilidades. Objectivo (job-shop): Executar k tarefas até um tempo T. Possibilidades: Cada tarefa começa entre 0 e T Restrições (binárias): Precedência de algumas tarefas; J 12 >= J 11 +D 11 Não sobreposição de tarefas J 22 >= J 12 +D 12 ou J 12 >= J 22 +D 22

7 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 7 Exemplo: Gestão de Produção e de Frotas Problemas semelhantes aos anteriores, mas em que se devem considerar algumas restrições adicionais Gestão de Produção –Atribuir tarefas a trabalhadores /máquinas –Capacidade máxima de cada trabalhador –Possibilidades da tarefa requerer vários trabalhadores –... Gestão de Frotas –As tarefas têm um ponto de partida e de chegada –Existem capacidades máximas para os camiões –...

8 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 8 Exemplo: Geração de Horários Para as várias aulas necessárias de um conjunto de cursos atribuir-lhes professores e salas de forma a que se satisfaçam algumas restrições obrigatórias –2 aulas com o mesmo professor não podem ser leccionadas ao mesmo tempo –2 aulas não podem ser leccionadas na mesma sala Há ainda que tentar satisfazer restrições opcionais tais como –Evitar furos –Evitar aulas isoladas –Teóricas de manhã e Práticas à tarde –....

9 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 9 Exemplo: Colocação ou preenchimento Objectivo: Colocar os vários rectângulos num rectângulo maior (2D). Colocar os vários paralelipípedos num paralelipípedo maior (3D) Restrições: –Não sobreposição dos rectângulos i e j, isto é Xi > Xj + aj (i à direita de j) ou Xj > Xi + ai (i à esquerda de j) ou Yi > Yj + bj (i acima de j) ou Yj > Yi + bi (i abaixo de j) ou Espaço de pesquisa –Canto inferior esquerdo de cada uma das n peças em qualquer das k = l*h posições. –O número de possibilidades é pois de k*k*...*k = k n

10 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 10 Relevância destes Problemas Custos e Produção numa grande empresa –2 000 trabalhadores a /ano ( /mês) –Custos pessoal de /ano –Outros Custos de /ano –Produção de /ano/trabalhador –Receitas totais de /ano –Lucro de /ano Melhoria de Produtividade –Redução de Pessoal Mesma Produção com menos trabalhadores –Aumento da Produção Mesmos trabalhadores, mas produzindo mais –Cenários intermédios

11 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 11 Relevância destes Problemas Cenário: Aumento de eficiência de 5% Melhoria de Produtividade –Redução de Pessoal Menos Aumento dos Lucros de 25% (20 M para 25 M) –Aumento da Produção Produção de por trabalhador (em vez de 70 K) Lucros aumentam 2000 * = 7 M Aumento de Lucros de 35% –Cenários intermédios

12 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 12 Relevância destes Problemas Outros custos envolvidos - Material Cenário: Melhoria de Eficiência de 5% Gestão de Frotas (1) –1000 camiões TIR * cada TIR –Poupança de 50 camiões: Gestão de Frotas (2) –100 aviões * cada avião –Poupança de 5 aviões: Gestão de Redes de Telecomunicações –200 antenas de telemóveis * por antena –Poupança de 10 antenas:

13 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 13 Integração em Sistemas Informáticos Todos os problemas envolvem a análise dos dados de uma empresa –Sistemas de Informação Sofisticados –Bases de Dados + DataWarehousing Sistemas de Apoio à Decisão –Integrar algoritmos nos sistemas de Informação –Adaptação (parametrização) de algoritmos existentes Papel de um Engenheiro Informático –Integrar informação para usar Produtos existentes –Melhorar as soluções existentes Melhores Modelos Melhores Algoritmos

14 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 14 Formalização de Problemas de Decisão Um problema de satisfação de restrições é um triplo, em que V é um conjunto de variáveis D é o domínio das variáveis R é o conjunto de restrições entre as variáveis Um problema de optimização é um quádruplo, em que V, D e R são como os anteriores F é uma função das variáveis que se pretende optimizar Para ilustrar os algoritmos de resolução destes problemas e a sua complexidade podemos enunciar problemas teóricos cuja resolução segue os mesmos métodos de problemas mais realistas.

15 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 15 Exemplos simples –N - rainhas Colocar n rainhas num tabuleiro de n*n casas de forma a que nenhumas rainhas se ataquem mutuamente (i.e. estejam na mesma linha, coluna ou diagonal). –Criptografia Atribuir números a letras (números diferentes a letras diferentes) de forma a que as operações indicadas sejam válidas Exemplos de Problemas (Satisfação)

16 1 Junho 2005Seminários de Informática – Pesquisa e Optimização rainhas –Variáveis: V: {Q1, Q2, Q3, Q4} –Domínio D : {1,2,3,4} Exemplos de Problemas (Satisfação) –Restrições R: % Colunas Diferentes: Q1 Q2, Q1 Q3, Q1 Q4, Q2 Q3, Q2 Q4, Q3 Q4, % Diagonais / Diferentes: Q1+1 Q2+2, Q1+1 Q3+3, Q1+1 Q4+4, Q2+2 Q3+3, Q2+2 Q4+4, Q3+3 Q4+4, % Diagonais \ Diferentes: Q1-1 Q2-2, Q1-1 Q3-3, Q1-1 Q4-4, Q2-2 Q3-3, Q2-2 Q4-4, Q3-3 Q4-4, Solução: Q1 = 2, Q2 = 4, Q3 = 1, Q4 = 3

17 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 17 Send More Money –Variáveis: V: {S, E, N, D, M, O, R, Y} –Domínio D : {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Exemplos de Problemas (Satisfação) –Restrições R: % Valores diferentes para letras diferentes : S E, S N,..., R Y % Conta Certa: 1000*S + 100*E + 10*N + D *M + 100*O + 10*R + E = 10000*M *O + 100*N + 10*E + Y

18 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 18 Complexidade dos Problemas Solução obtida por algoritmos não deterministas –Envolvem escolhas eventualmente erradas! Consequência –Complexidade Exponencial e não Polinomial Algoritmo Determinístico – Ordenação –Bubble sort aplicado a um vector c/ n elementos 1ª passagem: n-1 comparações 2ª passagem: n-2 comparações (n-1)ª passagem: 1 comparação –Total: n-1 + n = (n-1)[1+ (n-1)] / 2 = n (n-1)/2 –Complexidade Polinomial do algoritmo: O(n 2 )

19 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 19 Complexidade dos Problemas Bubble sort aplicado a um vector c/ 5 elementos Pior caso – comparações = 4*(1+4)/2 = 10 –Em geral (n-1) n /2 –Complexidade O(n 2 )

20 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 20 Complexidade dos Problemas Algoritmo Não Determinístico –Escolha de Entradas (binárias) –Pior caso: testar todas as combinações –n entradas – combinações possíveis 2*2*...* 2 = 2 n Exemplo: 3 entradas Complexidade Exponencial : O(2 n )

21 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 21 Algoritmos Determinísticos: Complexidade Polinomial Algoritmos Não-Determinísticos: Complexidade Exponencial Complexidade Polinomial vs Exponencial

22 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 22 Algoritmos de Resolução A resolução de problemas de decisão não triviais pode ser feita através de duas abordagens diferentes: Métodos Construtivos –Os valores das várias variáveis vão sendo atribuídos tendo de ser revistos quando se detecta uma contradição. –Exemplo: Se Q1 = 2 e Q3 = 2 há contradição porque Q1 Q3 Métodos Reparativos –Uma pseudo-solução que não satisfaz algumas restrições é reparada de forma a tornar-se uma solução. –Exemplo: V = [1,2,3,4] não satisfaz as restrições (Q1 -1 Q2 -2). Trocar Q1 com Q4 ficamos com V = [4,2,3,1] e a rainha Q1 já não ataca Q2.

23 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 23 Métodos Construtivos – Pesquisa em árvore Os métodos construtivos utilizam em geral um algoritmo de pesquisa em árvore. Normalmente utiliza-se a pesquisa em profundidade da esquerda para a direita Exemplo: Pesquisa Binária com 4 variáveis V1 = 0V1 = 1 V2 = 0 V2 = 1 V2 = 0 V2 = 1 V3 = 0 V4 = 0

24 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 24 Pesquisa com Retrocesso Em cada nó é verificado se vale a pena continuar. Nessa situação, executa-se um retrocesso (backtracking) evitando-se testar todos os valores! Se V1=0 é imcompatível com V2 = 0, eliminam-se todas as soluções [0,0,x,x]! V1 = 0V1 = 1 V2 = 0 V2 = 1 V2 = 0 V2 = 1 V3 = 0 V4 = 0

25 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 25 Pesquisa Heurística Em cada nó, vale a pena pensar para decidir: –Qual a próxima variável a atribuir valor; –Que valor atribuir Por exemplo, após atribuir V1 = 1, é preferível escolher a variável V3, e atribuir-lhe o valor 1 em primeiro lugar. V1 = 0V1 = 1 V3 = 1 V3 = 0 V2 = 0 V2 = 1 V3 = 0 V4 = 0

26 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 26 Retrocesso Testes 0 Retrocessos 0

27 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 27 Retrocesso Testes = 1 Retrocessos 0 Q1 \= Q2, Q1+1 \= Q2+2, Q1-1 \= Q2-2

28 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 28 Retrocesso Testes = 2 Retrocessos 0 Q1 \= Q2, Q1+1 \= Q2+2, Q1-1 \= Q2-2

29 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 29 Retrocesso Testes = 3 Retrocessos 0 Q1 \= Q2, Q1+1 \= Q2+2, Q1-1 \= Q2-2

30 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 30 Retrocesso Testes = 4 Retrocessos 0

31 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 31 Retrocesso Testes = 6 Retrocessos 0

32 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 32 Retrocesso Testes = 7 Retrocessos 0

33 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 33 Retrocesso Testes = 9 Retrocessos 0

34 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 34 Retrocesso Testes = 11 Retrocessos 0

35 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 35 Retrocesso Testes = 15 Retrocessos 0

36 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 36 Retrocesso Testes = 26 Retrocessos 0

37 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 37 Retrocesso Testes = 27 Retrocessos 0

38 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 38 Retrocesso Testes = 30 Retrocessos 0

39 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 39 Retrocesso Testes = 32 Retrocessos 0

40 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 40 Retrocesso Testes = 36 Retrocessos 0

41 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 41 Retrocesso Testes = 39 Retrocessos 0

42 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 42 Retrocesso Testes = 40 Retrocessos 0

43 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 43 Retrocesso Testes = 42 Retrocessos 0

44 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 44 Retrocesso Testes = 45 Retrocessos 0

45 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 45 Retrocesso Testes 45 Retrocessos 0 Falha 6 Retrocede 5

46 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 46 Retrocesso Testes 45 Retrocessos 1

47 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 47 Retrocesso Testes = 46 Retrocessos 1

48 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 48 Retrocesso Testes = 48 Retrocessos 1

49 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 49 Retrocesso Testes = 51 Retrocessos 1

50 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 50 Retrocesso Testes = 55 Retrocessos 1

51 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 51 Retrocesso Testes = 74 Retrocessos 1 Falha 6 Retrocede 5 e 4

52 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 52 Retrocesso Testes = 85 Retrocessos 1+2 = 3

53 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 53 Retrocesso Testes = 90 Retrocessos 3

54 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 54 Retrocesso Testes = 101 Retrocessos 3

55 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 55 Retrocesso Testes = 122 Retrocessos 3

56 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 56 Retrocesso Testes = 150 Retrocessos 3+1=4 Falha 8 Retrocede 7

57 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 57 Retrocesso Testes = 153 Retrocessos 4+1=5 Falha 7 Retrocede 6

58 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 58 Retrocesso Testes = 162 Retrocessos 5+1=6 Falha 6 Retrocede 5

59 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 59 Retrocesso Testes = 168 Retrocessos 6+1=7

60 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 60 Retrocesso Testes = 188 Retrocessos 7 Falha 6 Retrocede 5

61 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 61 Retrocesso Testes = 198 Retrocessos 7+1=8 Falha 5 Retrocede 4

62 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 62 Retrocesso Testes = 201 Retrocessos 8+1=9

63 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 63 Retrocesso Testes = 206 Retrocessos 9

64 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 64 Retrocesso Testes = 217 Retrocessos 9

65 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 65 Retrocesso Testes = 239 Retrocessos 9

66 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 66 Retrocesso Testes = 274 Retrocessos 9+1=10 Falha 8 Retrocede 7

67 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 67 Retrocesso Testes = 277 Retrocessos 10+1=11 Falha 7 Retrocede 6

68 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 68 Retrocesso Testes = 286 Retrocessos 11+1=12 Falha 6 Retrocede 5

69 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 69 Retrocesso Testes = 292 Retrocessos 12

70 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 70 Retrocesso Testes = 312 Retrocessos 12+1=13 Falha 6 Retrocede 5

71 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 71 Retrocesso Testes = 322 Retrocessos 13+2=15 Falha 5 Retrocede 4 e 3

72 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 72 Retrocesso Testes = 324 Retrocessos 15 X 1 =1 X 2 =3 X 3 =5 Impossível

73 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 73 Olhar para Trás ou para a Frente? Nesta altura da pesquisa determinou-se que não se podem construir soluções a partir da solução parcial Q1 = 1, Q2 =3, Q3 = 5 Para essa determinação foram feitos –15 Retrocessos de valores de variáveis –324 testes de verificação De notar que nesta pesquisa foi tida em consideração apenas as atribuições passadas de valores a variáveis. Na realidade, é geralmente mais favorável olhar para a frente, isto é, para as variáveis futuras, que ainda não têm valores atribuídos. Esse é o objectivo da propagação de restrições.

74 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 74 Propagação de Restrições O objectivo da propagação de restrições é o de retirar do domínio das variáveis futuras os valores que são contraditórios com as atribuições já efectuadas. Por exemplo, se a primeira rainha for colocada na posição mais à esquerda (Q1 = 1), podem retirar-se o valor 1 do domínio das outras variáveis, já que colocariam as respectivas rainhas na mesma coluna! Os valores incompatíveis por estarem nas mesmas diagonais devem ser igualmente eliminados. Este mecanismo de propagação de restrições pode ser igualmente ilustrado para as 8 rainhas.

75 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 75 Propagação Testes 0 Retrocessos 0

76 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 76 Propagação Testes 8 * 7 = 56 Retrocessos 0 Q1 #\= Q2, Q1+1 #\= Q2+2, Q1-1 #\= Q2-2.

77 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 77 Propagação Testes * 6 = 92 Retrocessos 0

78 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 78 Propagação Testes * 5 = 112 Retrocessos 0

79 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 79 Propagação de Restrições Neste ponto vale a pena precisar uma outra forma de propagação de restrições. Para além de retirar valores incompatíveis com valores já atribuídos (consistência de nó), podem ser retirados valores do domínio de variáveis que não tenham suporte no domínio de outras variáveis. Por exemplo consideremos as variáveis A e B, com domínio {1,2,3,4} e a restrição A > B. Neste caso, –A não pode ser 1, pois não há valor de B tal que B <1. –B não pode ser 4, pois não há valor de A tal queA > 4. A propagação de restrições neste caso, mantendo a consistência de arco, reduz os domínios para D A = {2,3,4} e D A = {1,2,3}.

80 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 80 Redes de Restrições Um problema de satisfação de restrições pode ser modelado através de um grafo (ou rede) de restrições em que os nós são as variáveis e os arcos as restrições. Por exemplo, o problema das 4 rainhas pode ser modelado através da seguinte rede Q 1 in 1..4 Q 4 in 1..4 Q 3 in 1..4Q 2 in 1..4

81 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 81 Redes de Restrições Para manter consistência de arco pode assim olhar-se para cada arco e analisar os domínios das variáveis nos seus extremos. Podemos analisar a situação na continuação do problema das 8 rainhas.

82 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 82 Propagação Q 6 só pode tomar o valor 4 Retirar valores incompatíveis nas outras variáveis

83 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 83 Propagação

84 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 84 Propagação 2 Agora é Q 8 que só pode tomar o valor

85 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 85 Propagação 2 Retiremos pois os valores incompatíveis

86 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 86 Propagação 2 Q 4 só pode tomar o valor

87 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 87 Propagação 2 Propagando verifica-se que Q5 só pode tomar o valor

88 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 88 Propagação 2 Mas agora Q7 não pode tomar nenhum valor!

89 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 89 Propagação 2 Há que retroceder para a última rainha atribuída, Q

90 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 90 Heurísticas – First Fail No caso de restrições de diferença, só faz sentido a sua propagação se uma das variáveis tiver um só valor no domínio. Mas nessa situação, é mais conveniente utilizar esse facto através da heurística first-fail. Em geral a heurística indica que se devem tratar primeiro as situações mais difíceis, que não se podem evitar. Em particular, enter atribuir valores a uma variável com 8 valores no domínio e outra com apenas 2 é mais difícil atribuir valores a esta (são menos valores). No caso em causa, se uma variável só tem um valor no domínio há que atribuir imediatamente esse valor !

91 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 91 Propagação Testes * 5 = 112 Retrocessos 0 Q 6 só pode tomar o valor 4

92 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 92 Propagação Testes = 125 Retrocessos 0

93 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 93 Propagação Testes 125 Retrocessos 0 Q 8 só pode tomar o valor 7

94 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 94 Propagação Testes 125 Retrocessos 0

95 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 95 Propagação Testes =131 Retrocessos 0

96 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 96 Propagação Testes 131 Retrocessos 0 Q 4 só pode tomar o valor 8

97 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 97 Propagação Testes 131 Retrocessos 0

98 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 98 Propagação Testes =135 Retrocessos 0

99 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 99 Propagação Testes 135 Retrocessos 0 Q 5 só pode tomar o valor 2

100 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 100 Propagação Testes 135+1=136 Retrocessos 0

101 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 101 Propagação Testes 136 Retrocessos 0 Falha 7 Retrocede 3 !

102 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 102 Eficiência da Propagação c/ First -Fail Nesta altura da pesquisa determinou-se que não se podem construir soluções a partir da solução parcial Q1 = 1, Q2 =3, Q3 = 5 De notar que com retrocesso puro tal conclusão foi tirada após se terem efectuado –15 retrocessos de valores de variáveis –324 testes de verificação Neste caso, a combinação de propagação de restrições (simples – consistência de nó) com heurística permitiu chegar à mesma conclusão com –0 retrocessos de valores de variáveis –136 testes de verificação

103 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 103 Outros Métodos de Propagação Existem métodos mais fortes de propagação, tais como a manutenção da consistência de caminho Exemplo: A impossibilidade deste problema não é obtida por manutenção de consistência de arco, mas é-o por consistência de caminho. {0,1} {0,1}

104 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 104 Restrições Globais Em geral quanto mais forte é a propagação mais pesada é a sua implementação. Existem alguns casos particulares de restrições, envolvendo muitas variáveis, que têm métodos de resolução muito apropriados e que podem ser integrados nas linguagens de resolução destes problemas. Este é o caso da restrição all_different([X1,X2,X3]) que não usando consistência de arco consegue detectar a inconsitência do problema anterior. Outra restrição global importante é a restrição cumulative, útil para problemas de alocação de recursos.

105 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 105 Restrições Globais - Cumulative História: Uma instância 10*10 do problema de Job-shop foi proposta no livro Industrial Scheduling [MuTh63]. Durante 30 anos, não foi encontrada nenhuma solução óptima para o makespan (terminação mais rápida da última tarefa). Melhor solução era 935 unidades de tempo. Em 1985, tinha sido provado que não havia solução com menos de 930 unidades de tempo.. Em 1987, o problema foi resolvido com um algoritmo altamente especializado, que decobriu uma solução com 930 unidades de tempo, após algumas horas de execução. Com a restrição cumulative, o problema foi resolvido em 1993 em 1506 segundos (numa SUN/SPARC) !

106 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 106 Métodos Reparativos – Pesquisa Local Um método alternativo de resolução corresponde a partir de uma solução qualquer e ir reparando-a para obter outra melhor. Este método é útil para problemas de optimização em que há várias soluções possíveis, embora não óptimas. Em problemas de satisfação, pode tentar minimizar-se o número de restrições violadas. Para ser utilizável há que definir: –Quais os vizinhos de uma solução –Qual o vizinho a escolher No caso das rainhas os vizinhos são obtidos por troca de duas rainhas, de preferência envolvidas em restrições violadas, como ilustrado de seguida.

107 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 107 Pesquisa Local - Reparação Solução Permutação Vizinhança Troca

108 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 108 Pesquisa Local - Reparação 2 Ataques

109 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 109 Pesquisa Local - Reparação Ataques

110 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 110 Pesquisa Local - Reparação Ataques

111 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 111 Pesquisa Local - Reparação Ataques

112 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 112 Pesquisa Local - Reparação 1 Ataque

113 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 113 Pesquisa Local - Reparação Ataque 3 - 6

114 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 114 Pesquisa Local - Reparação Ataques

115 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 115 Pesquisa Local - Reparação Ataques

116 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 116 Pesquisa Local - Reparação 0 Ataques

117 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 117 Métodos Reparativos – Pesquisa Local Estes métodos têm em geral o problema de fugir dos óptimos locais, tal como acontecem neste caso. Por vezes, é necessário escolher um vizinho pior!

118 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 118 Métodos Reparativos – Pesquisa Local Para escapar a óptimos locais existem várias técnicas: –Recomeços aleatórios –Simulated Annealing –Tabu Search –Algoritmos Genéticos Um outro problema com estes métodos, relacionado com o anterior, é não serem completos, isto é descobrem óptimos locais, mas não o óptimo global. No entanto, para os problemas mais complexos não há esperança de obter a solução óptima! Existe ainda a possibilidade de hibridizar os métodos reparativos com métodos construtivos!

119 1 Junho 2005Seminários de Informática – Pesquisa e Optimização 119 Disciplinas da LEI Algoritmos e Estruturas de Dados –Pesquisa em árvore Métodos Quantitativos –Problemas de decisão Programação em Lógica –Paradigma de Programação que inclui o retrocesso Programação por Restrições –Estende o paradigma para propagação de restrições Bases de Dados e DataWareHousing –Integração de dados em Sistemas de Informação que podem ser posteriormente utilizados nestes modelos


Carregar ppt "1 Junho 2005Seminários de Informática – Pesquisa e Optimização 1 Seminários de Informática Pesquisa e Optimização Programação por Restrições Pedro Barahona."

Apresentações semelhantes


Anúncios Google