pyconstraints.

um solver de satisfação de restrições simples
Baixe Agora

pyconstraints. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • BSD License
  • Preço:
  • FREE
  • Nome do editor:
  • Jeff Hui
  • Site do editor:
  • http://jeffhui.net

pyconstraints. Tag


pyconstraints. Descrição

Pyconstraints é um simples solucionador de problemas de satisfação é usado para o programa YACS County Project.usagethe Problema é a interface principal: >>> a partir de Pyconstraints Import Problemand, em seguida, especifique seu problema para resolver com várias restrições: >>> p = problema ()> >> p.add_viável ('x', intervalo (4)) # Nome de variável, domínio >>> p.add_viável ('y', intervalo (4)) # Dê função de restrição e lista de variáveis usadas >>> .add_constraint (lambda x, y: x! = Y, ) >>> p.add_constraint (lambda x: x% 2 == 0), em seguida, obtenha suas soluções: >>> p. get_solutions () # => ({'y': 0, 'x': 2}, # {'y': 1, 'x': 0}, # {'y': 1, 'x': 2} # {'Y': 2, 'x': 0}, # {'y': 3, 'x': 0}, # {'y': 3, 'x': 2}) ou iterativamente:> >> p.iter_solutions (). Próximo () # => {'y': 0, 'x': 2} E é isso! Usando outro solversimply passe o solucionador para o construtor de problemas: >>> de Pyconstraints Importar Bruteforcesolver, BackTrackingSolver >>> p = problema (BacktrackingSolver ()) # Bruteforcesolver é de defaultPorque o bruteforcesolver usa ITERTools, pode haver casos em que é mais rápido do que o backtrackingsolver.igitando seu próprio solver por uma convenção, há uma classe '`pyconstraints.solverinterface`' classe abstrata se você quiser planejar todos os recursos manualmente: @abstractproperty def solves_seen (auto ): "Retorna o número de soluções atualmente vistas pelo solver". @abstractproperty def solutions_at_points (self): "" "retorna um dicionário de {iteration_index: solução}. de todas as soluções conhecidas durante a iteração """ @abstractmethod def set_conditions (self, variáveis, restrições): "" "chamados pela classe Problem Para atribuir as variáveis e restrições para o problema. Variáveis = {Variável-Nome: Lista de valores de domínio} restrições = "" "@abstractmethod DEF Restore_point auto, partida_point = Nenhum): "restaura o estado de iteração a um determinado ponto de partida." @ABSTractMethod Def Guareta_Point (auto): "" "" Retorna dados para indicar uma maneira de restaurar o ponto de iteração atual "." "@abstractmethod Def __iter __ (auto):" Auto): "produz soluções". Mas para a convenção, você pode herdar do `` 'pyconstraints.solverbase' classe classe que fornece uma implementação primitiva para todos os métodos de interface, exceto para '__iter__` e `` set_conditions`'.


pyconstraints. Software Relacionado