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

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

1 Programação por Restrições Mestrado / Licenciatura em Engenharia Informática Pedro Barahona 2005/06.

Apresentações semelhantes


Apresentação em tema: "1 Programação por Restrições Mestrado / Licenciatura em Engenharia Informática Pedro Barahona 2005/06."— Transcrição da apresentação:

1 1 Programação por Restrições Mestrado / Licenciatura em Engenharia Informática Pedro Barahona 2005/06

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 Múltiplo 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, –Quantidades mínimas a produzir –Custos a não exceder

7 7 Restrições - Gestão de Produção Limites dos recursos existentes –Só está dísponível uma quantidade R i unidades do recurso i a i1 X 1 + a i2 X 2 + a i3 X R i em que a ij é a quantidade do recurso i necessário para produzir uma unidade do produto j X j é a quantidade do produto j produzida Restrições sobre o plano produzido –Objectivos mínimos de produção X 1 + X 2 50 –Equilíbrio na produção | X 4 - X 5 | < 20

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, –Manutenção de informação nos vários nós

9 9 Restrições - Gestão de Redes Denotando por X ij o fluxo (bits, carros, m 3 de água, corrente eléctrica,...) entre os nós i e j –Restrições de Capacidade X ab 15 –Restrições de manutenção de informação X ab +X db = X bc A B C E G F Z H D I4I

10 10 Restrições - Escalonamento de Tarefas Job-Shop Denotando por S ij / D ij / D ij o início / duração / máquina da tarefa (task) i do trabalho (job) j: – Precedência entre tarefas do mesmo trabalho S ij + D ij S kj para i < k –Não sobreposição de tarefas na mesma máquina (M ij M kl ) (S ij + D ij S kl ) ( S 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 os professores –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 Denotando por V i a ordem em que a localidade i é visitada, e c ij o custo/distância do caminho directo de i a j –Garantir que o caminho existe |V i – V j | = 1 c ij < M –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 Denotando por X k / Y k as coordenadas do canto inferior esquerdo da peça k, e por Lxk / Lyk as dimensões dessa peça –Não ultrapassar os limites do contentor X k +Lx k X max Y k +Ly k Y max –Não sobrepôr componentes (X i +Lx i ) X j % i à esquerda de j (X j +Lx j X i ) % i à direita de j (Y i +Ly i ) Y j % i à frente de j (Y j +Ly j Y i )% i atrás de j

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. Neste caso, o problema é mais adequadamente descrito como um problema de optimização com restrições. Um problema de optimização com 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 –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 –Máximo tráfego com um dado custo Gestão da Produção –Plano com maior lucro –Máxima produção com os recursos existentes Sequenciação de Tarefas (Scheduling) –Solução com o fim mais cedo –Ocupação máxima das máquinas existentes

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 máximo número de peças

19 19 Restrições + Optimização - Caixeiro Viajante Com as definições anteriores e denotando por d ij a distância efectivamente percorrida entre os nós i e j, –Definição da distância percorrida |V i – V j | = 1 c ij < M |V i – V j | = 1 d ij = c ij V i – V j | > 1 d ij = 0 –Optimização min Σ i Σ j d ij A B C E G F Z H D I4I

20 20 Restrições - Complexidade A maior 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ínios Finitos –Número de variáveis: n –Dimensão do Domínio: k –Número de soluções potenciais: k n Domínios Racionais / Reais –Em teoria infinitas soluções potenciais –Na prática, número finito, limitado à precisão utilizada –Métodos diferentes dos domínios finitos

21 21 Complexidade Exponencial Para perspectivar... Assumindo-se que uma operação elementar tem uma duração de 1 μs, o tempo de pesquisa exaustiva das k n possíveis soluções será da ordem de

22 22 Restrições - Complexidade Os problemas de interesse de satisfação de restrições são geralmente NP – completos: –Descoberta de solução: complexidade exponencial (pior caso) –Verificação de solução: complexidade polinomial Já os problemas optimização de restrições são geralmente NP – difíceis: –Descoberta de solução: complexidade exponencial (pior caso) –Verificação de solução: complexidade exponencial Analogia com SAT Problema SAT

23 23 Restrições - Métodos de Resolução Resolução Simbólica /Algébrica –Domínios Herbrand – Unificação –Booleanos – Unificação Booleana –Programação Linear Inteira (Simplex) Retrocesso –Percorre todo o espaço de pesquisa Complexidade k n –Redução do espaço de pesquisa Propagação de restrições Cortes - Programação inteira Complexidade k r n ( k r < k) Pesquisa Local –Método incompleto –Metaheurísticas – óptimos locais

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 Métodos Mistos

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 cadeirassdi.di.fct.unl.pt/~prssdi.di.fct.unl.pt/~pr –Diapositivos e sumários das aulas –Software (download, documentação) –Problemas propostos –Bibliografia aconselhada –Regras de Avaliação –Anúncios,...


Carregar ppt "1 Programação por Restrições Mestrado / Licenciatura em Engenharia Informática Pedro Barahona 2005/06."

Apresentações semelhantes


Anúncios Google