evaluate-boolean-expression
정보
이 스킬은 진리표, 대수 법칙, 카르노 맵(최대 6변수)을 사용하여 부울 표현식을 평가하고 단순화합니다. SOP/POS 형태로 표현식을 최소화하거나 논리적 동등성을 검증하며, 게이트 수준 구현을 위해 최소화된 함수를 준비하는 데 사용됩니다. 개발자는 회로 설계를 위한 논리 단순화나 부울 대수 검증 시 이를 활용해야 합니다.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/evaluate-boolean-expressionClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
ブール式の評価
ブール式を正準形に変換し、真理値表を構築し、代数的簡約法則を適用し、カルノー図による最小化(最大6変数)を実行し、簡約された式が元の式と論理的に等価であることを検証することで、ブール式を最小形に縮約する。
使用タイミング
- ブール式を論理ゲートにマッピングする前に簡約化する時
- 2つのブール式が論理的に等価であることを検証する時
- 最小積和形(SOP)または和積形(POS)を生成する時
- ブール代数の恒等式と縮約技法を教育またはレビューする時
- design-logic-circuitスキルの入力を準備する時
入力
- 必須: 一般的な記法によるブール式(例:
A AND (B OR NOT C)、A * (B + C')、A & (B | ~C)) - 必須: ターゲット形式 -- 最小SOP、最小POS、または両方
- 任意: カルノー図の変数順序の好み
- 任意: ドントケア条件(未指定の最小項または最大項)
- 任意: 等価性をチェックする2番目の式
手順
ステップ1: 解析と正準形への正規化
入力式を標準的な内部表現に変換する:
- トークン化: 変数(単一文字または短い名前)、演算子(AND、OR、NOT、XOR、NAND、NOR)、グルーピング(括弧)を特定する。
- 演算子記法の確立: 全体を通じて一貫した記法を採用する -- ANDに
*、ORに+、NOT(補数)に'、XORに^。 - 変数数の決定: すべてのユニークな変数をリストする。各変数にビット位置を割り当てる(デフォルトではA = MSB、... Z = LSB、または提供された順序を使用)。
- 正準SOPへの展開: 恒等式
X = X*(Y + Y')を使用して不足変数を導入し、式をすべての最小項の和に展開する。 - 正準POSへの展開: 代替として、
X = X + Y*Y'を使用してすべての最大項の積に展開する。
## Normalized Expression
- **Variables**: [A, B, C, ...]
- **Variable count**: [n]
- **Original expression**: [as given]
- **Canonical SOP (minterms)**: Sigma m(i, j, k, ...)
- **Canonical POS (maxterms)**: Pi M(i, j, k, ...)
- **Don't-care set**: d(i, j, ...) [if any]
期待結果: 式がすべての最小項/最大項を明示的にリストした正準SOPおよび/またはPOSに変換され、ドントケア条件が分離されている。
失敗時: 式に構文エラーまたは曖昧な演算子優先順位がある場合、明確化を要求する。標準的な優先順位は:NOT(最高)> AND > XOR > OR(最低)。変数数が6を超える場合、カルノー図ステップにはクワイン-マクラスキーアルゴリズムが必要であることを記す。
ステップ2: 真理値表の構築
すべての入力組み合わせに対する関数の動作を確立するための完全な真理値表を構築する:
- 行の列挙: 2進カウント順(000、001、010、...)ですべての2^n個の入力組み合わせを生成する。
- 出力の評価: 各行について、元の式に値を代入して出力(0または1)を計算する。
- ドントケアのマーク: ドントケア条件が提供された場合、それらの行を0または1ではなく
Xでマークする。 - 最小項との照合: 出力1を生成する行がステップ1の最小項リストと一致することを確認する。
## Truth Table
| A | B | C | F |
|---|---|---|---|
| 0 | 0 | 0 | _ |
| 0 | 0 | 1 | _ |
| ... | ... | ... | ... |
期待結果: 2^n行の完全な真理値表、正準形と一致する出力、ドントケアが適切にマークされている。
失敗時: 真理値表が正準形と不一致の場合、ステップ1の展開を再確認する。一般的なエラーは正準展開中のド・モルガンの法則の誤適用 -- 各展開ステップを個別に検証する。
ステップ3: 代数的簡約の適用
ブール代数の恒等式を使用して式を縮約する:
- 恒等法則とゼロ法則:
A + 0 = A、A * 1 = A、A + 1 = 1、A * 0 = 0。 - 冪等法則:
A + A = A、A * A = A。 - 補数法則:
A + A' = 1、A * A' = 0。 - 吸収法則:
A + A*B = A、A * (A + B) = A。 - ド・モルガンの定理:
(A * B)' = A' + B'、(A + B)' = A' * B'。 - 分配法則:
A * (B + C) = A*B + A*C、A + B*C = (A + B) * (A + C)。 - コンセンサス定理:
A*B + A'*C + B*C = A*B + A'*C(B*C項は冗長)。 - XOR簡約:
A*B' + A'*B = A ^ Bのようなパターンを認識する。 - 各ステップの文書化: 各法則適用後の式を書き出し、使用した法則を引用する。
## Algebraic Simplification Trace
1. Original: [expression]
2. Apply [law name]: [result]
3. Apply [law name]: [result]
...
n. Final algebraic form: [simplified expression]
期待結果: 各法則適用が引用されたステップバイステップの縮約、より簡約な式に収束。トレースは等価性の検証可能な証明を提供する。
失敗時: 式がさらに簡約できないが非最小に見える場合、ステップ4(カルノー図)に進む。代数的方法は大域的最小を見つけることを保証しない -- 法則の適用順序に依存する。
ステップ4: カルノー図による最小化
カルノー図を使用して証明可能な最小SOPまたはPOS形を見つける(最大6変数):
- カルノー図の描画: グレイコード順序を軸に使用して図を配置する。
- 2変数:2x2グリッド
- 3変数:2x4グリッド
- 4変数:4x4グリッド
- 5変数:4x4グリッド2つ(積み重ね)
- 6変数:4x4グリッド4つ(積み重ね)
- セルの充填: 対応するセルに1(最小項)、0(最大項)、X(ドントケア)を配置する。
- 隣接する1のグループ化: 1、2、4、8、16、または32の隣接セルの矩形グループを形成する(2のべき乗のみ)。グループはエッジを折り返しできる。ドントケアはグループを拡大する場合に含める。
- 主項の抽出: 各グループが積項を生成する。グループ全体で一定の変数は項に現れ、変化する変数は消去される。
- 必須主項の選択: 1つの主項だけでカバーされる最小項を特定する -- それらの主項は必須である。
- 残りの最小項のカバー: カバーされていない最小項をカバーするために最少の追加主項を使用する(必要に応じてペトリックの方法)。
- 最小式の記述: 選択された主項を組み合わせて最小SOPを構成する。最小POSには代わりに0をグループ化する。
## K-map Result
- **Prime implicants**: [list with covered minterms]
- **Essential prime implicants**: [list]
- **Minimal SOP**: [expression]
- **Minimal POS**: [expression, if requested]
- **Literal count**: [number of literals in minimal form]
期待結果: 可能な限り最少のリテラルを持つ最小SOP(および/またはPOS)、すべての主項と必須主項が文書化されている。
失敗時: グループ化が曖昧な場合(複数の等価な最小カバーが存在する)、すべての等価な最小形をリストする。変数数が6を超える場合、クワイン-マクラスキーの表計算法またはEspressoヒューリスティックに切り替え、アプローチの変更を記す。
ステップ5: 簡約式が元の式と一致することの検証
簡約式と元の式の間の論理的等価性を確認する:
- 真理値表の比較: すべての2^n入力組み合わせについて簡約式を評価し、ステップ2の真理値表と比較する。すべての非ドントケア行が一致する必要がある。
- 代数的証明(任意): 簡約形から元の式を導出する(またはその逆)。ステップ3の法則を使用する。
- 重要ケースのスポットチェック: 全ゼロ入力、全1入力、および困難な簡約ステップに関与した入力を検証する。
- 結果の文書化: 等価性が成立するかどうかを述べ、最終的な最小形を記録する。
## Equivalence Verification
- **Method**: [truth table comparison / algebraic proof / both]
- **Mismatched rows**: [none, or list row numbers]
- **Verdict**: [Equivalent / Not equivalent]
- **Final minimal expression**: [the verified result]
期待結果: 簡約式がすべての非ドントケア入力で元の式と一致する。最終的な最小形が明確に述べられている。
失敗時: いずれかの行が不一致の場合、ステップ3-4を遡ってエラーを追跡する。一般的な原因:不正なカルノー図のグループ化(非矩形または2のべき乗でないグループ)、折り返し隣接性の忘却、または0のセルを誤ってグループ化。
バリデーション
- 元の式のすべての変数が考慮されている
- 正準SOP/POSが正しい最小項/最大項をリストしている
- 真理値表が正確に2^n行で正しい出力を持つ
- ドントケア条件が正しく処理されている(グループに含まれるがカバー要件には含まれない)
- 代数的ステップが各々特定の法則を引用し個別に検証可能
- カルノー図が両軸でグレイコード順序を使用している
- カルノー図のすべてのグループが矩形で2のべき乗のサイズ
- 必須主項が正しく特定されている
- 簡約式がすべての非ドントケア入力で元の式と一致する
- 最終形が最小数のリテラルを持つ
よくある落とし穴
- カルノー図の隣接性の誤り: カルノー図では最左列と最右列(および最上行と最下行)が隣接することを忘れる。この折り返しは可能な限り最大のグループを見つけるために不可欠。
- 2のべき乗でないグループ: 3または5のセルをグループ化する。すべてのカルノー図グループは正確に1、2、4、8、16、または32のセルを含む必要がある。不規則なグループは有効な積項に対応しない。
- ドントケアの無視: ドントケア条件をグループを拡大するために使用せず0として扱う。ドントケアは式を縮約する場合にグループに含めるべきだが、カバーのために必要とされてはならない。
- 演算子優先順位のエラー: ANDとORが等しい優先順位を持つと仮定する。標準的なブール優先順位はNOT > AND > OR。
A + B * CをA + (B * C)ではなく(A + B) * Cと誤読すると関数が完全に変わる。 - 代数的簡約で止まる: 代数的方法は局所最小を見つけるかもしれないが、大域最小ではない。最小性を確認するために常にカルノー図(6変数超の場合はクワイン-マクラスキー)で照合する。
- 最小項と最大項の混同: 最小項はSOPに現れるAND項(積項);最大項はPOSに現れるOR項(和項)。3変数の最小項m3はA'BC;最大項M3はA+B'+C'。
関連スキル
design-logic-circuit-- 最小化された式をゲートレベル回路にマッピングするargumentation-- 形式論理の基礎を共有する構造化された論理的推論
GitHub 저장소
연관 스킬
llamaguard
기타LlamaGuard는 폭력 및 혐오 발언 등 6가지 안전 범주에서 LLM 입력과 출력을 조정하기 위한 Meta의 70-80억 파라미터 모델입니다. 94-95% 정확도를 제공하며 vLLM, Hugging Face 또는 Amazon SageMaker를 사용해 배포할 수 있습니다. 이 기술을 사용하여 AI 애플리케이션에 콘텐츠 필터링 및 안전 가드레일을 손쉽게 통합하세요.
cost-optimization
기타이 Claude Skill은 리소스 적정화, 태깅 전략, 지출 분석을 통해 개발자들이 클라우드 비용을 최적화할 수 있도록 지원합니다. AWS, Azure, GCP에서 클라우드 비용을 절감하고 비용 거버넌스를 구현하기 위한 프레임워크를 제공합니다. 인프라 비용을 분석하거나, 리소스를 적정화하거나, 예산 제약을 충족해야 할 때 사용하세요.
quantizing-models-bitsandbytes
기타이 스킬은 bitsandbytes를 사용하여 LLM을 8비트 또는 4비트 정밀도로 양자화하며, 최소한의 정확도 손실로 50-75%의 메모리 감소를 달성합니다. 제한된 GPU 메모리에서 더 큰 모델을 실행하거나 추론을 가속화하는 데 이상적이며, INT8, NF4, FP4와 같은 형식을 지원합니다. 이 스킬은 HuggingFace Transformers와 통합되어 QLoRA 학습 및 8비트 옵티마이저를 가능하게 합니다.
dispatching-parallel-agents
기타이 Claude Skill은 3개 이상의 독립적인 문제를 동시에 조사하고 해결하기 위해 다중 에이전트를 배치합니다. 공유 상태나 의존성 없이 해결 가능한 무관련 장애 시나리오에 맞게 설계되었습니다. 핵심 기능은 병렬 문제 해결로, 각 독립 문제 영역마다 하나의 에이전트를 할당하여 효율성을 극대화합니다.
