Problemas de satisfação de restrições

Muitas tarefas de programação, atribuição e resolução de quebra-cabeças consistem em escolher valores para um conjunto de variáveis de modo que todas as regras sejam respeitadas. Este material mostra como descrever essas tarefas como problemas de satisfação de restrições e como resolvê-las: busca com retrocesso e ordenação inteligente de variáveis e valores, verificação antecipada e consistência de arco para eliminar valores impossíveis, busca local com a heurística de conflitos mínimos para problemas grandes e reparos rápidos, e métodos que usam a estrutura do grafo de restrições, como o algoritmo de tempo linear para problemas com estrutura de árvore e o condicionamento por conjunto de corte. Cada método é apresentado passo a passo em exemplos pequenos, incluindo uma programação de oficinas, a coloração de mapas e o problema das n rainhas.

IntermediárioAula 3 de 10 do curso Curso de Inteligência artificial

O que você vai aprender

  1. Descreva um problema por suas variáveis, domínios e restrições, reconheça os tipos de restrições e transforme tarefas reais de programação e atribuição em problemas de satisfação de restrições bem formulados.
    • Descreva os componentes de um problema de satisfação de restrições
      Identifique as variáveis, os domínios e as restrições de um problema, diferencie atribuições parciais, consistentes e completas e desenhe o grafo de restrições.
    • Diferencie os tipos de restrições
      Classifique restrições como unárias, binárias, de ordem superior ou globais, reescreva restrições de ordem superior como restrições binárias e separe restrições rígidas de preferências.
    • Modele problemas de programação de tarefas e de atribuição como CSPs
      Transforme problemas de horários, programação de tarefas em oficina, atribuição e quebra-cabeças em CSPs, escolhendo variáveis e domínios que mantenham as restrições simples.
  2. Busque uma solução atribuindo uma variável por vez, retroceda em becos sem saída e escolha a ordem das variáveis e dos valores para que a busca encontre uma solução, ou prove que não há nenhuma, com muito menos trabalho.
    • Execute a busca com retrocesso passo a passo
      Explique por que o retrocesso atribui uma variável por nível, execute o algoritmo manualmente e informe sua completude e seu custo.
    • Escolha variáveis e valores com heurísticas de ordenação
      Aplique a heurística dos valores mínimos restantes, a heurística de grau e o valor menos restritivo, explique por que apontam em direções opostas e meça seu efeito em uma busca.
    • Faça retrocessos inteligentes ao chegar a um beco sem saída
      Use conjuntos de conflitos para retroceder com salto, passando por variáveis que não causaram uma falha, e registre combinações proibidas para não repetir a mesma falha.
  3. Use inferência para eliminar valores que não podem fazer parte de nenhuma solução, antes e durante a busca, e avalie o que a verificação antecipada, a consistência de arco e níveis mais fortes de consistência garantem.
    • Aplique a verificação antecipada durante a busca
      Reduza os domínios das vizinhas de uma variável recém-atribuída, detecte domínios vazios, restaure valores no retrocesso e reconheça o que a verificação antecipada não detecta.
    • Garanta a consistência de arco com AC-3
      Aplique a consistência de nó e de arco, execute AC-3 manualmente, conheça seu custo e seus limites e mantenha a consistência de arco durante a busca.
    • Use níveis mais fortes de consistência e restrições globais
      Explique consistência de caminho e de ordem k, propague restrições Alldiff e de limites e pondere a redução adicional de domínios em relação ao seu custo.
  4. Comece com uma atribuição completa e repare-a com a heurística de conflitos mínimos, escape de platôs e mínimos locais e avalie quando a busca local ou o retrocesso é a melhor ferramenta.
    • Repare atribuições com a heurística de conflitos mínimos
      Execute a heurística de conflitos mínimos manualmente em uma formulação de estado completo, explique por que ela funciona bem em problemas grandes e use-a para reparar uma programação após uma mudança.
    • Escape de platôs e mínimos locais e escolha entre busca local e busca com retrocesso
      Use movimentos laterais, busca tabu, ponderação de restrições e reinícios, e decida qual método se adequa a um problema.
  5. Interprete o grafo de restrições para dividir um problema em partes independentes, resolver problemas com estrutura de árvore em tempo linear e transformar em árvores problemas cuja estrutura se aproxima de uma árvore.
    • Separe subproblemas independentes e resolva CSPs com estrutura de árvore
      Encontre subproblemas independentes no grafo de restrições e resolva um CSP com estrutura de árvore usando as passagens dos filhos para os pais e dos pais para os filhos no algoritmo para árvores.
    • Reduza a árvores os problemas cuja estrutura se aproxima de uma árvore
      Aplique o condicionamento por conjunto de corte e a decomposição em árvore, relacione seus custos ao tamanho do conjunto de corte e à largura de árvore e quebre a simetria de valores.

Guia de estudo de Problemas de satisfação de restrições

5 capítulos

1

Formule problemas como problemas de satisfação de restrições

Escolher uma programação de horários ou atribuir revisores começa com um modelo: o que precisa de um valor, quais valores são possíveis e quais combinações são permitidas. Um modelo claro permite que os mesmos métodos de resolução funcionem em tarefas muito diferentes. Você construirá esse modelo, distinguirá exigências de preferências e verá como a escolha das variáveis altera o trabalho de um resolvedor. Pequenos exemplos de programação de tarefas e quebra-cabeças tornam cada componente concreto.

1.1 Descreva os componentes de um problema de satisfação de restrições

Um problema de satisfação de restrições, ou CSP, descreve um conjunto de escolhas e as regras que as conectam. Seu estado é uma representação fatorada: você pode examinar variáveis individuais e seus valores e depois reutilizar métodos gerais de redução de domínios e busca.

Variáveis, domínios e restrições

Uma variável nomeia algo a ser escolhido. Seu domínio lista seus valores permitidos. Uma restrição especifica quais combinações podem ocorrer juntas. Para as oficinas A e B, seja cada valor um horário de {1,2,3}. A regra “A ocorre antes de B” tem escopo {A,B} e relação {(1,2),(1,3),(2,3)}. Escrever A<B expressa a mesma relação de forma compacta.

O escopo nomeia as variáveis envolvidas; a relação fornece as tuplas de valores permitidas. Confundi-los leva a um modelo em que “vermelho” se torna uma variável. Na coloração de mapas, as regiões são variáveis e as cores são valores.

O que constitui uma solução?

Uma atribuição dá valores a variáveis. Três verificações descrevem sua situação:

  • Ela é parcial se algumas variáveis não têm valor.
  • Ela é completa se toda variável tem um valor.
  • Ela é consistente se não viola nenhuma restrição entre as variáveis atribuídas.

Uma solução deve ser completa e consistente. Apenas com A=2, a atribuição é consistente, mas parcial. Estendê-la com B=1 torna-a completa e inconsistente. Escolher B=3 produz uma solução para este exemplo de duas variáveis. Uma atribuição parcial consistente ainda pode não ter nenhuma complementação possível: variáveis sem valor podem ficar sem escolhas compatíveis.

Interprete um grafo de restrições

Para um CSP binário, desenhe um nó por variável e uma aresta para cada par sujeito a uma restrição. Em um mapa simplificado da Austrália, as variáveis são WA, NT, SA, Q, NSW, V e T, cada uma com domínio {vermelho, verde, azul}. Os pares vizinhos são WA–NT, WA–SA, NT–SA, NT–Q, SA–Q, SA–NSW, SA–V, Q–NSW e NSW–V. Cada aresta exige cores diferentes.

Uma solução é WA vermelho, NT verde, SA azul, Q vermelho, NSW verde, V vermelho e T vermelho. Verifique cada aresta, incluindo SA–V. T não tem arestas, então sua cor é independente da parte continental. Há 6 colorações da parte continental e 3 escolhas para T, produzindo 18 soluções. Uma restrição que envolve várias variáveis precisa de uma representação em hipergrafo; um nó adicional de restrição pode se conectar a cada variável em seu escopo.

Domínios e tamanho da busca

Um domínio discreto finito é uma lista fixa, como três cores. Um domínio discreto infinito pode conter todos os horários de início inteiros não negativos. Um domínio contínuo pode conter horários com valores reais. Os dois últimos precisam de representações e métodos adequados a esses domínios; a programação linear trata restrições lineares contínuas.

Para n variáveis com d valores cada, há dn atribuições completas. O mapa tem 37=2187 candidatas antes que as restrições eliminem alguma. CSPs finitos incluem problemas NP-completos, então não se conhece um método geral de resolução em tempo polinomial. Sua estrutura interna ainda permite reduzir domínios: o resolvedor pode descartar uma escolha sem listar todas as atribuições completas que a contêm. Apenas os valores finais determinam se a resposta é válida; o caminho usado para encontrá-los é irrelevante.

Principais conclusões

  • Um CSP especifica variáveis, seus domínios e restrições sobre combinações de valores.
  • Uma solução é completa e consistente.
  • Um grafo de restrições binárias mostra quais variáveis afetam diretamente umas às outras.
  • Com domínios de mesmo tamanho, o número de atribuições completas é dn.

1.2 Diferencie os tipos de restrições

As restrições diferem no número de variáveis que conectam e em se estabelecem exigências ou preferências. Reconhecer essa estrutura ajuda você a escrever um modelo fiel e escolher métodos úteis de propagação.

Classifique o escopo

Uma restrição unária restringe uma variável. Se a oficina E não puder usar o horário 1, aplique E≠1 reduzindo seu domínio de {1,2,3} para {2,3} antes da busca. Uma restrição binária relaciona duas variáveis, como A<B ou A≠D. Um CSP binário contém apenas restrições unárias e binárias.

Uma restrição de ordem superior envolve pelo menos três variáveis. Se as durações das tarefas X, Y e Z devem preencher 10 horas, escreva X+Y+Z=10. Com cada duração em {1,2,3,4,5}, a tupla (2,3,4) falha, enquanto (2,3,5) funciona. Verificar uma regra de ordem superior exige que os valores funcionem em conjunto.

Mantenha restrições globais úteis

Uma restrição global fornece uma regra nomeada sobre um grupo de tamanho variável. Alldiff⁡(X1,…,Xk) exige valores diferentes para cada par. Seu conjunto de soluções é igual ao conjunto definido por k(k−1)/2 desigualdades entre pares. Para nove células de Sudoku, isso equivale a 36 restrições binárias.

A forma global também dá ao resolvedor acesso ao raciocínio sobre o grupo. Três variáveis restritas a dois valores distintos não podem ser todas diferentes, embora cada par separadamente tenha uma atribuição compatível. Conjuntos de soluções iguais não garantem a mesma força de redução dos domínios.

Uma regra de capacidade também pode ser global. Aqui, Atmost⁡(10,P1,P2,P3) significa P1+P2+P3≤10: o número total de pessoas atribuídas às três tarefas não pode ultrapassar dez. Os argumentos representam quantidades que são somadas, então essa regra permite, por exemplo, (3,4,3).

Converta uma restrição finita para a forma binária

Introduza uma variável auxiliar U cujos valores sejam as triplas permitidas para X+Y+Z=10. Um valor possível é (2,3,5). Adicione três restrições binárias: o primeiro componente de U é igual a X, o segundo é igual a Y e o terceiro é igual a Z. Portanto, selecionar esse valor para U exige X=2, Y=3 e Z=5.

Toda tripla original válida corresponde a um valor de U, e toda atribuição consistente que envolve U produz uma tripla original válida. Essa construção permite que métodos binários tratem uma restrição finita de ordem superior. Seu custo é o domínio de tuplas potencialmente grande, motivo pelo qual os resolvedores frequentemente mantêm a regra global ou de ordem superior original.

Exigências e preferências
TipoO que significaExemplo de programação
Restrição rígidaToda solução deve satisfazê-la.Um instrutor não pode ministrar duas oficinas ao mesmo tempo.
Restrição flexívelUma violação acrescenta um custo a uma escolha que, de outra forma, seria viável.Um instrutor prefere uma sessão à tarde.

Com restrições flexíveis, a tarefa se torna um problema de otimização com restrições, ou COP: satisfaça todas as regras rígidas e minimize o custo total das preferências. Ramificação e limitação e busca local podem ser usadas para otimização.

Teste o modelo com uma atribuição reconhecidamente válida e outra reconhecidamente inválida. Uma desigualdade inventada entre oficinas sem relação elimina programações legítimas; uma restrição omitida sobre um instrutor compartilhado admite programações impossíveis. Preferências também exigem cuidado: transformar “tarde preferida” em “tarde obrigatória” pode eliminar toda programação viável.

Principais conclusões

  • Restrições unárias reduzem um domínio; restrições binárias conectam duas variáveis.
  • Alldiff exige valores diferentes entre pares, mas pode permitir uma redução mais forte baseada no grupo.
  • Variáveis auxiliares de tuplas podem converter restrições finitas de ordem superior para a forma binária.
  • Restrições rígidas definem a viabilidade; restrições flexíveis ordenam as escolhas viáveis.
  • Verifique um caso válido e um inválido ao testar um modelo.

1.3 Modele problemas de programação de tarefas e de atribuição como CSPs

Um modelo deve descrever as decisões de maneira suficientemente direta para que as regras sejam fáceis de expressar. Comece identificando o que deve ser escolhido, depois atribua domínios e traduza cada exigência sobre as variáveis que ela realmente envolve.

Construa uma programação de oficinas

Cinco oficinas que ocupam um horário cada compartilham três horários: 1 manhã, 2 meio-dia e 3 tarde. Seja A Fundamentos de Python, B Python Avançado, C Estatística, D Bancos de Dados e E Ética. Cada oficina é uma variável com domínio inicial {1,2,3}.

