Z3ソルバーについて知らない場合は、親切なリクエストに答えないでください.iは以前にこの質問を投稿しました.Cで配列を実装する方法のようないくつかの回答がポップアップしました.このフォーラムでZ3ソルバーを開発した人が何人かいます.それは彼らを対象としています. Z3 ソルバーは、この質問への返信を避けてください。
以前にこの質問を投稿し、Python のように解決策を得ました。以下の問題は既に python で実装していました。論文の一部として、Z3 ソルバーを社内ツールに統合するために Z3 ソルバーを移植しようとしています。 Pythonではなく「C」言語で以下の要件の解決策を示します。
C APIを使用してz3ソルバーを使用して、次のように2次元配列を定義して作成したい
例: a[3][3] Z3 ソルバー C API を使用してこれを定義する方法
2 次元配列の要素は 0 または 1 のみです。各行の合計は各列 (コントローラー メモリ) の合計 1 に等しくなります。解決しようとしている問題は 100 以下である必要があります。 [sw]={50,25,100,75} は、各関数によって生成されたデータ (50kb) を表します。b[cont]={100,100,100} メモリ (kb) 容量のコントローラー。[4][3 を生成しようとしています。 ] の行列は、上記の制約を満たすコントローラーへの機能割り当てを示しています。
上記の問題のサンプル出力 (これは非常に多くの構成のうちの 1 つです)。ただし、有効な構成です。
a[sw][続き] =
ABC
A 1 0 0 B 1 0 0
C 0 1 0
D 0 0 1