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

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

1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema.

Apresentações semelhantes


Apresentação em tema: "1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema."— Transcrição da apresentação:

1 1 Programação por Restrições Pedro Barahona

2 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema podem tomar dentro de um certo domínio. Um problema de satisfação de restrições pode ser especificado por um tuplo em que –V: é o conjunto de variáveis usadas na modelação do problema –D: é o domínio(s) em que as variáveis de V podem tomar valores –R: é o conjunto de restrições que afectam as variáveis V

3 3 Restrições - Exemplos Planeamento de testes em circuitos digitais –Para detecção de avarias –Para distinção de avarias Gestão de Tráfego em Redes Gestão da Produção Sequenciação de Tarefas (Scheduling) Geração de Horários Caixeiro Viajante –Simples ou Multiplo Colocação ou preenchimento –2D: corte de peças (tecido, tábuas, etc...) –3D: prenchimento de contentores

4 4 Restrições - Circuitos digitais Planeamento de testes para detecção de avarias Objectivo: Determinar um padrão de entrada que permita detectar se uma gate está avariada. Variáveis: modelam o valor do nível eléctrico (high/low) nos vários fios do circuito Domínio: Booleanos: 0/1. Restrições: Restrições de igualdade entre o sinal de saída e o esperado pelo funcionamento das gates

5 5 Restrições - Circuitos digitais A C D B E F G H I G1 G2 G3 G4 G5 E = A+B+A·B % E = or(A,B) F = 1+ B·C% F = nand(B,C) G = C·D% G = nand(B,C) H = 1+E·F % H = nand(E,F) I = 1+F·G % H = nand(E,F)

6 6 Restrições - Gestão de Produção Determinação de quantidades ideais de items a produzir Objectivo: Determinar a quantidade de items que deve compor um plano de produção Variáveis: modelam o número de exemplares de cada preduto Domínio: Inteiros / Reais não negativos. Restrições: Limites dos recursos existentes, restrições sobre o plano produzido

7 7 Restrições - Gestão de Produção Limites dos recursos existentes a 1j X 1 + a 2j X 2 + a 3j X R i Restrições sobre o plano produzido X 1 + X 2 X 3 X 4 = X 5

8 8 Restrições - Gestão de Redes Determinação do tráfego em redes de telecomunicações (ou de transporte de água). Objectivo: Determinar a quantidade de informação que flui em cada um dos troços de uma rede de comunicações Variáveis: modelam o fluxo num troço Domínio: Reais não negativos. Restrições: Limites de capacidade dos troços, não perda de informação nos vários nós

9 9 Restrições - Gestão de Redes Restrições de Capacidade X ab 15 Restrições de não perda de informação X ab +X bd = X bc A B C E G F Z H D I4I

10 10 Restrições - Escalonamento de Tarefas Precedência entre tarefas J 11 + D 11 J 12 Não sobreposição de tarefas M i M j J ij + D ij J kl J kl + D kl J ij

11 11 Restrições - Horários Determinação de horários (p.ex. escolares) para planos de produção Objectivo: Determinar o início das várias aulas de dum horário Variáveis: modelam o início da aula, e eventualmente a sala, o professor, etc... Domínio: Finitos para osprofessores Finitos (horas certas) para os tempos Restrições: Não sobreposição de aulas na mesma sala, nem com o mesmo professor, etc...,

12 12 Restrições - Caixeiro Viajante Determinação de percursos (frotas de carros, empresas de distribuição) Objectivo: Determinar o melhor caminho para ser seguido pelos veículos de uma empresa de distribuição Variáveis: Ordem em que uma localidade é atingida Domínio: Finitos (localidades existentes) Restrições: Não repetir localidades, garantir ciclos, não existência de sub-ciclos

13 13 Restrições - Caixeiro Viajante ordem em que uma localidade é atingida V 1 = a, V 2 = d, V 3 = b,... garantir ciclos V j não existência de sub-ciclos ??? A B C E G F Z H D I4I

14 14 Restrições - Colocação Colocar componentes sem sobreposição Objectivo: Determinar formas de conseguir colocar componentes num dado espaço Variáveis: Coordenadas dos elementos Domínio: Reais / Finitos (grelha) Restrições: Não sobrepôr componentes, não ultrapassar os limites do contentor

15 15 Restrições - Colocação Não ultrapassar os limites do contentor X a +Lx a X max Não sobrepôr componentes X a +Lx a X b X b +Ly b X a Y a +Ly a Y b Y b +Ly b Y a

