出力ファイルを生成する以外にwc -l output.txtを使用し、-1を2で割り、head50をoutput.txtで分割する以外に簡単な方法がありますminizinc内のソリューションを自動的にカウントせず、最初の50のソリューションを印刷しますか? 私のプログラムは1つのシナリオで12時間実行され、もう1つは2日間実行される予定です!またMinizinc - 解決の数をカウントして最初に印刷するだけで50をチェックする
、時間minizincを使用するよりも他のリソース使用率を生成するためのバッチモード(ないIDE)のいずれかの方法...アドバイス
これを行うには、3番目のプログラムが必要です。ストリーム(stdout)を読み込み、何らかのシンボルを数えることができ、50に達すると、プログラムを中止することが好ましい。私はコマンドラインプログラムがそれを行うことができるとは確信していないし、いくつかの実際のプログラミング言語でスクリプトが必要かもしれない。 – Kobbe
解決策の数を数えなければならないため、中断できません。シンプルなモデルは12時間以上が必要ですが、私は思ったほど長く待たないと思います.Node.jsを使用するのに1.5分しかかからない) 。あきらめないようにしてください... –
しかし、MiniZincはソリューションを見つけたらそれを標準出力に出力します。コマンドラインモードでMiniZincをhttp://stackoverflow.com/questions/2804543/read-subprocess-stdout-line-by-lineで起動し、リアルタイムで出力を読み込みます。 50のソリューションが見つかったら、サブプロセスを終了します。 – Kobbe