programação restrição é uma abordagem alternativa para a programação de computador que envolve uma combinação de computação e lógica , raciocínio, ou técnicas . O princípio básico de programação restrição é especificar problemas com imprevisível , de modo incompleto e resolver esses problemas , afirmando condições ou propriedades - também conhecida como restrições - satisfeita pela solução . Restrição
programação restrição baseia-se na ideia de uma restrição : a relação , muitas vezes, uma relação de igualdade ou desigualdade , entre os valores de duas variáveis matemáticas. Em outras palavras , uma restrição pode ser pensado como uma exigência de que indica quais as combinações de valores a partir da gama de possíveis valores para cada variável são admissíveis ; " x > 3 ", por exemplo , uma restrição na " x . "
sistema de restrição
Um sistema de restrição especifica formalmente as regras que regem as fórmulas corretamente formados , ou sintaxe , e verdade ou falsidade , ou semântica , das limitações de interesse . Um sistema de restrição especifica a língua em que as restrições são expressas , o que os símbolos de restrição são, como eles estão definidos e que as fórmulas de restrição são utilizadas para a lógica na linguagem de programação restrição.
Restrição Satisfação
Em teoria , a programação restrição consiste em duas fases : geração de uma representação de um problema e resolver o problema. Na prática , cada uma dessas fases pode ser dividida numa série de pequenos passos , que pode ser realizado alternadamente . Para resolver um problema usando programação por restrições , o problema deve ser previamente especificado, ou formulado , como um problema de satisfação de restrições , que consiste em um número finito de restrições que se aplicam a cada uma seqüência específica de variáveis. Satisfação Restrição tenta atribuir valores a variáveis de modo que todas as restrições são verdadeiras. Normalmente, um problema de satisfação de restrições pode ser representado em mais de uma maneira ; programação restrição é altamente flexível porque as restrições podem ser adicionados, modificados ou removidos
Constraint Solver
. a restrição solver implementa uma fórmula matemática , ou algoritmo, que recolhe as restrições de um ou mais programas em execução , simplifica -los e , se possível, resolve -los. O resultado final é conhecido como a restrição de resposta.
Applications
Problemas resolvidos usando programação por restrições normalmente são formulados em termos de requisitos , propriedades ou leis. Esses problemas ocorrem com freqüência na indústria e comércio , incluindo a análise , projeto, planejamento , alocação de recursos e transporte. Programação restrição aplica-se com sucesso para vários outros campos, incluindo engenharia elétrica , biologia molecular e pesquisa operacional .