PYEDAを心地よく感じる人がいることを願っています。
関数に架空の変数を追加したい f=x1 としますが、この関数の真偽値を取得するにはどうすればよいでしょうか。これには x2 も含まれます。
f(x1)=x1 の真理値表は次のとおりです。
x1 f
0 0
1 1
しかし、f(x1,x2)=x1 の場合:
x1 x2 f
0 0 0
0 1 0
1 0 1
1 1 1
しかし、最初のテーブルを取得すると、pyeda は x1&(x2|~x2) を x1 に自動的に単純化します。この x2 を追加するにはどうすればよいですか?
def calcFunction(function, i):
#here is is point with dimension-size 4
function=function.restrict({x4:i[3]})
function = function.restrict({x3:i[2]})
function = function.restrict({x2:i[1]})
function = function.restrict({x1:i[0]})
if function.satisfy_one() is not None:
return 1
return 0
ここにそれを修正するためのアルゴリズムがあります。各ポイントで手動で func を計算しています。ここで、関数には 1 ~ 4 の変数を含めることができ、すべてのポイントと x1...x4 の組み合わせを計算しています。