ブール代数簡約ツール
ブール式(A·B + A·¬B + ¬A·Bなど)または最小項付きの真理値表を入力すると、この簡約ツールはQuine-McCluskeyアルゴリズムで最小の積和形(sum-of-products)を返し、最大6変数までKarnaugh mapの可視化も表示します。主項(prime implicants)、必須主項(essential prime implicants)、被覆表など全ステップを示すため、宿題だけでなく、合成ツール内の簡約器が選んだ内容を確認する用途にも役立ちます。
ブール式簡約の流れ
-
1
式または最小項を入力
演算子は·(AND)、+(OR)、'または¬(NOT)、⊕(XOR)を使えます。`m(0,1,3,7)`のような最小項インデックスも貼り付けできます。
-
2
真理値表を生成
すべての変数割り当てを評価し、関数出力を表にします。
-
3
Quine-McCluskeyで主項を検出
最小項をグループ化し、反復的に結合します。隣接グループ(1変数だけ異なるもの)を、これ以上簡約できなくなるまで併合します。
-
4
必須主項で関数を被覆
Petrick法の被覆表が主項の最小集合を選びます。結果は簡約された積和形(SOP)です。和積形(POS)は補関数から導出します。
対応する演算子表記
| 演算 | 受け付ける記号 |
|---|---|
| AND | ·, *, &, ∧, 空白 |
| OR | +, |, ∨ |
| NOT | \', ¬, !, ~, 上線(上線付きの A は A\' として表示) |
| XOR | ⊕, ^ |
| 定数 | 0, 1 |
例
入力: A·B + A·¬B + ¬A·B
真理値表:
| A | B | F |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
最小項: m(1, 2, 3)。最小SOPはA + B(2つの変数のOR)に簡約されます。簡約ツールは次の流れを示します。
- 1の個数で最小項をグループ化
- 隣接ペアを結合: (1,3) →
-B, (2,3) →A- - 被覆表で両方が必須(essential)と判明 — 最終形:
A + B
最小化する理由
- ゲート数の削減: AND/OR項はそれぞれシリコン面積やFPGAのLUTを消費します。
- クリティカルパスの短縮: ロジックが小さいほど、通常は伝搬遅延が下がります。
- 消費電力の低減: スイッチングするノードが少なくなります。
アルゴリズムの限界
- 変数の数: Quine-McCluskeyは最悪ケースでO(3^n / n)に計算量が増えます。このツールは8変数まで快適に扱えます。それを超える場合はEspresso系のヒューリスティック簡約器を使ってください(最小性は保証されませんが、現実的に処理できます)。
- ドントケア項(don't-care): 発生しない入力組み合わせがある場合は、
d(indices)構文で含めると、より小さい結果を得られます。
よくある質問
Sum-of-productsはANDのOR(例: AB + CD)、product-of-sumsはORのAND(例: (A+B)(C+D))です。同じ関数を別構造で表します。この簡約ツールは両方を返すので、後段のツールに合う方を選んでください。
はい。最小項と一緒にd(index1, index2, ...)として入力します。簡約器はそれらを「自由」とみなし、より小さな結果が得られる値(0または1)を割り当てます。
正しくグループ化すればどちらも最小コストを出せますが、K-mapは人が最大グループを見つけられるかに依存します。Quine-McCluskeyは決定的で、常に最適解を見つけます。
XORは最小化前にAND/OR/NOTへ展開されます。同等のSOPは得られますが、XOR構造は失われます。XOR構造を保持した最適化には別のアルゴリズム(Reed-Muller)が必要です。
関連ツール
カラーパレットジェネレーター
基準のHEXカラーから、モノクロマティック、類似色、補色、トライアド、テトラードのパレットを生成し、コピーしやすいCSS変数として書き出します。
ランダム英字ジェネレーター
A-Zの英字をランダムに生成します。文字数を指定し、大文字・小文字・混在を選んで、ゲーム、課題、授業活動に使えます。
HEX カラーピッカー
色を見た目で選び、HEX、RGB、HSL、HSV、CMYK の値と、白・黒に対するコントラストを確認できます。
JSONフォーマッター
JSONを貼り付けて2スペースまたは4スペースで読みやすく整形し、コンパクトに圧縮し、コピー前に構文をすばやく確認できます。
ランダムカラー生成ツール
1〜50個のランダムなHEXカラーを生成し、色見本で確認して、CSSやテスト、配色検討に使えるコードをコピーできます。
ランダムカラーパレットジェネレーター
2〜15色のランダムなカラーパレットを生成し、ビビッド、パステル、ミュート、ダークからスタイルを選んで、HEXコードやCSS変数をコピーできます。