0

私はclingoバージョン 4 を使用しており、python スクリプトを介してリレーションを接地できるようにしたいと考えています (理由は聞かないでください。少なくとも 1 項リレーションを接地できるため、犯罪ではありません)。これが可能であることを願っており、助けが必要です。

#script (python)
import gringo;
def main(prg):
    prg.ground([('base', [])]);
    # ... compute somethings ...
    prg.ground([('myrel', [[10,20],[30,40],[70,40]])]);
    prg.solve();
#end.

#program myrel(x,y).
r(x,y).

#show r/2.

これは機能しません。誰もこれを行う方法を知っていますか? 代わりに試してみ[(10,20),(30,40),(70,40)]ましたが、それもうまくいきませんでした。

4

1 に答える 1

0

可能ですが、各エントリを 1 つずつ入力する必要があります (私のアプリケーションではこれが実際に適しています)。それ以外の

prg.ground([('myrel', [[10,20],[30,40],[70,40]])]);

書かなければならない

prg.ground([('myrel', [10,20])]);
prg.ground([('myrel', [30,40])]);
prg.ground([('myrel', [70,40])]);

そしてそれが受け入れられ、正しい出力が得られます。

于 2017-01-10T18:26:36.053 に答える