本文整理汇总了Python中sympy.logic.boolalg.to_int_repr函数的典型用法代码示例。如果您正苦于以下问题:Python to_int_repr函数的具体用法?Python to_int_repr怎么用?Python to_int_repr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了to_int_repr函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_to_int_repr
def test_to_int_repr():
x, y, z = map(Boolean, symbols("x,y,z"))
def sorted_recursive(arg):
try:
return sorted(sorted_recursive(x) for x in arg)
except TypeError: # arg is not a sequence
return arg
assert sorted_recursive(to_int_repr([x | y, z | x], [x, y, z])) == sorted_recursive([[1, 2], [1, 3]])
assert sorted_recursive(to_int_repr([x | y, z | ~x], [x, y, z])) == sorted_recursive([[1, 2], [3, -1]])
开发者ID:hector1618,项目名称:sympy,代码行数:11,代码来源:test_boolalg.py
示例2: dpll_satisfiable
def dpll_satisfiable(expr):
"""
Check satisfiability of a propositional sentence.
It returns a model rather than True when it succeeds
Examples
========
>>> from sympy.abc import A, B
>>> from sympy.logic.algorithms.dpll2 import dpll_satisfiable
>>> dpll_satisfiable(A & ~B)
{A: True, B: False}
>>> dpll_satisfiable(A & ~A)
False
"""
clauses = conjuncts(to_cnf(expr))
if False in clauses:
return False
symbols = sorted(_find_predicates(expr), key=default_sort_key)
symbols_int_repr = range(1, len(symbols) + 1)
clauses_int_repr = to_int_repr(clauses, symbols)
solver = SATSolver(clauses_int_repr, symbols_int_repr, set())
result = solver._find_model()
if not result:
return result
# Uncomment to confirm the solution is valid (hitting set for the clauses)
#else:
#for cls in clauses_int_repr:
#assert solver.var_settings.intersection(cls)
return dict((symbols[abs(lit) - 1], lit > 0) for lit in solver.var_settings)
开发者ID:Eskatrem,项目名称:sympy,代码行数:34,代码来源:dpll2.py
示例3: dpll_satisfiable
def dpll_satisfiable(expr):
"""
Check satisfiability of a propositional sentence.
It returns a model rather than True when it succeeds
>>> from sympy.abc import A, B
>>> from sympy.logic.algorithms.dpll import dpll_satisfiable
>>> dpll_satisfiable(A & ~B)
{A: True, B: False}
>>> dpll_satisfiable(A & ~A)
False
"""
clauses = conjuncts(to_cnf(expr))
if False in clauses:
return False
symbols = sorted(_find_predicates(expr), key=default_sort_key)
symbols_int_repr = set(range(1, len(symbols) + 1))
clauses_int_repr = to_int_repr(clauses, symbols)
result = dpll_int_repr(clauses_int_repr, symbols_int_repr, {})
if not result:
return result
output = {}
for key in result:
output.update({symbols[key - 1]: result[key]})
return output
开发者ID:guanlongtianzi,项目名称:sympy,代码行数:26,代码来源:dpll.py
示例4: dpll_satisfiable
def dpll_satisfiable(expr):
"""
Check satisfiability of a propositional sentence.
It returns a model rather than True when it succeeds
>>> from sympy import symbols
>>> A, B = symbols('AB')
>>> dpll_satisfiable(A & ~B)
{A: True, B: False}
>>> dpll_satisfiable(A & ~A)
False
"""
symbols = list(expr.atoms(Symbol))
symbols_int_repr = range(1, len(symbols) + 1)
clauses = conjuncts(to_cnf(expr))
clauses_int_repr = to_int_repr(clauses, symbols)
result = dpll_int_repr(clauses_int_repr, symbols_int_repr, {})
if not result: return result
output = {}
for key in result:
output.update({symbols[key-1]: result[key]})
return output
开发者ID:KevinGoodsell,项目名称:sympy,代码行数:21,代码来源:dpll.py
示例5: dpll_satisfiable
def dpll_satisfiable(expr, all_models=False):
"""
Check satisfiability of a propositional sentence.
It returns a model rather than True when it succeeds.
Returns a generator of all models if all_models is True.
Examples
========
>>> from sympy.abc import A, B
>>> from sympy.logic.algorithms.dpll2 import dpll_satisfiable
>>> dpll_satisfiable(A & ~B)
{A: True, B: False}
>>> dpll_satisfiable(A & ~A)
False
"""
clauses = conjuncts(to_cnf(expr))
if False in clauses:
if all_models:
return (f for f in [False])
return False
symbols = sorted(_find_predicates(expr), key=default_sort_key)
symbols_int_repr = range(1, len(symbols) + 1)
clauses_int_repr = to_int_repr(clauses, symbols)
solver = SATSolver(clauses_int_repr, symbols_int_repr, set(), symbols)
models = solver._find_model()
if all_models:
return _all_models(models)
try:
return next(models)
except StopIteration:
return False
开发者ID:asmeurer,项目名称:sympy,代码行数:36,代码来源:dpll2.py
示例6: test_to_int_repr
def test_to_int_repr():
x, y, z = symbols('x y z')
assert to_int_repr([x | y, z | x], [x, y, z]) == [[1, 2], [1, 3]]
assert to_int_repr([x | y, z | ~x], [x, y, z]) == [[1, 2], [3, -1]]
开发者ID:KevinGoodsell,项目名称:sympy,代码行数:4,代码来源:test_boolalg.py
示例7: register_handler
'positive' : ['sympy.assumptions.handlers.order.AskPositiveHandler'],
'prime' : ['sympy.assumptions.handlers.ntheory.AskPrimeHandler'],
'real' : ['sympy.assumptions.handlers.sets.AskRealHandler'],
'odd' : ['sympy.assumptions.handlers.ntheory.AskOddHandler'],
'algebraic' : ['sympy.assumptions.handlers.sets.AskAlgebraicHandler'],
'is_true' : ['sympy.assumptions.handlers.TautologicalHandler']
}
for name, value in _handlers_dict.iteritems():
register_handler(name, value[0])
known_facts_keys = [getattr(Q, attr) for attr in Q.__dict__ \
if not attr.startswith('__')]
known_facts = And(
Implies (Q.real, Q.complex),
Equivalent(Q.even, Q.integer & ~Q.odd),
Equivalent(Q.extended_real, Q.real | Q.infinity),
Equivalent(Q.odd, Q.integer & ~Q.even),
Equivalent(Q.prime, Q.integer & Q.positive & ~Q.composite),
Implies (Q.integer, Q.rational),
Implies (Q.imaginary, Q.complex & ~Q.real),
Equivalent(Q.negative, Q.nonzero & ~Q.positive),
Equivalent(Q.positive, Q.nonzero & ~Q.negative),
Equivalent(Q.rational, Q.real & ~Q.irrational),
Equivalent(Q.real, Q.rational | Q.irrational),
Implies (Q.nonzero, Q.real),
Equivalent(Q.nonzero, Q.positive | Q.negative)
)
known_facts_compiled = to_int_repr(conjuncts(to_cnf(known_facts)), known_facts_keys)
开发者ID:goriccardo,项目名称:sympy,代码行数:30,代码来源:ask.py
注:本文中的sympy.logic.boolalg.to_int_repr函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论