Participantes compartilhados exigem A≠C, A≠D, C≠D, B≠C, C≠E e D≠E. Fundamentos deve preceder Avançado, então A<B. O instrutor de Ética chega ao meio-dia, então E≠1. Isso produz sete arestas binárias e uma regra unária; C tem quatro vizinhas.

A atribuição A=2,B=3,C=1,D=3,E=2 satisfaz todas as regras: cada par com participantes compartilhados tem horários diferentes, Fundamentos precede Avançado e Ética não ocorre no horário 1. Ela é a única atribuição válida entre as 35=243 candidatas. As oficinas B e D podem usar o horário 3 porque nenhuma regra exige que sejam diferentes.

Escolher uma variável por horário faria de cada valor um subconjunto de oficinas, com até 25=32 subconjuntos possíveis por horário. As regras teriam então de examinar esses conjuntos e garantir que cada oficina ocorresse uma vez. Escolher oficinas como variáveis mantém as restrições mais simples.

Expresse horários das tarefas e recursos compartilhados

Na programação de tarefas em oficina, use uma variável de horário de início para cada tarefa. Preparar leva 20 minutos, Analisar 40 e Relatar 30. Os horários de início são minutos inteiros não negativos. A ordem e o prazo de 120 minutos fornecem

SP+20≤SA,SA+40≤SR,SR+30≤120.

Os inícios mais cedo são 0, 20 e 60. Trabalhar de trás para frente a partir do prazo fornece os inícios mais tardios 30, 50 e 90. Assim, as janelas são SP∈[0,30], SA∈[20,50] e SR∈[60,90].

Duas tarefas que compartilham uma máquina precisam de uma restrição disjuntiva: SX+dX≤SY ou SY+dY≤SX. Qualquer uma das tarefas pode ocorrer primeiro, mas elas não podem se sobrepor. Uma restrição simples de precedência imporia uma ordem específica e eliminaria a outra possibilidade.

Modele atribuições e quebra-cabeças

Para três relatórios atribuídos a três revisores, faça de cada relatório uma variável cujos valores são revisores. Use Alldiff se cada revisor ficar responsável por um relatório. Um conflito de interesse remove um revisor do domínio do relatório correspondente.

Para o problema das n rainhas, seja Qi a linha da rainha na coluna i. Uma rainha por coluna já está incorporada ao modelo. Para cada par, exija Qi≠Qj e ∣Qi−Qj∣≠∣i−j∣ para evitar ataques na mesma linha e diagonal. Para oito rainhas, isso reduz o espaço de candidatos de escolher 8 casas entre 64, 4.426.165.368 disposições, para 88=16.777.216 atribuições. Há 92 soluções.

Para Sudoku, as 81 variáveis das células têm domínios 1–9. Os números fornecidos impõem restrições unárias, e cada uma das 9 linhas, 9 colunas e 9 caixas impõe Alldiff.

Escolha as unidades de tempo menos detalhadas que ainda representem todos os inícios permitidos. Sessões que começam em horas cheias precisam de escolhas por hora; domínios minuto a minuto aumentariam o trabalho sem acrescentar uma programação útil. Termine separando preferências de regras rígidas e verificando um caso pequeno com resposta conhecida.

Principais conclusões

  • Escolha variáveis que mantenham as restrições simples e domínios que não sejam mais detalhados que o necessário.
  • A precedência usa desigualdades de término antes do início; recursos compartilhados exigem que não haja sobreposição.
  • Uma rainha por coluna pode ser incorporada à escolha das variáveis.
  • Um modelo correto inclui regras implícitas de recursos e preserva horários compartilhados permitidos.
2

Resolva CSPs com busca com retrocesso

Uma busca pode desperdiçar a maior parte do esforço revisitando as mesmas escolhas ou descobrindo conflitos tarde demais. O retrocesso constrói uma atribuição uma variável por vez e retorna a escolhas anteriores quando um ramo falha. A ordenação de variáveis e valores ajuda a encontrar ramos promissores mais cedo, enquanto a análise de conflitos identifica quais escolhas causaram um beco sem saída. Acompanhar as decisões facilita a avaliação tanto do método básico quanto de suas melhorias.

2.1 Execute a busca com retrocesso passo a passo

O retrocesso constrói uma atribuição parcial usando busca em profundidade. Ele escolhe uma variável, testa um valor e continua até encontrar uma solução ou precisar desfazer uma escolha. A busca mantém as escolhas anteriores úteis quando uma escolha posterior falha.

Ramifique por valores, uma variável por vez

Atribuir A e depois B produz a mesma atribuição final que atribuir B e depois A. Essa comutatividade significa que um resolvedor de CSP pode escolher uma variável em cada nível e ramificar sobre seus valores. Permitir todas as ordens de variáveis produziria n!dn folhas para apenas dn atribuições completas distintas. Para cinco variáveis com três valores, são 29.160 folhas em vez de 243.

A próxima variável pode depender dos domínios atuais. O que importa é escolher uma única próxima variável em um nó; a busca não precisa de ramos separados para todas as ordens possíveis de atribuição.

Acompanhe as etapas recursivas
  1. Se a atribuição estiver completa e consistente, retorne-a.
  2. Escolha uma variável sem valor.
  3. Teste cada valor do domínio que seja consistente com a atribuição atual.
  4. Faça uma chamada recursiva após adicionar um valor. Se a chamada recursiva falhar, remova essa atribuição e tente o próximo valor.
  5. Se nenhum valor funcionar, retorne falha à chamada anterior.

O retrocesso simples testa uma restrição quando todas as variáveis em seu escopo têm valores. Com A=1 e B sem valor, A<B não tem um par completo a rejeitar. Testar B=1 falha imediatamente. Esperar até que todas as variáveis tenham valores adiaria essa rejeição simples.

Acompanhe um beco sem saída

Use as regras das oficinas: A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1. Considere as variáveis na ordem A, B, C, D, E e teste os valores 1, 2, 3.

  • Defina A=1. Rejeite B=1 e escolha B=2.
  • Rejeite C=1 por causa de A e C=2 por causa de B; escolha C=3.
  • Rejeite D=1 por causa de A; escolha D=2.
  • E não tem valor permitido: 1 é proibido, 2 entra em conflito com D e 3 entra em conflito com C.

A falha em E devolve o controle a D. Seu próximo valor, 3, entra em conflito com C. C não tem valor posterior, então o controle retorna a B. Testar B=3 acaba produzindo outro beco sem saída com A=1. A busca então testa A=2 e chega a A=2,B=3,C=1,D=3,E=2. Nessa ordem, o retrocesso simples testa 32 valores candidatos ao todo, incluindo os rejeitados.

O que o método garante
PropriedadeRetrocesso simples em domínios finitos
CompletudeEncontra uma solução se ela existir; esgotar a busca estabelece a inviabilidade.
Tamanho da busca no pior casoExponencial, O(dn) atribuições no limite usual.
Memória do caminho de buscaLinear em n; um caminho ativo é armazenado.

Verificar restrições e armazenar o modelo também têm custos. A descrição de memória linear refere-se ao caminho de busca, enquanto a propagação também pode armazenar domínios e registros para desfazer alterações.

O retrocesso cronológico retorna à escolha mais recente. Variantes mais rápidas melhoram quatro decisões distintas: a próxima variável, a ordem de seus valores, as consequências inferidas após uma escolha e a escolha anterior a revisitar após uma falha. Essas melhorias reduzem o trabalho prático sem alterar o que constitui uma solução.

Principais conclusões

  • A comutatividade elimina a necessidade de buscar em todas as ordens de atribuição.
  • O retrocesso atribui uma variável por nível e rejeita violações de restrições cujas variáveis já têm valores.
  • Uma chamada recursiva que falha desfaz sua escolha e tenta outro valor.
  • O retrocesso em domínios finitos é completo, mas tem busca exponencial no pior caso.
  • A memória linear do caminho de busca não inclui todo o armazenamento do modelo e da propagação.

2.2 Escolha variáveis e valores com heurísticas de ordenação

Uma boa ordenação pode revelar uma falha perto do topo de uma árvore de busca ou preservar escolhas úteis para mais tarde. A ordenação de variáveis e a de valores servem a propósitos diferentes, então a direção mais promissora difere entre elas.

Escolha a variável mais restrita

A heurística dos valores mínimos restantes (MRV) seleciona a variável sem valor que tem menos valores atualmente permitidos. Ela também é chamada de heurística da variável mais restrita ou de falhar primeiro. Um domínio quase esgotado provavelmente revelará uma contradição em breve. Se um domínio estiver vazio, o ramo falha imediatamente.

Conte os valores atuais após a redução, não os tamanhos iniciais dos domínios. Sem domínios armazenados, um resolvedor deve determinar quais valores originais ainda são consistentes com a atribuição antes de aplicar a MRV.

A heurística de grau desempata na MRV escolhendo a variável com mais restrições sobre outras variáveis sem valor. Essa escolha afeta mais decisões restantes. Vizinhas já atribuídas não contam para esse grau restante. No início do mapa da Austrália, os domínios iguais de três cores empatam, e as cinco vizinhas de SA dão a ela o maior grau.

Mantenha opções abertas ao escolher um valor

O valor menos restritivo (LCV) testa o valor que remove menos valores dos domínios de vizinhas sem valor. Avaliar valores candidatos acrescenta processamento, mas pode evitar um ramo malsucedido e custoso.

Com WA vermelho e NT verde, SA só pode ser azul, enquanto Q pode ser vermelho ou azul. Escolher Q azul esvaziaria o domínio de SA. Escolher Q vermelho remove vermelho de NSW e preserva o azul de SA. Portanto, a LCV testa Q vermelho.

Decisão de ordenaçãoEscolha preferidaMotivo
Próxima variávelMenos valores restantesRevelar cedo uma provável falha.
Variável empatadaMais vizinhas sem valorAfetar mais decisões restantes.
Próximo valorMenos valores eliminados das vizinhasPreservar as chances de completar a atribuição.

Toda variável deve receber um valor em algum momento, o que torna útil testar cedo uma variável com poucas opções. Apenas um valor é necessário para completar uma primeira solução, o que favorece um valor que deixe espaço para outras decisões.

Combine ordenação com verificação antecipada

Na programação das oficinas, aplique E≠1 primeiro. E tem dois valores; A, B, C e D têm três cada uma. A MRV escolhe E. Teste E=2, e a verificação antecipada remove 2 de C e D.

C e D agora empatam com domínios {1,3}. C tem três vizinhas sem valor, A, B e D; D tem duas, A e C. A heurística de grau seleciona C. Escolha C=1, deixando DD={3} e DA=DB={2,3}. A MRV escolhe D=3, o que força A=2; a regra de precedência então produz B=3. Cinco atribuições encontram a solução sem retrocesso. A ordem fixa de variáveis com verificação antecipada exige 12 atribuições e chega a dois becos sem saída.

A ordenação preserva a completude porque altera a sequência de escolhas sem descartar ramos permitidos. A busca no pior caso continua exponencial. Ao enumerar todas as soluções ou provar a inviabilidade, todos os valores relevantes devem ser explorados em algum momento, então a vantagem da LCV de obter sucesso cedo é reduzida. Seu principal uso é encontrar uma primeira solução mais cedo.

Principais conclusões

  • A MRV usa o número atual de valores permitidos.
  • A heurística de grau desempata usando restrições sobre variáveis sem valor.
  • A LCV preserva as escolhas das vizinhas ao testar um valor.
  • A ordenação altera o esforço de busca e preserva a completude.

2.3 Faça retrocessos inteligentes ao chegar a um beco sem saída

Um beco sem saída frequentemente tem uma causa menor que toda a atribuição atual. O retrocesso com salto usa essa causa para decidir aonde retornar, e o aprendizado de restrições registra uma falha para que ela não precise ser descoberta novamente.

Encontre as escolhas que causaram a falha

No mapa da Austrália, considere a ordem de atribuição Q, NSW, V, T, SA. Sejam Q vermelho, NSW verde, V azul e T vermelho. SA é vizinha de Q, NSW e V, então as três cores são proibidas. Seu conjunto de conflitos é {Q,NSW,V}: variáveis anteriores cujas escolhas excluem seus valores.

O retrocesso cronológico tentaria alterar T. A Tasmânia não tem uma aresta com SA, então mudar sua cor não pode restaurar nenhuma opção para SA. O retrocesso com salto retorna a V, o membro atribuído mais recentemente no conjunto de conflitos, e ignora T.

Um conjunto de conflitos contém variáveis; uma combinação proibida de atribuições registra atribuições específicas. Essa distinção importa: outra cor para V pode corrigir a falha, embora V continue sendo vizinha de SA.

Propague um conflito por falhas anteriores

O retrocesso com salto simples usa o conjunto de conflitos direto da falha atual. O retrocesso com salto dirigido por conflitos leva informações por vários níveis que falharam. Quando uma variável X que falhou salta para Y, Y absorve o conjunto de conflitos de X com Y removida. Se Y esgotar todos os seus valores depois, seu conjunto combinado identificará uma causa mais atrás na atribuição.

Por exemplo, use a ordem WA, NSW, T, NT, Q, V, SA e comece com WA vermelho, NSW vermelho, T vermelho. WA e NSW não são vizinhas, então essa atribuição parcial é consistente. Suas escolhas removem vermelho de NT, Q e SA. Essas três regiões formam um triângulo, que não pode ser colorido usando apenas verde e azul.

Nenhuma escolha feita para T altera esse triângulo. As informações sobre conflitos podem voltar pelas tentativas que falharam e identificar WA e NSW como a causa subjacente. A busca retorna a NSW, a mais recente dessas duas decisões, em vez de gastar tempo mudando a cor de T.

Aprenda a combinação que falhou