16 16 Restrições - Satisfação ou Optimização Em certos (muitos) casos o que se pretende determinar não é uma solução qualquer, mas sim a melhor solução Um problema de optimização com restrições pode ser especificado por um tuplo em que –V, D, R como antes –F: é uma função das soluções para um domínio ordenado

17 17 Optimização com Restrições - Exemplos Planeamento de testes em circuitos digitais –Teste com menos entradas especificadas Gestão de Tráfego em Redes –Tráfego com menor custo Gestão da Produção –Plano com maior lucro Sequenciação de Tarefas (Scheduling) –Solução com o fim mais cedo

18 18 Optimização com Restrições - Exemplos Geração de Horários –Solução com menos furos –Solução com menos teóricas de tarde Caixeiro Viajante –Solução com menor distância percorrida Colocação ou preenchimento –Colocação do maior número de peças

19 19 Restrições + Optimização - Caixeiro Viajante Distância percorrida V 1 = a V 2 = d P 1 = 15 Optimização min P i A B C E G F Z H D I4I

20 20 Restrições - Complexidade A dificuldade em resolver os problemas de restrições reside na sua complexidade exponencial. Domínio Booleano –Número de variáveis: n –Dimensão do Domínio: 2 –Número de soluções potenciais: 2 n Domínio Finitos –Número de variáveis: n –Dimensão do Domínio: k –Número de soluções potenciais: k n

21 21 Complexidade Exponencial Para perspectivar...

22 22 Restrições - Complexidade O problemas de interesse são geralmente –Restrições:NP - completos –Optimização: NP - difíceis Analogia com 3SAT Problema 3SAT

23 23 Restrições - Métodos de Resolução Resolução Simbólica –Booleanos –Programação Linear Inteira Retrocesso –Percorre todo o espaço de pesquisa Complexidade k 1 n –Redução do espaço de pesquisa Propagação de restrições Cortes - Programação inteira Complexidade k 2 n

24 24 Retrocesso Testes 0 Retrocessos 0

25 25 Retrocesso Testes = 1 Retrocessos 0 Q1 \= Q2, L1+Q1 \= L2+Q2, L1+Q2 \= L2+Q1.

26 26 Retrocesso Testes = 2 Retrocessos 0 Q1 \= Q2, L1+Q1 \= L2+Q2, L1+Q2 \= L2+Q1.

27 27 Retrocesso Testes = 3 Retrocessos 0 Q1 \= Q2, L1+Q1 \= L2+Q2, L1+Q2 \= L2+Q1.

28 28 Retrocesso Testes = 4 Retrocessos 0

29 29 Retrocesso Testes = 6 Retrocessos 0

30 30 Retrocesso Testes = 7 Retrocessos 0

31 31 Retrocesso Testes = 9 Retrocessos 0

32 32 Retrocesso Testes = 11 Retrocessos 0

33 33 Retrocesso Testes = 15 Retrocessos 0

34 34 Retrocesso Testes = 26 Retrocessos 0

35 35 Retrocesso Testes = 27 Retrocessos 0

36 36 Retrocesso Testes = 30 Retrocessos 0

37 37 Retrocesso Testes = 32 Retrocessos 0

38 38 Retrocesso Testes = 36 Retrocessos 0

39 39 Retrocesso Testes = 39 Retrocessos 0

40 40 Retrocesso Testes = 40 Retrocessos 0

41 41 Retrocesso Testes = 42 Retrocessos 0

42 42 Retrocesso Testes = 45 Retrocessos 0

43 43 Retrocesso Testes 45 Retrocessos 0 Falha 6 Retrocede 5

44 44 Retrocesso Testes 45 Retrocessos 1

45 45 Retrocesso Testes = 46 Retrocessos 1

46 46 Retrocesso Testes = 48 Retrocessos 1

47 47 Retrocesso Testes = 51 Retrocessos 1

48 48 Retrocesso Testes = 55 Retrocessos 1

49 49 Retrocesso Testes = 74 Retrocessos 1 Falha 6 Retrocede 5 e 4

50 50 Retrocesso Testes = 85 Retrocessos 1+2 = 3

51 51 Retrocesso Testes = 90 Retrocessos 3

52 52 Retrocesso Testes = 101 Retrocessos 3

53 53 Retrocesso Testes = 122 Retrocessos 3