Um resolvedor pode registrar {WA=vermelho,NSW=vermelho} como uma combinação proibida. Sempre que ambas as escolhas se repetirem, seguirá a mesma contradição no triângulo, então o ramo pode ser rejeitado imediatamente. Seria incorreto proibir WA vermelho isoladamente: WA pode ser vermelho em soluções válidas com outra cor para NSW.

O aprendizado acrescenta uma restrição ou uma combinação proibida armazenada em cache. A condição aprendida deve decorrer das restrições originais; uma falha causada apenas por atingir um limite de tempo não fornece tal justificativa lógica. Uma combinação proibida útil mantém atribuições suficientes para explicar a impossibilidade sem incluir escolhas não relacionadas.

Combine antecipação e análise retrospectiva

A verificação antecipada e a consistência de arco removem valores sem suporte antes que ocorra uma falha em níveis profundos. O retrocesso com salto diagnostica uma falha depois que ela ocorre. O retrocesso com salto direto e simples não acrescenta redução além do que a verificação antecipada já detecta, mas métodos dirigidos por conflitos podem combinar explicações de falhas mais profundas. O aprendizado preserva essas explicações em ramos posteriores.

Principais conclusões

  • Um conjunto de conflitos identifica variáveis anteriores responsáveis por uma falha.
  • O retrocesso com salto ignora escolhas que não estão relacionadas à falha.
  • O retrocesso com salto dirigido por conflitos combina informações sobre conflitos entre níveis que falharam.
  • Uma combinação proibida impede uma combinação impossível de atribuições, não cada atribuição separadamente.
  • A redução antecipada de domínios e as explicações aprendidas podem trabalhar juntas.
3

Reduza domínios com propagação de restrições

Um valor pode ser impossível mesmo antes de sua variável ser escolhida. A propagação de restrições acompanha as consequências dos domínios e das atribuições atuais, eliminando valores que não têm o suporte necessário. Os métodos diferem em até onde olham: das vizinhas imediatas de uma decisão a pares, triplas e grupos inteiros de variáveis. Exemplos de alterações nos domínios mostram o que cada método detecta, o que não detecta e quando o trabalho extra compensa.

3.1 Aplique a verificação antecipada durante a busca

A verificação antecipada identifica o que uma nova atribuição elimina imediatamente para as variáveis vizinhas sem valor. Ela elimina valores incompatíveis antes que a busca chegue a essas variáveis, tornando alguns becos sem saída visíveis vários níveis antes.

Reduza domínios após uma atribuição

Após escolher X=x, examine cada Y sem valor que compartilhe uma restrição com X. Elimine de DY todo valor que entre em conflito com a escolha. Um domínio vazio significa que o ramo atual não pode ser completado, então retroceda imediatamente.

Para X≠Y, atribuir X=2 remove 2 de Y. Para X<Y, atribuir X=2 remove todos os valores de Y menores ou iguais a 2. A relação determina o que é removido; a verificação antecipada não se limita a eliminar valores iguais.

A redução altera os domínios do ramo atual. Mantenha um registro de desfazimento, frequentemente chamado de trilha, de cada eliminação causada pela escolha. Quando essa escolha for desfeita, restaure os valores eliminados por ela, mantendo as restrições que pertencem a escolhas anteriores. Cópias dos domínios em cada nível oferecem outra implementação.

Acompanhe os domínios das oficinas

Use os horários 1–3 e as regras A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1. Aplique a regra unária para obter DE={2,3} e depois use a ordem fixa A, B, C, D, E.

  1. A=1 deixa B, C e D com {2,3}.
  2. B=2 deixa C com {3}.
  3. C=3 deixa D e E cada uma com {2}.
  4. D=2 remove 2 de E, esvaziando seu domínio. Retroceda.

Restaurar os domínios e testar B=3 força C a ser 2. D e E passam a ser 3, então atribuir D esvazia E novamente. A busca precisa alterar A. Com A=2, ela pode chegar a B=3,C=1,D=3,E=2. Esse percurso testa 12 valores, em comparação com 32 testes de candidatos no retrocesso simples na mesma ordem.

Reconheça o limite da verificação de um passo

Após a etapa 3, D e E têm 2 como único valor e devem ser diferentes. A verificação antecipada ainda não verificou essa restrição: nem D nem E recebeu uma nova atribuição. Ela detecta a falha apenas quando D recebe seu valor.

Esse é o limite central da verificação antecipada. Ela testa a variável atribuída em relação às suas vizinhas sem valor, sem propagar adiante a redução do domínio de uma vizinha. A consistência de arco pode acompanhar essas consequências entre variáveis sem valor.

Use os domínios mantidos

A MRV agora pode selecionar diretamente o menor domínio restante. Um domínio com um único valor frequentemente se torna a próxima escolha; um domínio vazio sinaliza falha sem acrescentar outra atribuição. Manter os domínios atualizados ajuda tanto a inferência quanto a ordenação.

Para no máximo n−1 vizinhas e no máximo d valores por vizinha, uma passagem de verificação antecipada usa cerca de O(nd) verificações binárias, supondo um teste da relação em tempo constante. Ela remove apenas valores incompatíveis com a atribuição atual, então o retrocesso continua completo. Esquecer de restaurar um valor eliminado pode fazer um ramo posterior perder uma solução válida; reduzir o domínio de uma variável sem relação pode ter o mesmo efeito.

Principais conclusões

  • A verificação antecipada reduz os domínios das vizinhas sem valor da variável recém-atribuída.
  • Um domínio vazio rejeita imediatamente o ramo atual.
  • Restaure as eliminações específicas do ramo ao desfazer uma escolha.
  • A verificação antecipada não propaga restrições entre duas variáveis sem valor.

3.2 Garanta a consistência de arco com AC-3

Um valor precisa de um par compatível em cada domínio vizinho. A consistência de arco torna explícita essa exigência de suporte e acompanha os efeitos das mudanças de domínio em todo um CSP binário.

O suporte tem direção

A consistência de nó primeiro remove valores proibidos por regras unárias. Para uma restrição binária, o arco direcionado X→Y é consistente quando todo valor em X tem pelo menos um valor compatível em Y. Esse valor em Y é um suporte. Revisar o arco elimina os valores sem suporte de sua cauda, X.

Para A<B com ambos os domínios {1,2,3}, revisar A→B elimina 3 de A. Revisar B→A elimina 1 de B. Os domínios resultantes são DA={1,2} e DB={2,3}. Um valor restante pode usar um suporte diferente para cada vizinha; os suportes não precisam formar uma solução conjunta.

Execute AC-3

O AC-3 usa uma fila de arcos direcionados:

  1. Inicialmente, coloque todos os arcos na fila.
  2. Retire X→Y e revise X usando o domínio de Y.
  3. Se o domínio de X ficar vazio, pare com falha.
  4. Se o domínio de X diminuir, adicione Z→X para cada outra vizinha Z de X, exceto Y.
  5. Continue até a fila ficar vazia.

Uma eliminação em X pode remover um suporte para Z, então a fila deve receber arcos que apontem para o domínio alterado. O arco de Y não precisa ser verificado novamente de imediato: os valores eliminados de X não davam suporte a nenhum valor de Y, pois nenhum deles era compatível com Y desde o início. Os domínios finais não vazios independem da ordem de processamento; ordens diferentes podem chegar à falha em domínios vazios diferentes.

Propague uma decisão sobre as oficinas

Para as regras das oficinas A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1, o AC-3 inicial remove 3 de A e 1 de B. Ele deixa C e D com {1,2,3} e E com {2,3}.

Agora decida C=1. O arco A→C remove 1 de A, deixando A=2. Revisar B em relação a A força B=3. D é diferente de C e A, então D=3. E é diferente de D e não pode ser 1, então E=2. As reduções de domínio foram além das vizinhas imediatas da decisão original.

A manutenção da consistência de arco (MAC) aplica essa inferência após cada decisão de busca. Partindo de domínios consistentes de arco, restringir X=x exige uma fila de arcos que chegam de suas vizinhas sem valor. Os valores eliminados dos domínios devem ser restaurados quando a busca desfaz o ramo.

Interprete o resultado e o custo
Resultado após consistência de nó e de arcoSignificado
Um domínio vazioNenhuma solução estende as restrições atuais.
Todo domínio tem um único valorA única atribuição restante satisfaz o CSP binário.
Alguns domínios têm vários valoresPode ser necessária mais inferência ou busca.

Um triângulo com domínios {vermelho, azul} e desigualdades nas três arestas continua consistente de arco, mas não tem solução. Cada aresta tem suportes separadamente, mas as três escolhas não podem funcionar juntas.

Com c restrições binárias e tamanho máximo de domínio d, AC-3 leva tempo O(cd3): uma revisão de arco verifica até d2 pares, e cada arco pode exigir até d rodadas à medida que sua cabeça perde valores. MAC gasta mais por nó de busca que a verificação antecipada, frequentemente em troca de uma árvore de busca muito menor.

Principais conclusões

  • Revisar X→Y remove de X os valores sem suporte.
  • Após o domínio de X diminuir, AC-3 verifica novamente os arcos que apontam para X.
  • Domínios não vazios e consistentes de arco ainda podem descrever um CSP sem solução.
  • MAC mantém a consistência de arco após decisões de busca.
  • AC-3 tem o limite padrão de pior caso O(cd3).
  • Conclusões sobre domínios com um único valor exigem que as restrições unárias e binárias tenham sido aplicadas.

3.3 Use níveis mais fortes de consistência e restrições globais

Suportes separados entre pares podem ocultar uma contradição no grupo. Níveis mais fortes de consistência e propagação global especializada examinam combinações que a consistência de arco não detecta, enquanto limites numéricos podem condensar domínios grandes em intervalos úteis.

Estenda atribuições a outra variável

A consistência de caminho examina triplas. Toda atribuição consistente a duas variáveis deve ter uma extensão a uma terceira que seja compatível com ambas. Em um triângulo colorido de vermelho ou azul, X vermelho e Y azul não deixam nenhum valor para Z. A consistência de caminho remove esse par permitido e acaba revelando a inviabilidade. Ela pode remover tuplas de relações, portanto faz mais do que eliminar valores individuais de domínios.

A consistência de ordem k exige que toda atribuição consistente a quaisquer k−1 variáveis possa ser estendida a qualquer variável adicional. Para CSPs binários, a consistência de ordem 1 corresponde à consistência de nó, a de ordem 2 à consistência de arco e a de ordem 3 à consistência de caminho. A consistência forte de ordem k inclui todos os níveis de 1 até k. Com consistência forte de ordem n em n variáveis e domínios não vazios, qualquer atribuição parcial consistente pode ser estendida até se tornar uma solução, sem retrocesso. Estabelecer essa propriedade tem custos de tempo e memória exponenciais no pior caso.

Conte os valores em Alldiff

Alldiff exige valores distintos para todas as variáveis em seu escopo. Se um grupo de m variáveis tiver apenas n valores possíveis distintos e m>n, nenhuma atribuição poderá satisfazê-lo.

Para três células com domínios {4,7}, as desigualdades entre pares são consistentes de arco: cada 4 tem suporte 7 em cada vizinha, e cada 7 tem suporte 4. Ainda assim, a contagem global falha porque são necessários três valores diferentes e existem apenas dois.

Se duas células tiverem o domínio {4,7}, elas devem usar 4 e 7 entre si. Esses valores podem ser removidos de todas as outras células dessa linha. Esse raciocínio de par nu usa um subconjunto de todo o escopo de Alldiff. Um propagador global simples também pode processar repetidamente variáveis com um único valor, remover seus valores das demais e verificar se restam valores distintos insuficientes. Propagadores mais fortes também reconhecem subconjuntos restritos.

Estreite os limites numéricos

A propagação de limites armazena um domínio por seu mínimo e máximo. A consistência de limites exige que cada extremidade tenha uma extensão que satisfaça cada restrição relevante; ela não verifica cada valor interior.

Para dois ônibus que transportam 100 pessoas, sejam B1∈[0,50] e B2∈[0,70], com B1+B2=100. O segundo ônibus transporta no máximo 70, forçando B1≥30. O primeiro transporta no máximo 50, forçando B2≥50. As janelas reduzidas são [30,50] e [50,70].

Para Preparar, Analisar e Relatar, que levam 20, 40 e 30 minutos nessa ordem, um prazo de 120 minutos dá os inícios mais tardios 30, 50 e 90. Inícios não negativos dão os inícios mais cedo 0, 20 e 60. A propagação para frente e para trás obtém essas janelas antes de um horário de início ser escolhido.

Escolha uma força de inferência útil

Cada célula de Sudoku tem 20 células relacionadas distintas: 8 em sua linha, 8 em sua coluna e mais 4 em sua caixa. Nas 81 células, isso produz 81×20/2=810 pares distintos que devem ser diferentes. Restrições globais preservam as mesmas soluções que esses pares, mas podem revelar pares nus e falta de valores mais cedo. Uma inferência mais forte custa mais por passagem; resolvedores práticos equilibram esse custo com a busca economizada, frequentemente combinando consistência de arco com propagação especializada de restrições globais e de limites.

Principais conclusões

  • A consistência de caminho verifica se um par consistente pode ser estendido a uma terceira variável.
  • A consistência forte de ordem k inclui todos os níveis inferiores de consistência.
  • Alldiff detecta grupos com valores distintos insuficientes.
  • Um par nu reserva seus dois valores para essas duas variáveis.
  • A propagação de limites estreita as extremidades sem enumerar um domínio numérico grande.
  • Uma inferência mais forte troca trabalho extra por passagem por menos busca.
4

Resolva CSPs com busca local

Uma programação de horários que viola algumas regras ainda pode ser um ponto de partida útil. A busca local mantém um valor para cada variável e repara conflitos um movimento por vez. O desafio é selecionar movimentos produtivos e escapar de regiões onde o progresso para. Você acompanhará a heurística de conflitos mínimos em um tabuleiro pequeno, examinará maneiras de dar continuidade aos reparos e escolherá um método de resolução adequado à evidência necessária em uma tarefa de programação ou atribuição.

4.1 Repare atribuições com a heurística de conflitos mínimos

A busca local começa com um valor para cada variável, mesmo quando algumas restrições falham. A heurística de conflitos mínimos repara essa atribuição completa mudando uma variável em conflito para um valor com o menor número possível de conflitos.

Escolha um reparo
  1. Construa uma atribuição completa, aleatoriamente ou de forma gulosa.
  2. Se nenhuma restrição for violada, retorne a solução.
  3. Escolha aleatoriamente uma variável envolvida em uma restrição violada.
  4. Avalie cada valor de seu domínio em relação às outras variáveis, que permanecem fixas.
  5. Escolha um valor com o menor número de conflitos, desempate aleatoriamente e repita até obter sucesso ou atingir um limite de passos.

Uma variável em conflito participa de pelo menos uma restrição violada. Ela não é necessariamente a variável com o maior número de violações. A escolha aleatória entre variáveis em conflito e valores empatados ajuda a evitar uma sequência rígida e repetida.

Repare um tabuleiro de 4 rainhas

Use uma rainha por coluna, com variáveis de linha Q1,Q2,Q3,Q4. Um par entra em conflito se suas linhas forem iguais ou se a diferença entre suas linhas for igual à diferença entre suas colunas. Comece com (2,4,2,3). As colunas 1 e 3 compartilham a linha 2; as colunas 3 e 4 se atacam na diagonal. As variáveis em conflito são Q1, Q3 e Q4.

Escolha Q3 e avalie as linhas enquanto Q1, Q2 e Q4 permanecem fixas:

Linha candidata para Q3Conflitos que envolvem Q3
10
22
32
43

A linha 1 produz (2,4,1,3), uma solução. Se Q1 tivesse sido escolhida, suas contagens para as linhas 1–4 seriam 0, 1, 2 e 2. Movê-la para a linha 1 produz (1,4,2,3), deixando o conflito diagonal Q3–Q4. Portanto, um reparo localmente melhor pode levar a um processo de reparo ainda incompleto.

Conte as restrições que envolvem a variável selecionada. Contar todas as violações em cada tabuleiro resultante produz a mesma ordenação, pois as restrições sem relação com a variável contribuem com uma constante para cada candidato. Isso simplesmente exige mais trabalho. Use uma definição consistente de conflito ao comparar candidatos.

Repare uma programação existente

Quando um instrutor fica indisponível, a programação atual já é uma atribuição completa. A heurística de conflitos mínimos pode começar nela e mover sessões até que as restrições novas e existentes sejam respeitadas. Uma pequena mudança frequentemente exige poucos reparos, embora um movimento possa criar novos conflitos em outro lugar. Se preservar o plano antigo for importante, atribua um custo explícito à mudança de uma atribuição; minimizar apenas as violações não minimiza as alterações na programação.

Experimentos com uma boa atribuição inicial exigiram relativamente poucos passos de reparo mesmo para um milhão de rainhas. Tabuleiros maiores ainda tornam cada passo mais custoso. A heurística de conflitos mínimos também foi usada na programação do Hubble, com uma redução relatada de cerca de três semanas para cerca de 10 minutos para programar uma semana de observações.

Interprete o comportamento da busca

Muitas famílias de CSPs aleatórios passam de majoritariamente solucionáveis para majoritariamente sem solução à medida que a razão entre restrições e variáveis aumenta. Perto dessa transição, decidir como as escolhas interagem costuma ser mais difícil. Problemas com poucas restrições podem ter muitas soluções fáceis de alcançar. Problemas sem solução e com muitas restrições podem ser rejeitados rapidamente por resolvedores completos baseados em propagação.

Atingir um limite de passos da heurística de conflitos mínimos significa que nenhuma solução foi encontrada naquela execução. O problema ainda pode ter solução. A força prática do método vem de reparos eficientes, incluindo movimentos entre valores com a mesma pontuação, embora as soluções sejam uma fração minúscula de todas as atribuições possíveis.

Principais conclusões

  • A heurística de conflitos mínimos começa com uma atribuição completa e repara restrições violadas.
  • Escolha uma variável em conflito e depois um valor com o mínimo de conflitos, com desempate aleatório.
  • As pontuações dos candidatos podem ignorar restrições que não envolvem a variável escolhida.
  • Reparar uma atribuição para torná-la viável e minimizar mudanças são objetivos diferentes.
  • Uma falha por limite de passos deixa a viabilidade sem resposta.

4.2 Escape de platôs e mínimos locais e escolha entre busca local e busca com retrocesso

Uma busca por reparos pode parar de melhorar enquanto ainda há conflitos. Para continuar, o resolvedor precisa de uma maneira de percorrer estados de mesma pontuação ou alterar quais movimentos parecem compensar. O resultado necessário também importa: um reparo viável e rápido e uma prova de inviabilidade exigem métodos diferentes.

Atravesse um platô

Um mínimo local tem violações, mas nenhum movimento de uma única variável reduz sua contagem. Um platô é uma região conectada de atribuições com a mesma pontuação. Movimentos que apenas diminuem a pontuação podem ficar presos; um movimento lateral muda o estado sem diminuí-la.

No problema das 4 rainhas, (1,4,2,3) tem um conflito entre Q3 e Q4. Com as outras rainhas fixas, as contagens de Q3 para as linhas 1–4 são 1, 1, 3 e 2; as de Q4 são 2, 2, 1 e 2. Nenhuma das variáveis tem um movimento que melhore a pontuação.

Mover Q3 para a linha 1 produz (1,4,1,3), ainda com um conflito, agora Q1–Q3 compartilhando uma linha. Nesse novo estado, as contagens de Q1 são 1, 0, 3 e 1. Mover Q1 para a linha 2 produz (2,4,1,3) e elimina o conflito. O movimento lateral alterou quais movimentos de melhoria estavam disponíveis.

Mantenha a busca em andamento
MétodoComo altera a busca
Busca tabuProíbe temporariamente estados ou movimentos recentes para reduzir ciclos.
Ponderação de restriçõesAumenta a importância das restrições que continuam violadas.
Reinícios aleatóriosRecomeçam com outra atribuição completa após passos sem resultado.
Recozimento simuladoÀs vezes aceita movimentos piores, com aceitação menor à medida que a temperatura cai.

Uma lista tabu é uma memória de curta duração. Ela desencoraja o retorno imediato a um estado que acabou de ser deixado. Um reinício explora outra região, enquanto o recozimento pode atravessar uma região com mais conflitos na execução atual.

Com a ponderação de restrições, comece cada peso em 1 e pontue um estado pela soma dos pesos de suas restrições violadas. Escolha uma mudança que reduza essa pontuação ponderada e depois aumente os pesos das restrições que continuam violadas. Falhas repetidas ficam mais custosas, remodelando a paisagem da busca. Uma pontuação ponderada zero ainda significa que toda restrição rígida com peso positivo é satisfeita.

Escolha a evidência de que você precisa

A busca local é incompleta: ela pode deixar de encontrar uma solução existente, e uma execução finita malsucedida não resolve a questão da inviabilidade. O retrocesso com propagação em domínios finitos é completo: em algum momento encontra uma solução ou esgota todas as complementações possíveis.

Use a busca local quando um problema grande com poucas restrições precisar de uma atribuição viável ou de um reparo rápido. O retrocesso com MRV e MAC é uma escolha forte para quebra-cabeças com muitas restrições e sempre que a tarefa exigir um resultado de inviabilidade. O tempo de execução ainda depende da instância; essas escolhas de método se baseiam em suas garantias.

A programação das oficinas tem a solução única A=2,B=3,C=1,D=3,E=2. Acrescentar C≠1 a elimina. A heurística de conflitos mínimos pode tentar reparos até seu limite, mas apenas uma busca completa que esgote os casos restantes estabelece que o organizador precisa mudar uma exigência, por exemplo, acrescentando outro horário.

Principais conclusões

  • Um movimento lateral pode revelar um movimento de melhoria além de um platô.
  • Memória tabu, pesos, reinícios e recozimento tratam obstáculos diferentes ao progresso.
  • A busca local é incompleta; o retrocesso exaustivo em domínios finitos é completo.
  • Escolha um método completo quando for necessário estabelecer a inviabilidade.
5

Aproveite a estrutura de um problema

A estrutura de um grafo de restrições pode ser tão importante quanto o tamanho de seus domínios. Componentes separados podem ser resolvidos independentemente, e uma árvore permite uma passagem de redução dos filhos para os pais seguida de atribuições dos pais para os filhos sem retrocesso. Ciclos exigem mais trabalho, mas um conjunto de corte pequeno ou uma decomposição em árvore de pequena largura podem controlá-lo. Esses métodos relacionam a estrutura do grafo ao tempo necessário para encontrar uma atribuição consistente.

5.1 Separe subproblemas independentes e resolva CSPs com estrutura de árvore

Um grafo de restrições pode revelar problemas menores dentro de um problema grande. Componentes independentes podem ser resolvidos separadamente, e componentes sem ciclos admitem um algoritmo particularmente eficiente, com uma passagem de redução dos filhos para os pais e uma passagem de atribuição dos pais para os filhos.

Separe componentes desconectados

Um componente conectado é independente quando nenhuma restrição liga suas variáveis a outro componente. Resolva cada componente e depois combine uma solução de cada um. Se algum componente não tiver solução, o CSP completo não terá solução. No mapa da Austrália, a Tasmânia é independente da parte continental.

Com n variáveis divididas em grupos independentes de tamanho c, encontrar uma atribuição completa exige trabalho da ordem de O((n/c)dc) em vez de O(dn). Para 60 variáveis binárias divididas em três grupos de 20, buscas exaustivas separadas consideram no máximo 3×220=3.145.728 atribuições em vez de cerca de 1,15×1018. Enumerar todas as soluções combinadas ainda exigiria listar as combinações; a economia descreve a resolução dos problemas dos componentes.

Ordene uma árvore a partir da raiz

Um CSP binário tem estrutura de árvore quando seu grafo de restrições não tem ciclos. Uma árvore conectada tem um caminho entre cada par de variáveis; uma floresta contém árvores separadas. Primeiro aplique as restrições unárias. Escolha qualquer raiz e ordene as variáveis de modo que cada pai apareça antes de seus filhos.

A consistência de arco direcionada nessa ordem exige que cada variável anterior tenha suporte em cada vizinha posterior. Em uma árvore, essas vizinhas posteriores são seus filhos. A direção do suporte é do pai para o filho, embora o algoritmo processe os filhos antes dos pais.

Reduza dos filhos para os pais, atribua dos pais para os filhos
  1. Leia a ordem de trás para frente, excluindo a raiz. Para cada filho, revise o arco de seu pai para esse filho. Elimine do domínio do pai os valores sem suporte.
  2. Se um domínio ficar vazio, informe que não há solução.
  3. Leia a ordem de frente para trás. Escolha qualquer valor restante para a raiz e depois atribua a cada filho um valor compatível com o valor atribuído ao pai.

Os descendentes do filho já foram processados quando seu pai é revisado. Portanto, um valor restante do pai tem suporte em cada filho, e cada valor do filho já tem suporte nos níveis abaixo. Ramos de filhos diferentes não têm arestas que os conectem, então esses suportes podem ser escolhidos independentemente. Por isso, a passagem dos pais para os filhos não precisa de retrocesso.

Acompanhe a árvore das oficinas

Fixe C=1 na programação das oficinas e remova 1 dos domínios das outras oficinas. O grafo restante é o caminho B–A–D–E, com domínios {2,3} e restrições A<B,A≠D,D≠E.

Escolha a raiz A e a ordem A, B, D, E. A passagem dos filhos para os pais revisa D→E e depois A→D, sem alterações. Por fim, A→B remove 3 de A porque B não tem valor maior. Atribuir dos pais para os filhos produz A=2,B=3,D=3,E=2. Restaurar C=1 produz a programação completa.

Para n variáveis com tamanho máximo de domínio d, a passagem dos filhos para os pais revisa n−1 arcos a um custo de até O(d2) cada, resultando em tempo O(nd2). A garantia depende da ausência de ciclos. Um ciclo pode conectar ramos de filhos separados e invalidar a independência que tornava seguras essas escolhas locais.

Principais conclusões

  • Componentes desconectados podem ser resolvidos independentemente e combinados.
  • O método para árvores primeiro aplica restrições unárias e ordena os pais antes dos filhos.
  • A passagem dos filhos para os pais revisa arcos do pai para o filho e reduz os domínios dos pais.
  • A passagem dos pais para os filhos escolhe valores compatíveis sem retrocesso.
  • O limite de tempo padrão para um CSP com estrutura de árvore é O(nd2).

5.2 Reduza a árvores os problemas cuja estrutura se aproxima de uma árvore

Um grafo com poucos ciclos ainda pode estar próximo o suficiente de uma árvore para ser resolvido eficientemente. O condicionamento por conjunto de corte atribui valores primeiro a variáveis selecionadas; a decomposição em árvore agrupa variáveis em partes sobrepostas. Ambos fazem com que a coordenação restante tenha estrutura de árvore.

Condicione por um conjunto de corte de ciclos

Um conjunto de corte de ciclos é um conjunto de variáveis cuja remoção deixa uma árvore ou floresta. Verifique todos os ciclos restantes, não apenas o mais visível. Para o mapa da Austrália, remover SA deixa o caminho WA–NT–Q–NSW–V e T isolada. Para o grafo das oficinas, remover C deixa B–A–D–E.