54 54 Retrocesso Testes = 150 Retrocessos 3+1=4 Falha 8 Retrocede 7

55 55 Retrocesso Testes = 153 Retrocessos 4+1=5 Falha 7 Retrocede 6

56 56 Retrocesso Testes = 162 Retrocessos 5+1=6 Falha 6 Retrocede 5

57 57 Retrocesso Testes = 168 Retrocessos 6+1=7

58 58 Retrocesso Testes = 188 Retrocessos 7 Falha 6 Retrocede 5

59 59 Retrocesso Testes = 198 Retrocessos 7+1=8 Falha 5 Retrocede 4

60 60 Retrocesso Testes = 201 Retrocessos 8+1=9

61 61 Retrocesso Testes = 206 Retrocessos 9

62 62 Retrocesso Testes = 217 Retrocessos 9

63 63 Retrocesso Testes = 239 Retrocessos 9

64 64 Retrocesso Testes = 274 Retrocessos 9+1=10 Falha 8 Retrocede 7

65 65 Retrocesso Testes = 277 Retrocessos 10+1=11 Falha 7 Retrocede 6

66 66 Retrocesso Testes = 286 Retrocessos 11+1=12 Falha 6 Retrocede 5

67 67 Retrocesso Testes = 292 Retrocessos 12

68 68 Retrocesso Testes = 312 Retrocessos 12+1=13 Falha 6 Retrocede 5

69 69 Retrocesso Testes = 322 Retrocessos 13+2=15 Falha 5 Retrocede 4 e 3

70 70 Retrocesso Testes = 324 Retrocessos 15 X 1 =1 X 2 =3 X 3 =5 Impossível

71 71 Propagação Testes 0 Retrocessos 0

72 72 Propagação Testes 8 * 7 = 56 Retrocessos 0 Q1 #\= Q2, L1+Q1 #\= L2+Q2, L1+Q2 #\= L2+Q1.

73 73 Propagação Testes * 6 = 92 Retrocessos 0

74 74 Propagação Testes * 5 = 112 Retrocessos 0

75 75 Propagação Testes * 5 = 112 Retrocessos 0 X 6 só pode tomar o valor 4

76 76 Propagação Testes = 125 Retrocessos 0

77 77 Propagação Testes 125 Retrocessos 0 X 8 só pode tomar o valor 7

78 78 Propagação Testes 125 Retrocessos 0

79 79 Propagação Testes =131 Retrocessos 0

80 80 Propagação Testes 131 Retrocessos 0 X 4 só pode tomar o valor 8

81 81 Propagação Testes 131 Retrocessos 0

82 82 Propagação Testes =135 Retrocessos 0

83 83 Propagação Testes 135 Retrocessos 0 X 5 só pode tomar o valor 2

84 84 Propagação Testes 135 Retrocessos 0

85 85 Propagação Testes 135+1=136 Retrocessos 0

86 86 Propagação Testes 136 Retrocessos 0

87 87 Propagação Testes 136 Retrocessos 0+1=1 Falha 7 Retrocede 3 !

88 88 Propagação Testes 136 Retrocessos 1 3 X 1 =1 X 2 =3 X 3 =5 Impossível Testes 136 (324) Retrocessos 1 (15)

89 89 Restrições - Métodos de Resolução Pesquisa Local –Reparação de soluções –Optimização –Método incompleto

90 90 Pesquisa Local - Reparação Solução Permutação Vizinhança Troca

91 91 Pesquisa Local - Reparação 2 Ataques

92 92 Pesquisa Local - Reparação Ataques

93 93 Pesquisa Local - Reparação Ataques

94 94 Pesquisa Local - Reparação Ataques

95 95 Pesquisa Local - Reparação 1 Ataque

96 96 Pesquisa Local - Reparação Ataque 3 - 6

97 97 Pesquisa Local - Reparação Ataques

98 98 Pesquisa Local - Reparação Ataques

99 99 Pesquisa Local - Reparação 0 Ataques

100 100 Programação por Restrições Foco na propagação de restrições associada ao retrocesso Extensão ao Prolog –Constraint Logic Programming –CHIP, ECLIPSE, SICStus Outras possibilidades –Packages de filtragem –ILOG, CHIP Página da cadeira ssdi.di.fct.unl.pt/~pb/cadeiras/pr

101 101 Programação por Restrições


Carregar ppt "1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema."

Apresentações semelhantes


Anúncios Google