Para cada atribuição ao conjunto de corte que satisfaça suas restrições internas:

  1. Remova valores incompatíveis dos domínios restantes.
  2. Resolva cada árvore restante usando a redução dos filhos para os pais e a atribuição dos pais para os filhos.
  3. Se todas tiverem sucesso, combine suas atribuições com os valores do conjunto de corte. Caso contrário, tente outra atribuição do conjunto de corte.

No problema das oficinas, C=1 deixa uma árvore solucionável. Com C=2, A e B devem vir de {1,3} e A<B força A=1,B=3. D deve ser diferente de A e C, produzindo D=3. E não pode ser 1 e deve ser diferente de C e D, ficando sem valor. Com C=3, A e B devem ser 1 e 2; D deve então ser 2, deixando E sem valor novamente.

Para um conjunto de corte de tamanho c, há no máximo dc atribuições, cada uma seguida de um problema em árvore de custo O((n−c)d2). O total é O(dc(n−c)d2). Um c pequeno torna isso útil; o custo continua exponencial em c. Encontrar um conjunto de corte mínimo é NP-difícil, mas um conjunto de corte válido que não seja mínimo ainda produz um procedimento correto.

Una bolsas sobrepostas

Uma decomposição em árvore organiza conjuntos de variáveis, chamados bolsas, em uma árvore. Ela deve satisfazer três condições:

  • Toda variável aparece em uma bolsa.
  • O escopo de toda restrição cabe em pelo menos uma bolsa.
  • As bolsas que contêm uma mesma variável formam uma parte conectada da árvore de bolsas.

A terceira regra é a propriedade de interseção contínua. Se X aparece nas duas extremidades de um caminho de bolsas, deve aparecer em todo esse caminho. Caso contrário, bolsas distantes poderiam escolher valores inconsistentes para X sem nenhuma verificação intermediária de concordância.

As atribuições localmente válidas de cada bolsa tornam-se valores de uma megavariável. Bolsas adjacentes devem concordar sobre as variáveis compartilhadas. A árvore resultante coordena as soluções locais. Para um triângulo X–Y–Z–X mais a aresta Z–W, as bolsas {X,Y,Z} e {Z,W} cobrem todas as arestas e concordam sobre Z.

A largura de árvore da decomposição é o tamanho de sua maior bolsa menos 1. A largura de árvore de um grafo é o mínimo entre as decomposições válidas. Para largura w, o limite padrão de CSP é O(ndw+1). Uma largura fixa e limitada controla o expoente.

Elimine a simetria de valores

Quando os nomes das cores não têm significado especial, permutar vermelho, verde e azul preserva a validade. As seis soluções da parte continental da Austrália são seis renomeações de um padrão. Fixar a ordem NT antes de SA antes de WA na ordem de cores vermelho, verde, azul mantém um representante. Essa restrição de quebra de simetria só é válida quando a renomeação preserva as regras originais. Uma regra que exige que determinada região seja vermelha torna essa cor especial e altera quais permutações continuam sendo simetrias.

Principais conclusões

  • Um conjunto de corte de ciclos deve eliminar todos os ciclos.
  • O condicionamento testa atribuições ao conjunto de corte e resolve a floresta restante.
  • O custo do condicionamento é exponencial no tamanho do conjunto de corte.
  • Decomposições em árvore abrangem variáveis e restrições e satisfazem a interseção contínua.
  • A largura de árvore é o tamanho máximo de uma bolsa menos um, minimizado entre as decomposições do grafo.
  • Quebre a simetria de valores apenas para renomeações que preservem as restrições originais.

Exercícios resolvidos de Problemas de satisfação de restrições

5 Lições Interativas

1

Construa e verifique um modelo de CSP

13 passos
Modele programações e atribuições, examine escopos de restrições e teste se o modelo preserva as regras reais.
  1. 1
    IntroduçãoTransforme uma tarefa em escolhas

    Um resolvedor precisa de uma descrição precisa do que pode ser escolhido e de quais combinações funcionam. Essa descrição é um conjunto de variáveis com domínios de valores, mais restrições que cobrem, cada uma, um escopo de variáveis, e qualquer erro nela se transmite a toda busca. Construa uma pequena programação de horários e depois compare-a com modelos de atribuição e de quebra-cabeças. O objetivo é tornar visíveis as decisões e suas dependências antes de tentar resolvê-las.

  2. 2
    ExplicaçãoNomeie cada decisão

    Sejam A e B os horários das oficinas, cada um em {1,2,3}. A deve preceder B, então escreva A<B. As variáveis são as escolhas de horário das oficinas; os números são valores.

    O escopo da restrição é A e B. Sua relação permite os pares (1,2),(1,3),(2,3). Um resolvedor pode usar essa lista de tuplas ou a regra de ordenação para testar uma candidata.

  3. 3
    ExemploVerifique uma atribuição candidata

    Apenas com A=2, a atribuição é parcial e consistente. Escolher B=1 a completa, mas viola a regra de ordenação. Escolher B=3 produz uma atribuição completa e consistente.

    Essas são verificações separadas: toda variável precisa de um valor de seu domínio e toda restrição deve ser respeitada. Uma atribuição parcial pode passar nas verificações atuais e ainda assim não permitir nenhuma complementação.

  4. 4
    DesafioA escolha parcial pode ser completada?

    Três variáveis X, Y e Z têm domínios {1,2} e restrições X≠Y,Y≠Z,X≠Z. A X é atribuído 1. Essa atribuição parcial consistente pode ser estendida até uma solução?

    ---reveal---

    Não. X, sozinha, não viola nenhuma restrição. Completá-la força Y e Z a serem 2, o que viola a desigualdade entre elas. Consistência atual e possibilidade de completar são exigências diferentes.

  5. 5
    ConexãoIdentifique dependências no grafo

    Um grafo de restrições binárias coloca um nó em cada variável e uma aresta em cada par sujeito a uma restrição. O triângulo do desafio mostra três escolhas que interagem. Uma variável isolada não tem dependência binária de outra variável.

    Esse grafo dá suporte a métodos posteriores: a redução de domínios segue as arestas, e componentes desconectados podem ser resolvidos independentemente. Uma restrição de ordem superior precisa ter todo o seu escopo representado, por exemplo, por um nó separado de restrição.

  6. 6
    ExplicaçãoRelacione a regra ao seu escopo

    Uma regra unária restringe um domínio: E≠1 remove o horário mais cedo de Ética. Uma regra binária conecta duas variáveis: A<B ordena as oficinas. Uma regra de ordem superior, como X+Y+Z=10, conecta três escolhas.

    Uma restrição global fornece uma regra nomeada sobre um grupo de tamanho variável. Alldiff exige que todos os valores em seu escopo sejam diferentes entre si.

  7. 7
    ExemploPor que manter Alldiff?

    Três variáveis de relatórios permitem, cada uma, os revisores 1 e 2. Cada par pode receber revisores diferentes, mas três relatórios não podem usar três revisores distintos de um conjunto de dois.

    Alldiff revela essa falta de valores no nível do grupo. Sua forma de desigualdades entre pares tem as mesmas soluções, mas verificações separadas de pares podem não detectar a contradição. A representação afeta a inferência que um resolvedor pode realizar.

  8. 8
    DesafioExigência ou preferência?

    Um plano de salas deve manter as reuniões dentro da capacidade. Uma pessoa organizadora prefere uma sala perto da entrada, mas há uma sala adequada mais distante disponível. Escolher a sala mais distante deve tornar o plano inviável?

    ---reveal---

    Não. A capacidade é uma exigência rígida, enquanto a localização é uma preferência flexível. A sala mais distante pode ter um custo de preferência sem invalidar o plano. A viabilidade ainda exige que toda regra rígida seja respeitada.

  9. 9
    ExemploModele o dia de oficinas

    Use as variáveis A–E para Fundamentos de Python, Python Avançado, Estatística, Bancos de Dados e Ética. Cada uma ocupa o horário 1, 2 ou 3.

    Participantes compartilhados produzem A≠C,A≠D,C≠D,B≠C,C≠E,D≠E. Fundamentos precede Avançado, então A<B. Ética não pode ocorrer no horário 1, então E≠1. Cada regra conecta exatamente as decisões que ela rege.

  10. 10
    ExemploVerifique a programação completa

    Teste A=2,B=3,C=1,D=3,E=2. Os seis pares com participantes compartilhados têm horários diferentes. Fundamentos ocorre antes de Avançado, e Ética não ocorre de manhã. Toda oficina tem um horário permitido, então esta é uma solução.

    B e D compartilham o horário 3, o que é permitido porque nenhuma restrição as conecta. Adicionar uma regra exigindo que todas as oficinas tenham horários diferentes rejeitaria essa programação legítima.

  11. 11
    ExplicaçãoEscreva corretamente a ausência de sobreposição

    Se a tarefa X dura 20 minutos e a tarefa Y dura 35, a máquina que elas compartilham permite qualquer uma das ordens:

    SX+20≤SYouSY+35≤SX.

    Cada alternativa compara um horário de término com o horário de início da outra tarefa. Usar “e” exigiria que as duas tarefas de duração positiva precedessem uma à outra. Use uma única regra de precedência apenas quando a ordem das tarefas estiver realmente fixada.

  12. 12
    DesafioConstrua um modelo de atribuição

    Três relatórios precisam de três revisores diferentes. O revisor 2 tem um conflito de interesse com o relatório A. Quais variáveis, domínios e restrições expressam a tarefa?

    ---reveal---

    Use uma variável por relatório com os valores de revisores 1–3. Remova 2 do domínio de A e aplique Alldiff aos três relatórios. Essas são uma restrição unária de elegibilidade e uma regra global de valores distintos; o modelo atribui exatamente um revisor a cada relatório.

  13. 13
    RecapitulaçãoVerifique o modelo antes da busca

    Identifique as decisões, liste seus valores permitidos e escreva as exigências reais sobre elas. Verifique um caso válido e um inválido. Regras rígidas determinam a viabilidade; custos de preferência orientam a otimização. A escolha das variáveis deve manter essas regras fáceis de expressar.

2

Acompanhe e melhore o retrocesso

14 passos
Acompanhe escolhas recursivas, aplique a ordenação de variáveis e valores e use explicações de conflitos para evitar repetir trabalho malsucedido.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoConstrua uma solução uma escolha por vez
  2. 2
    Ideia-chaveUma próxima variável é suficiente
  3. 3
    ExemploInicie a busca de ordem fixa
  4. 4
    ExemploReconheça o beco sem saída
  5. 5
    DesafioQual chamada testa outro valor?
  6. 6
    ExplicaçãoEscolha a variável propensa a falhar
  7. 7
    ExemploDeixe os domínios orientarem a ordem das oficinas
  8. 8
    Ideia-chaveMantenha opções abertas ao escolher o valor
  9. 9
    DesafioEscolha um valor após selecionar a variável
  10. 10
    ExemploSalte uma decisão sem relação
  11. 11
    ExplicaçãoLeve as causas de volta pela busca
  12. 12
    ExemploAprenda uma combinação que falhou
  13. 13
    DesafioConcilie ordenação e aprendizado
  14. 14
    RecapitulaçãoDiferencie as melhorias da busca
3

Acompanhe a redução de domínios de uma decisão até um conflito de grupo

17 passos
Acompanhe a verificação antecipada, AC-3, MAC e propagação mais forte, incluindo os limites de cada nível de inferência.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoAcompanhe as implicações de uma mudança de domínio
  2. 2
    ExplicaçãoReduza os domínios das vizinhas imediatas
  3. 3
    ExemploObserve a interação não detectada
  4. 4
    DesafioRestaure apenas os valores corretos
  5. 5
    ExplicaçãoO suporte é verificado da cauda para a cabeça
  6. 6
    ExemploInicie uma cadeia de consequências
  7. 7
    ExemploConclua o fechamento consistente de arco
  8. 8
    DicaColoque na fila os arcos que podem perder suporte
  9. 9
    DesafioO que significa um fechamento não vazio?
  10. 10
    ConexãoMantenha a consistência durante a busca
  11. 11
    ExplicaçãoVerifique um par em relação a uma terceira variável
  12. 12
    Ideia-chavePor que a consistência forte importa
  13. 13
    ExemploReserve um par de valores
  14. 14
    ExemploPropague limites numéricos nas duas direções
  15. 15
    DesafioDetecte a falta de valores em um grupo
  16. 16
    DesafioEscolha a inferência que explica a falha
  17. 17
    RecapitulaçãoInterprete cada garantia com precisão
4

Repare um tabuleiro e escape de um platô

11 passos
Execute a heurística de conflitos mínimos, acompanhe um movimento lateral e selecione um método que forneça a evidência de viabilidade necessária.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoRepare uma candidata completa
  2. 2
    ExplicaçãoEscolha uma variável em conflito
  3. 3
    ExemploLocalize os ataques no tabuleiro
  4. 4
    ExemploPontue as linhas candidatas de uma rainha
  5. 5
    DesafioIgnore os conflitos constantes
  6. 6
    ExemploChegue a um estado sem movimento de melhoria
  7. 7
    ExemploUse um movimento lateral para permitir um reparo
  8. 8
    DicaRelacione o método de escape ao obstáculo
  9. 9
    DesafioEscolha um resolvedor para decidir a inviabilidade
  10. 10
    ConexãoRepare controlando as alterações
  11. 11
    RecapitulaçãoAvalie o resultado do reparo
5

Resolva árvores e controle os ciclos restantes

15 passos
Acompanhe a resolução de componentes, as passagens na árvore, as tentativas com conjuntos de corte e os requisitos de uma decomposição em árvore válida.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoUse o grafo para reduzir o trabalho
  2. 2
    ExplicaçãoResolva componentes independentes separadamente
  3. 3
    ExplicaçãoEstabeleça a ordem da árvore
  4. 4
    ExemploReduza a árvore das oficinas dos filhos para os pais
  5. 5
    ExemploAtribua os valores restantes dos pais para os filhos
  6. 6
    DesafioIdentifique um arco invertido
  7. 7
    ExplicaçãoQuebre todos os ciclos com um conjunto de corte
  8. 8
    ExemploTeste o conjunto de corte das oficinas
  9. 9
    Ideia-chaveConjuntos de corte pequenos controlam o expoente
  10. 10
    ExplicaçãoSubstitua ciclos por bolsas sobrepostas
  11. 11
    DesafioVerifique o caminho de bolsas
  12. 12
    ConexãoUse o tamanho da bolsa para determinar o custo
  13. 13
    ConexãoElimine nomes de cores intercambiáveis
  14. 14
    DesafioCombine um conjunto de corte com a garantia para árvores
  15. 15
    RecapitulaçãoVerifique a condição estrutural

Questões de Problemas de satisfação de restrições

40 Questões de Prática em 4 conjuntos

Conjunto 1: Acompanhe a propagação e diagnostique falhas de busca10 Questões de Prática

Questão 1 de 10

As variáveis P, Q e R têm domínios DP=DQ={1,2} e DR={1}. As regras são P≠Q e Q≠R. O que acontece quando a atribuição parcial P=1 é estendida?
  1. Q deve ser 2, então R = 1 funciona
  2. Q deve ser 1, o que conflita com P
  3. Q e R devem ser ambas 2
  4. P deve ser 2 porque R é 1
Mostrar respostaOcultar resposta
Resposta: A
P = 1 força Q = 2, e R = 1 então é diferente de Q, de modo que essa atribuição parcial pode ser estendida até uma solução. A consistência, por si só, deixa em aberto a possibilidade de extensão em geral, mas a cadeia apresentada permite essa complementação. Exigir que P seja diferente de R inventaria uma aresta entre elas.

Questão 2 de 10

Para X<Y, sejam DX={2,5} e DY={3,4}. O que acontece quando o arco X→Y é revisado?
  1. Y perde 3; X permanece inalterado
  2. X perde 2; Y permanece inalterado
  3. X perde 5; Y permanece inalterado
  4. Y perde 4; X permanece inalterado
Mostrar respostaOcultar resposta
Resposta: C
O valor 2 tem suporte em Y, mas 5 não tem valor maior ali, então a revisão elimina 5 de X. Um arco revisa o domínio de sua cauda. Alterar Y inverteria a direção do teste de suporte e exigiria revisar o arco oposto.

Questão 3 de 10

Quatro variáveis têm três valores cada uma. Uma busca ramifica sobre toda variável sem valor e todo valor até chegar a atribuições completas. Por qual fator selecionar uma variável por nível reduz o número de folhas antes da redução por restrições?
  1. 4
  2. 12
  3. 81
  4. 24
Mostrar respostaOcultar resposta
Resposta: D
Cada atribuição final aparece uma vez para cada ordenação das quatro variáveis, produzindo 4! = 24 cópias. Escolher uma variável em cada nível elimina essas ordens repetidas. As 81 combinações possíveis de valores continuam sendo folhas possíveis, então 81 é a contagem de atribuições, não o fator de redução.

Questão 4 de 10

A ordem de atribuição é A, B, C, D, E, F. F não tem valor permitido e seu conjunto de conflitos é {A,C}. Para onde retorna o retrocesso com salto simples?
  1. A
  2. C
  3. D
  4. E
Mostrar respostaOcultar resposta
Resposta: B
C é a variável atribuída mais recentemente no conjunto de conflitos, então o retrocesso com salto retorna a ela. E é a antecessora cronológica, mas não faz parte da causa registrada dessa falha. Retornar até A ignoraria a oportunidade de reparar o ramo alterando C.

Questão 5 de 10

Seja DU=DV=DW={2,5,8}, com U<V e V<W. Quais domínios permanecem após o término de AC-3?
  1. DU={2,5},DV={5},DW={5,8}
  2. DU={2},DV={5},DW={8}
  3. DU={2,5},DV={5,8},DW={2,5,8}
  4. DU={2},DV={2,5},DW={5,8}
Mostrar respostaOcultar resposta
Resposta: B
U < V remove V = 2, e V < W remove V = 8, deixando V = 5. O domínio alterado da variável do meio então força U = 2 e W = 8. Manter 5 em U ou W interrompe a propagação cedo demais: esses valores perdem o suporte necessário quando V fica com um único valor.

Questão 6 de 10

Três códigos de acesso distintos satisfazem Alldiff⁡(H,J,K), com DH=DJ={2,8} e DK={2,5,8}. Qual valor a propagação global força para K?
  1. 5
  2. 2
  3. 8
  4. 2 ou 8
Mostrar respostaOcultar resposta
Resposta: A
H e J devem usar 2 e 8 entre si, então K deve usar 5. Verificações de arco entre pares deixam cada valor de K com suporte separadamente, mas o par compartilhado reserva os dois valores em conjunto. Permitir K = 2 ou 8 deixaria valores distintos insuficientes para H e J.

Questão 7 de 10

Uma execução de reparo seleciona a variável T. Seus valores candidatos têm contagens locais de violações 1, 3 e 2, enquanto quatro restrições violadas não envolvem T. Quais são as contagens totais de violações dos três estados resultantes?
  1. 1, 3, 2
  2. 4, 4, 4
  3. 5, 7, 6
  4. 4, 12, 8
Mostrar respostaOcultar resposta
Resposta: C
As quatro violações sem relação permanecem inalteradas qualquer que seja o valor de T selecionado, então some quatro a cada contagem local. Os totais são 5, 7 e 6, com o mesmo melhor candidato das pontuações locais. Multiplicar por quatro trataria as violações sem relação como cópias repetidas de cada conflito local.

Questão 8 de 10

Um resolvedor se move repetidamente entre duas atribuições que violam uma restrição cada uma. Qual mudança desencoraja diretamente o retorno imediato à atribuição que acabou de ser deixada?
  1. Escolher sempre a mesma variável em conflito
  2. Permitir apenas movimentos com a mesma pontuação
  3. Reiniciar com a mesma atribuição inicial
  4. Manter uma lista tabu curta de estados recentes
Mostrar respostaOcultar resposta
Resposta: D
Uma lista tabu proíbe temporariamente estados ou movimentos recentes, bloqueando diretamente o retorno imediato que causa o ciclo. Movimentos laterais, por si só, ainda permitem ir e voltar com a mesma pontuação. Reiniciar com o mesmo estado também não fornece uma nova região inicial para explorar.

Questão 9 de 10

Uma árvore com raiz é o caminho R–S–T–W, com ordem R, S, T, W e restrições R<S,S<T,T<W. Os domínios são DR={1,2,3},DS={2,3,4},DT={3,4},DW={4}. Quais domínios permanecem após a passagem dos filhos para os pais?
  1. DR={1},DS={2},DT={3},DW={4}
  2. DR={1,2},DS={2,3},DT={3},DW={4}
  3. DR={1},DS={2,3},DT={3,4},DW={4}
  4. DR={1,2,3},DS={2},DT={3},DW={4}
Mostrar respostaOcultar resposta
Resposta: A
Revise T→W primeiro, deixando T = 3. Depois, S→T deixa S = 2, e R→S deixa R = 1. Manter 2 em R ou 3 em S interrompe a propagação cedo demais; cada pai deve ser revisado após o domínio de seu filho refletir os descendentes.

Questão 10 de 10

As bolsas {A,B,C}, {C,D} e {A,D} formam um caminho que cobre o ciclo A–B–C–D–A. As bolsas das extremidades permanecerão fixas. Qual é a menor mudança na bolsa do meio que torna a decomposição válida e qual é a largura resultante?
  1. Substituir C por A; largura 2
  2. Adicionar A à bolsa do meio; largura 2
  3. Remover D da bolsa do meio; largura 2
  4. Adicionar uma bolsa separada {A} na extremidade; largura 2
Mostrar respostaOcultar resposta
Resposta: B
A ocorre nas duas bolsas das extremidades, então também deve ocorrer na bolsa do meio para satisfazer a interseção contínua. Adicionar A produz {A, C, D}, preservando a cobertura de todas as arestas e as ocorrências conectadas. O tamanho três da maior bolsa dá largura dois; substituir C por A perderia a cobertura da aresta C–D.
Conjunto 2: Modele escolhas e acompanhe os algoritmos básicos10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Três entregas J, K e L assumem, cada uma, um valor de {1,2}. A única restrição é J≠K. Como a atribuição J=1,K=2 deve ser classificada?
  1. Completa e consistente
  2. Parcial e consistente
  3. Parcial e inconsistente
  4. Completa e inconsistente
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Quatro canais de sensores devem usar frequências diferentes entre si. Quantas desigualdades entre pares expressam a mesma exigência que Alldiff sobre essas quatro variáveis?
  1. 4
  2. 8
  3. 12
  4. 6
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Os testes U e V exigem o mesmo dispositivo por 12 e 18 minutos. Seus horários de início não negativos são SU e SV. Qual restrição permite qualquer uma das ordens e impede a sobreposição?
  1. SU+12≤SV ou SV+18≤SU
  2. SU+12≤SV e SV+18≤SU
  3. SU+18≤SV ou SV+12≤SU
  4. SU+12≤SV ou SV+12≤SU
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Um resolvedor de CSP em profundidade testa P=2, explora todas as continuações consistentes e descobre que todas falham. P também tem o valor 4 ainda não testado. O que o resolvedor deve fazer em seguida?
  1. Manter P = 2, tentar novamente os filhos
  2. Desfazer P e retornar falha
  3. Desfazer P = 2 e testar P = 4
  4. Desfazer tudo e reiniciar a busca
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Variáveis sem valor têm domínios DH={1,4}, DJ={2} e DK={1,2}. H tem quatro vizinhas sem valor, J tem uma e K tem três. Usando MRV com grau para desempate, qual variável vem em seguida?
  1. J
  2. H
  3. K
  4. H ou K
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Sejam DM={1,2,3,4} e DN={2,3,4}, com M<N. Após atribuir M=3, qual domínio a verificação antecipada deixa para N?
  1. {2,4}
  2. {3,4}
  3. {4}
  4. {2,3}
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Para X+Y+Z=7, uma variável auxiliar U contém todas as triplas permitidas e está ligada a X, Y e Z por restrições de igualdade dos componentes. Se U=(1,4,2), quais valores são exigidos?
  1. X=4,Y=2,Z=1
  2. X=1,Y=2,Z=4
  3. X=1,Y=4,Z=2
  4. X=2,Y=4,Z=1
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Uma atribuição completa tem quatro restrições violadas. Uma variável selecionada R participa de uma delas. Os valores candidatos a, b e c dão a R contagens de conflitos 2, 0 e 1, respectivamente. Qual valor a heurística de conflitos mínimos seleciona?
  1. a
  2. c
  3. a ou c
  4. b
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Um grafo de restrições binárias tem componentes {U,V} e {W,Z} sem aresta entre eles. Cada componente tem uma solução. Como uma solução do CSP completo pode ser formada?
  1. Usar apenas a solução de um componente
  2. Combinar uma solução de cada componente
  3. Exigir valores iguais entre os componentes
  4. Atribuir os mesmos valores aos dois componentes
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Um grafo tem as arestas P–Q, Q–R, R–S, S–P, R–T, T–U e U–R. Uma variável será condicionada para deixar um grafo sem ciclos. Qual conjunto de corte com uma única variável funciona?
  1. R
  2. P
  3. T
  4. Q
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Conjunto 3: Combine decisões, inferência e reparo10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Variáveis sem valor têm DA=DB={1,2} e DC={1,2,3}. As regras são A≠B e A<C. Use MRV, grau para desempate e LCV. Qual variável e qual valor são escolhidos?
  1. B = 1
  2. A = 2
  3. C = 3
  4. A = 1
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

O processamento leva 16 minutos, seguido de uma verificação de 24 minutos e depois de um empacotamento de 10 minutos. Todos os horários de início são minutos inteiros não negativos, tempo ocioso é permitido e o empacotamento deve terminar até o minuto 80. Quais são as janelas de início mais restritas nessa ordem?
  1. [0,64], [16,56], [40,70]
  2. [0,30], [16,40], [40,70]
  3. [0,30], [16,46], [40,70]
  4. [0,40], [16,56], [40,80]
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

A ordem de atribuição é L, M, N, P, Q. Q falha com conjunto de conflitos {L,N} e salta para N, cujo conjunto de conflitos atual é {M}. N então esgota seus valores sem novos contribuintes para o conflito. Para onde o retrocesso com salto dirigido por conflitos retorna em seguida?
  1. M
  2. L
  3. P
  4. Q
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Seja DA=DB=DC={1,2,3}, com A≠B,A≠C,B≠C. A verificação antecipada segue A=1 e depois B=2. Se B for desfeita enquanto A permanece atribuída, quais domínios B e C devem ter antes de testar o próximo valor de B?
  1. DB={1,2,3},DC={1,2,3}
  2. DB={2,3},DC={2,3}
  3. DB={2,3},DC={3}
  4. DB={2},DC={2,3}
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Um CSP binário tem domínios DP={1,2}, DQ={1,2} e DR={2,3} com P≠Q,Q<R,P=R. O que acontece quando AC-3 é executado até o fim?
  1. Deixa P = 1, Q = 2, R = 3
  2. Encontra um domínio vazio
  3. Deixa todos os domínios inalterados
  4. Deixa P = 2, Q = 1, R = 2
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Duas quantidades inteiras satisfazem U+V=68, com U∈[0,30] e V∈[0,50]. Uma nova regra de capacidade reduz o máximo de V para 42. Após a propagação de limites, quais são os intervalos mais restritos?
  1. U∈[26,30], V∈[38,42]
  2. U∈[18,30], V∈[38,42]
  3. U∈[26,30], V∈[26,42]
  4. U∈[26,38], V∈[30,42]
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Uma atribuição completa satisfaz todas as regras anteriores de programação. Uma nova restrição de disponibilidade cria conflitos. A pessoa responsável exige o menor número de atribuições alteradas entre os reparos viáveis. O que o objetivo do reparo deve incluir?
  1. Apenas o número de restrições violadas
  2. Um custo para alterar cada atribuição
  3. Apenas o tamanho do domínio de cada variável
  4. Uma ordem fixa para selecionar variáveis
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

As restrições a, b e c têm pesos 4, 2 e 1. Três movimentos candidatos deixam as violações {a}, {b,c} e {c}, respectivamente. Após escolher o resultado de menor peso e aumentar em 1 o peso de cada restrição ainda violada, quais são os pesos resultantes?
  1. 5, 2, 1
  2. 4, 3, 2
  3. 4, 2, 2
  4. 5, 3, 2
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Um CSP tem 24 variáveis de valores binários divididas em seis grupos independentes de quatro. Quantas atribuições completas aos grupos buscas exaustivas separadas examinariam no máximo para resolver os grupos?
  1. 16
  2. 64
  3. 96
  4. 256
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Quatro variáveis de valores binários têm as regras A=B,B≠C,C=D,A≠D. Quantas atribuições completas satisfazem as quatro regras?
  1. 2
  2. 0
  3. 4
  4. 8
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Conjunto 4: Aplique os métodos a novos padrões de restrições10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Um grafo tem as arestas A–B, B–C, C–A, C–D, D–E e E–C. Duas bolsas propostas {A,B,C} e {C,D,E} são unidas por uma aresta. Com no máximo cinco valores por variável, essa decomposição é válida? Qual largura e qual limite padrão ela fornece?
  1. Inválida; as duas ocorrências de C impedem uma decomposição em árvore
  2. Válida, largura 2, com limite O(n53)
  3. Válida, largura 2, com limite O(n52)
  4. Válida, largura 3, com limite O(n53)
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Uma escala deve cobrir todos os turnos exigidos e, de preferência, evitar turnos tardios para uma pessoa da equipe. A preferência dessa pessoa é a única restrição flexível. O que torna uma escala viável?
  1. Ela minimiza apenas os turnos tardios
  2. Ela satisfaz a maioria das regras rígidas
  3. Ela tem custo de preferência zero
  4. Ela satisfaz todas as regras rígidas
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Um modelo de 5 rainhas usa as variáveis de linha Q1–Q5, uma por coluna. Uma pessoa propõe a candidata (1,3,5,2,4) e diz que ainda é necessária uma segunda restrição exigindo uma rainha por coluna. Qual avaliação está correta?
  1. A candidata é válida; as colunas já são garantidas
  2. A candidata falha; as colunas 1 e 3 se atacam
  3. A candidata falha; as colunas 2 e 5 se atacam
  4. A candidata é válida; as desigualdades de linha garantem as colunas
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Um resolvedor com retrocesso em domínios finitos explorou todos os ramos e retornou falha. Um resolvedor de conflitos mínimos parou após 2.000 movimentos sem sucesso. Qual conclusão se justifica para cada execução?
  1. Ambas estabelecem inviabilidade porque não encontraram solução
  2. Ambas deixam a viabilidade em aberto porque retornaram falha
  3. O retrocesso estabelece inviabilidade; a busca local a deixa em aberto
  4. A busca local estabelece inviabilidade; o retrocesso a deixa em aberto
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

X e Y sem valor têm dois valores permitidos cada uma; Z tem três. X tem uma vizinha sem valor e Y tem duas. Os valores candidatos de Y removem 3 e 1 valores dos domínios vizinhos, respectivamente. Com MRV, grau e LCV, o que é escolhido?
  1. O primeiro valor de X
  2. O segundo valor de Y
  3. O primeiro valor de Y
  4. O segundo valor de Z
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

As variáveis P, Q e R têm domínio {1,2} e restrições P≠R,Q≠R. U é independente. Um ramo com P=1,Q=2,U=1 falha. Em um ramo posterior com P=1,U=2, qual restrição sobre Q pode ser justificada pelo aprendizado dessa falha?
  1. Rejeitar Q = 2 enquanto P = 1
  2. Rejeitar Q = 1 enquanto P = 1
  3. Rejeitar Q = 2 em todos os ramos
  4. Permitir qualquer valor de Q após U mudar
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Antes de uma decisão, Y e Z sem valor têm domínios {2,6} e devem ser diferentes. Atribuir X remove 6 de ambas por meio das restrições X–Y e X–Z. O que a verificação antecipada comum informa imediatamente?
  1. Um domínio vazio porque Y e Z devem ser diferentes
  2. Nenhuma redução porque Y e Z não têm valor
  3. Uma solução porque todos os valores restantes estão fixos
  4. Nenhum domínio vazio ainda; Y e Z mantêm 2
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Sejam DA={1,2,3}, DB={2,3} e DC={2}, com A<B e B≠C. Quais são os domínios finais de AC-3?
  1. DA={1},DB={3},DC={2}
  2. DA={1,2},DB={2,3},DC={2}
  3. DA={1,2},DB={3},DC={2}
  4. DA={1,2,3},DB={3},DC={2}
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Quatro variáveis devem ser todas diferentes. Seus domínios são DJ=DK={1,4}, DL={1,4,7} e DM={4,7,9}. O que a propagação completa de Alldiff força?
  1. L=1,M=7
  2. L=7,M=9
  3. L=7,M∈{4,9}
  4. L∈{1,7},M=9
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Um plano tem 6 violações. Seus movimentos disponíveis de uma única variável levam às pontuações 6, 7 e 8. O movimento de pontuação 6 chega a um estado com um movimento de pontuação 4. Qual comportamento de busca pode chegar à pontuação 4 sem primeiro aumentar as violações?
  1. Permitir um movimento lateral e depois um de melhoria
  2. Exigir uma redução estrita em cada movimento
  3. Permitir um movimento pior e depois um de melhoria
  4. Alterar os pesos das restrições mantendo o estado fixo
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Travou em uma questão sua? Ajuda com Tarefas

Termos-Chave

73 Termos-Chave, cada um com sua definição

A

AC-3
O AC-3 é um algoritmo baseado em fila que revisa repetidamente arcos direcionados e verifica novamente vizinhas afetadas por reduções de domínio.
Após X perder valores, arcos que chegam de suas outras vizinhas são colocados na fila porque seus suportes podem ter desaparecido.
Aprendizado de restrições
O aprendizado de restrições registra consequências lógicas de falhas de busca como restrições ou combinações proibidas armazenadas em cache para evitar descobri-las novamente.
Um ramo posterior pode rejeitar uma combinação impossível de cores aprendida mesmo após escolhas sem relação terem mudado.
Atribuição consistente
Uma atribuição consistente não viola nenhuma restrição sobre seus valores atribuídos, embora ainda possa não ser possível estendê-la até uma solução completa.
Duas regiões coloridas podem ser compatíveis mesmo quando suas escolhas deixam uma região não colorida sem nenhuma cor disponível.

B

Busca com retrocesso
A busca com retrocesso é uma busca em profundidade que atribui uma variável por vez e desfaz escolhas quando suas continuações falham.
Quando nenhum horário funciona para a última sessão, o resolvedor retorna a uma sessão anterior e tenta outro horário.
Busca completa
Uma busca completa encontra uma solução quando ela existe e pode estabelecer a inviabilidade ao esgotar todas as possibilidades finitas necessárias.
Após todos os ramos de um domínio finito falharem, o retrocesso exaustivo pode informar que a programação é inviável.
Busca tabu
A busca tabu proíbe temporariamente estados ou movimentos recentes, usando memória de curto prazo para desencorajar ciclos repetidos na busca local.
Um resolvedor evita mover imediatamente uma sessão de volta ao horário que ela acabou de deixar quando isso repetiria o mesmo conflito.

C

Combinação proibida de atribuições
Uma combinação proibida de atribuições é uma combinação específica que não pode ser estendida até uma solução do CSP e que, portanto, pode ser proibida.
As cores de duas regiões anteriores podem forçar juntas um triângulo a usar apenas duas cores, tornando sua combinação proibida.
Componente independente
Um componente independente é uma parte conectada de um grafo de restrições sem nenhuma restrição que ligue suas variáveis a outro componente.
O nó isolado da Tasmânia pode ser colorido após a parte continental sem verificar nenhuma aresta continental adicional.
Comutatividade
A comutatividade das atribuições de um CSP significa que atribuir os mesmos valores às variáveis em ordens diferentes produz o mesmo estado final.
Definir A como 1 antes de B como 3 produz o mesmo par completo que escolher o valor de B antes do de A.
Condicionamento por conjunto de corte
O condicionamento por conjunto de corte testa atribuições ao conjunto de corte, reduz os domínios restantes e resolve a árvore ou floresta resultante para cada tentativa.
Uma falha ao completar a árvore faz o resolvedor tentar outra atribuição ao conjunto de corte em vez de rejeitar imediatamente todo o CSP.
Conjunto de conflitos
Um conjunto de conflitos identifica variáveis anteriores cujos valores atribuídos contribuíram para eliminar as escolhas possíveis de uma variável que falhou.
Se as cores de três vizinhas esgotam a paleta de uma região, essas vizinhas anteriores explicam seu domínio vazio.
Conjunto de corte de ciclos
Um conjunto de corte de ciclos é um conjunto de variáveis cuja remoção, junto com suas arestas incidentes, deixa uma árvore ou uma floresta sem ciclos.
Remover o vértice compartilhado de dois triângulos quebra ambos os ciclos e preserva duas arestas separadas.
Consistência de arco
A consistência de arco exige que todo valor na cauda de um arco binário direcionado tenha um valor compatível no domínio da cabeça.
Um horário de início é removido quando a tarefa sucessora não tem horário restante suficientemente tardio para satisfazer a precedência.
Consistência de arco direcionada
A consistência de arco direcionada exige que cada variável seja consistente de arco com toda vizinha com a qual compartilha uma restrição e que apareça mais tarde em uma ordenação.
Em uma ordem de árvore com pais antes dos filhos, os valores restantes dos pais devem ter suporte no domínio de cada filho.
Consistência de caminho
A consistência de caminho exige que toda atribuição consistente a um par de variáveis possa ser estendida de forma compatível a qualquer terceira variável em um CSP binário.
Duas cores diferentes em um triângulo de duas cores não deixam nenhuma cor compatível para sua terceira região.
Consistência de limites
A consistência de limites exige que cada extremidade do domínio de uma variável tenha uma extensão que satisfaça cada restrição que a envolva.
Um intervalo pode ter extremidades com suporte mesmo quando alguns de seus valores interiores violariam uma restrição.
Consistência de nó
A consistência de nó significa que todo valor restante no domínio de uma variável satisfaz todas as restrições unárias sobre essa variável.
Após uma proibição do horário da manhã ser aplicada, o domínio consistente de nó da sessão contém apenas meio-dia e tarde.
Consistência de ordem k
A consistência de ordem k exige que qualquer atribuição consistente a quaisquer k − 1 variáveis possa ser estendida consistentemente a qualquer variável adicional.
No nível três, um par compatível deve deixar para cada terceira variável um valor que seja compatível com ambas.
Consistência forte de ordem k
A consistência forte de ordem k significa que um CSP satisfaz todos os níveis de consistência de 1 até k, incluindo todas as exigências menores de extensão.
A consistência forte de ordem n permite atribuir valores a um CSP de n variáveis com domínios não vazios, sem retrocesso, em qualquer ordem.
CSP com estrutura de árvore
Um CSP com estrutura de árvore é um CSP binário com um grafo de restrições sem ciclos, permitindo redução dos filhos para os pais seguida de atribuição dos pais para os filhos.
Depois que uma variável das oficinas é fixada, o grafo restante das oficinas forma o caminho B–A–D–E, que pode ser resolvido por passagens na árvore.

D

Decomposição em árvore
Uma decomposição em árvore organiza bolsas sobrepostas de variáveis em uma árvore, abrangendo todas as variáveis e restrições e preservando ocorrências conectadas.
Duas bolsas que compartilham uma variável podem coordenar suas soluções locais concordando sobre o valor dessa variável.
Domínio
Um domínio é o conjunto de valores que uma variável pode assumir; a propagação pode remover valores incompatíveis com as restrições atuais.
Uma sessão tem inicialmente três horários possíveis, mas a chegada de seu instrutor elimina o mais cedo.

E

Escopo da restrição
O escopo de uma restrição é o conjunto de variáveis cujos valores combinados são restringidos pela relação de valores permitidos dessa restrição.
A regra de que a sessão A precede a sessão B tem escopo contendo A e B, independentemente de seus domínios.
Esvaziamento do domínio
Um esvaziamento do domínio ocorre quando a redução deixa uma variável sem nenhum valor disponível, estabelecendo falha sob as restrições atuais.
Uma sessão perde seu último horário compatível após uma sessão vizinha receber um valor, então o ramo para.

F

Formulação de estado completo
Uma formulação de estado completo mantém todas as variáveis atribuídas durante a busca local, permitindo violações temporárias de restrições.
Um algoritmo de reparo começa com uma programação completa mesmo quando uma nova regra de disponibilidade faz duas sessões entrarem em conflito.

G

Grafo de restrições
Um grafo de restrições representa variáveis como nós e conecta dois nós quando suas variáveis compartilham uma restrição binária.
Em um grafo de coloração de mapas, o nó isolado de uma ilha revela que sua cor pode ser escolhida independentemente das regiões continentais conectadas.

H

Heurística de conflitos mínimos
A heurística de conflitos mínimos repara uma atribuição completa selecionando uma variável em conflito e atribuindo a ela um valor com o menor número de violações.
Uma rainha é movida para uma linha com o menor número de ataques das outras rainhas, com desempate aleatório entre pontuações iguais.
Heurística de grau
A heurística de grau favorece uma variável com mais restrições sobre variáveis sem valor, normalmente para desempatar tamanhos de domínio.
Duas regiões têm duas cores restantes; a região com mais vizinhas não coloridas vence o desempate por grau.
Heurística dos valores mínimos restantes (MRV)
A heurística dos valores mínimos restantes seleciona uma variável sem valor com o menor número de valores permitidos restantes sob as restrições atuais.
Uma sessão com um horário restante é escolhida antes de uma sessão que ainda pode usar três horários diferentes.

L

Largura de árvore
A largura de árvore de um grafo é o menor tamanho possível da maior bolsa menos um, considerando todas as decomposições em árvore válidas desse grafo.
Uma decomposição com bolsas de no máximo três variáveis mostra que a largura de árvore do grafo é no máximo dois.

M

Manutenção da consistência de arco (MAC)
A manutenção da consistência de arco, ou MAC, garante a consistência de arco após cada decisão na busca com retrocesso e restaura os domínios ao desfazer a decisão.
As consequências de uma decisão podem percorrer várias sessões sem valor antes que a próxima variável seja selecionada.
Mínimo local
Um mínimo local é uma atribuição com violações em que nenhuma mudança de uma única variável reduz a pontuação de conflitos escolhida.
Um tabuleiro de rainhas pode manter um ataque mesmo quando toda mudança imediata tem uma pontuação igual ou pior.
Modelo fatorado
Um modelo fatorado representa um estado por meio de variáveis e valores separados, permitindo que um resolvedor examine restrições entre escolhas.
A linha de uma rainha pode mudar sem reconstruir uma descrição de cada casa do tabuleiro de xadrez.
Movimento lateral
Um movimento lateral altera uma atribuição mantendo sua pontuação inalterada, podendo abrir caminho para uma melhoria posterior.
Mover uma rainha troca um ataque diagonal por um ataque na mesma linha e depois permite que outra rainha resolva o tabuleiro.

P

Par nu
Um par nu consiste em duas variáveis em um mesmo escopo Alldiff restritas aos mesmos dois valores, reservando esses valores para o par.
Duas células de uma linha limitadas a 4 e 7 permitem que um resolvedor de Sudoku remova ambos os números de todas as outras células dessa linha.
Passagem dos filhos para os pais na árvore
Uma passagem dos filhos para os pais na árvore processa os filhos antes dos pais e revisa arcos do pai para o filho, removendo valores dos pais sem suporte.
A raiz é verificada em relação a um filho somente após os valores possíveis desse filho refletirem seus descendentes.
Passagem dos pais para os filhos na árvore
Uma passagem dos pais para os filhos na árvore escolhe um valor restante para a raiz e depois atribui a cada filho um valor compatível com o valor atribuído ao pai.
Ramos de filhos separados podem escolher seus valores de suporte independentemente após a redução dos filhos para os pais terminar.
Platô
Um platô é uma região conectada de atribuições com a mesma pontuação de busca local, onde movimentos que melhorem estritamente a pontuação podem estar indisponíveis.
Vários movimentos de rainhas podem preservar um ataque antes que uma disposição diferente revele um movimento para zero ataques.
Ponderação de restrições
A ponderação de restrições aumenta as penalidades das restrições que continuam violadas, remodelando as pontuações usadas para escolher reparos posteriores.
Um conflito repetidamente não resolvido torna-se mais custoso, direcionando movimentos posteriores para repará-lo.
Princípio de falhar primeiro
O princípio de falhar primeiro favorece uma decisão antecipada que provavelmente revelará um beco sem saída, para que a busca evite construir uma longa continuação condenada a falhar.
A MRV testa cedo o domínio quase esgotado de uma sessão enquanto muitas outras escolhas de programação ainda não têm valores atribuídos.
Problema de atribuição
Um problema de atribuição associa entidades como pessoas, tarefas ou salas, respeitando restrições de elegibilidade e recursos.
Um modelo de revisão de relatórios escolhe um revisor elegível para cada relatório e pode proibir que o mesmo revisor seja usado mais de uma vez.
Problema de otimização com restrições
Um problema de otimização com restrições busca uma atribuição viável com o melhor valor da função objetivo, como o menor custo total de preferências.
Um otimizador de escalas pode cobrir todos os turnos exigidos enquanto minimiza o custo de horários de trabalho indesejáveis.
Problema de satisfação de restrições
Um problema de satisfação de restrições atribui valores de seus domínios a variáveis, exigindo que todas as restrições sejam respeitadas.
Um CSP de programação de horários escolhe um horário para cada oficina, respeitando as regras de participação e disponibilidade dos instrutores.
Programação de tarefas em oficina
A programação de tarefas em oficina atribui horários de início às tarefas, respeitando exigências de ordem e limites de máquinas ou pessoas compartilhadas.
Um plano de laboratório deve ordenar a preparação e a análise, impedindo que duas análises usem um instrumento ao mesmo tempo.
Propagação de limites
A propagação de limites estreita as extremidades de domínios numéricos usando restrições, evitando enumerar todos os valores de um intervalo grande.
Quando dois ônibus compartilham um grupo de passageiros, a capacidade máxima de um ônibus impõe um limite inferior ao número de passageiros que o outro ônibus deve transportar.
Propriedade de interseção contínua
A propriedade de interseção contínua exige que toda bolsa em um caminho entre duas ocorrências de uma variável também contenha essa variável.
Se X ocorre nas duas bolsas das extremidades, mas está ausente da bolsa do meio, a decomposição proposta é inválida.

R

Razão crítica de restrições
Uma razão crítica de restrições marca uma região de transição entre instâncias majoritariamente solucionáveis e majoritariamente sem solução em muitas famílias de CSPs aleatórios.
Instâncias próximas dessa transição frequentemente exigem mais busca do que as que têm poucas restrições ou são claramente inviáveis.
Recozimento simulado, ou têmpera simulada
O recozimento simulado às vezes aceita movimentos de busca local com pontuação pior, com a probabilidade de aceitação diminuindo à medida que a temperatura cai.
Movimentos piores no início podem escapar de um mínimo local; decisões posteriores com temperatura mais baixa favorecem a estabilização em estados melhores.
Reinício aleatório
Um reinício aleatório começa a busca local a partir de uma atribuição completa recém-escolhida depois que a tentativa atual apresenta progresso insuficiente.
Após muitos movimentos em um platô, o resolvedor começa com outro tabuleiro completo para explorar uma região diferente.
Relação da restrição
A relação de uma restrição é o conjunto de combinações de valores permitidas para as variáveis em seu escopo, expresso como tuplas ou uma regra.
A relação de uma regra de precedência pode listar pares de horários permitidos, como (1,2) e (1,3).
Reparo em tempo de execução
O reparo em tempo de execução começa com uma atribuição existente e a atualiza à medida que as exigências mudam, buscando restaurar um plano viável.
Quando um técnico fica indisponível, o resolvedor pode reparar a programação atual em vez de construir uma nova.
Restrição binária
Uma restrição binária limita as combinações de valores permitidas para duas variáveis, como sua ordem ou a necessidade de terem valores diferentes.
Dois testes que compartilham um técnico precisam de uma regra binária que impeça a sobreposição de seus horários de execução.
Restrição de ordem superior
Uma restrição de ordem superior limita uma combinação de valores que envolve pelo menos três variáveis na mesma relação.
Uma regra que exige que três durações de tarefas somem dez horas conecta as três variáveis de duração.
Restrição de precedência
Uma restrição de precedência exige que uma tarefa termine antes de outra começar, relacionando seu horário de início e sua duração ao início da seguinte.
Uma tarefa de preparação de 20 minutos que começa no minuto 5 torna o minuto 25 o início mais cedo possível para a análise.
Restrição de quebra de simetria
Uma restrição de quebra de simetria mantém representantes de soluções equivalentes ao restringir escolhas que diferem apenas por uma simetria válida.
Fixar uma ordem de cores em uma clique de três regiões elimina permutações repetidas dos nomes das cores quando elas são intercambiáveis.
Restrição de valores todos diferentes (Alldiff)
Alldiff é uma restrição global que exige que todas as variáveis em seu escopo assumam valores de seus domínios diferentes entre si.
Três relatórios atribuídos por meio de Alldiff não podem dar mais de um desses relatórios ao mesmo revisor.
Restrição disjuntiva
Uma restrição disjuntiva exige que pelo menos uma relação alternativa seja satisfeita, como uma de duas ordens possíveis sem sobreposição.
Duas tarefas que usam uma máquina podem executar X antes de Y ou Y antes de X, desde que seus intervalos de execução não se sobreponham.
Restrição flexível
Uma restrição flexível expressa uma preferência cuja violação contribui com um custo usado para comparar atribuições que, de outro modo, são viáveis.
Uma preferência pela tarde pode ser violada quando a alocação pela manhã é necessária para satisfazer todas as regras rígidas.
Restrição global
Uma restrição global é uma relação nomeada definida sobre um grupo de tamanho variável, frequentemente com um método especializado de redução de domínios.
Alldiff permite que um resolvedor reconheça que três células não podem ser todas diferentes quando restam apenas dois números.
Restrição rígida
Uma restrição rígida é uma exigência obrigatória que toda atribuição viável deve satisfazer, independentemente dos custos de preferência.
Um limite de capacidade de sala permanece obrigatório mesmo quando violá-lo tornaria a programação de horários mais conveniente.
Restrição unária
Uma restrição unária limita os valores de uma variável e pode ser aplicada pela eliminação de valores não permitidos de seu domínio.
A regra de que uma sessão não pode começar antes do meio-dia remove as opções da manhã antes de qualquer decisão de busca.
Retrocesso com salto
O retrocesso com salto retorna de uma variável que falhou ao membro atribuído mais recentemente em seu conjunto de conflitos, saltando decisões sem relação.
Uma falha na coloração da parte continental permite que o resolvedor deixe de reconsiderar uma ilha sem arestas de restrição.
Retrocesso com salto dirigido por conflitos
O retrocesso com salto dirigido por conflitos combina explicações de conflitos entre níveis que falharam para identificar uma decisão anterior responsável.
Uma causa descoberta abaixo de uma escolha independente pode ser levada para trás até que a busca alcance uma variável relevante.
Retrocesso cronológico
O retrocesso cronológico retorna de um beco sem saída à variável atribuída mais recentemente, independentemente da causa da falha.
Na coloração de mapas, um resolvedor pode reconsiderar a cor de uma região independente antes de retornar à escolha que causou um conflito.
Revisão de arco
Uma revisão de arco elimina do domínio da cauda os valores sem suporte no domínio atual da cabeça, segundo a relação binária relevante.
Revisar X→Y altera o domínio de X; a direção oposta deve ser verificada separadamente.

S

Simetria de valores
A simetria de valores ocorre quando renomear valores intercambiáveis de domínios preserva as restrições originais e transforma soluções em soluções.
Renomear três cores de um mapa produz colorações equivalentes quando nenhuma regra dá a uma cor um papel especial.
Solução
Uma solução é uma atribuição que dá a cada variável um valor de seu domínio e satisfaz todas as restrições ao mesmo tempo.
Uma grade de Sudoku totalmente preenchida só é uma solução quando todas as linhas, colunas, caixas e todos os números fornecidos são respeitados.
Suporte
Um suporte é um valor em um domínio vizinho que satisfaz a restrição binária de conexão junto com um valor específico da cauda.
Para X<Y, Y igual a 4 dá suporte a X igual a 3, enquanto Y igual a 2 não dá.

T

Trilha de desfazimento
Uma trilha de desfazimento registra eliminações de valores dos domínios causadas por decisões de busca para que o resolvedor possa restaurar os valores corretos durante o retrocesso.
Desfazer uma decisão posterior restaura os valores que ela eliminou, mantendo as eliminações exigidas por uma atribuição anterior.

V

Valor menos restritivo
A heurística do valor menos restritivo testa o valor candidato que remove o menor número de escolhas dos domínios das vizinhas sem valor.
Uma escolha de sala que preserva a única sala adequada de outra reunião é testada antes de uma que a elimina.
Variável
Uma variável nomeia uma decisão cujo valor deve ser selecionado como parte de uma solução de um problema de satisfação de restrições.
Em um modelo de atribuição de salas, cada reunião pode ser uma variável cujo valor nomeia a sala atribuída.
Variável em conflito
Uma variável em conflito participa de pelo menos uma restrição violada na atribuição completa atual usada pela busca local.
Cada uma de duas reuniões marcadas para a mesma sala está em conflito, mesmo que apenas uma precise mudar para corrigir a sobreposição.
Verificação antecipada
A verificação antecipada remove valores das vizinhas sem atribuição quando eles conflitam com o valor escolhido para a variável recém-atribuída.
Atribuir o horário 2 a um teste remove o horário 2 de outro teste que compartilha o mesmo técnico.

Sobre esta aula

Por StudeliRelatar um erro

Crie seus próprios Materiais de Estudo

Transforme suas anotações, slides e documentos em Guias de Estudo, Questões de Prática, Flashcards e mais 6 ferramentas.

Começar