Core Concepts
MBA式の簡略化のためにE-Graphデータ構造を利用し、効率的に同一意味の複数の式を保持し、系統的に項の書き換えを行うことで、より単純な式を見つける。
Abstract
本論文では、MBA (Mixed Boolean Arithmetic) 式の簡略化手法を提案している。MBA式は、ブール演算と算術演算が混在した複雑な式で、従来の解析手法では簡略化が困難であった。
著者らは、E-Graphデータ構造を利用することで、同一意味の複数の式を効率的に保持し、項の書き換えルールを適用することで、より単純な式を見つける手法を提案した。具体的には以下の手順で実装している:
MBA式の定義に従い、入力式を表現する。
減算演算子と論理否定演算子を区別するため、前処理を行う。
数学的な基本ルール(交換法則、分配法則、ブール演算など)と既存研究で提案されたルールを適用し、項の書き換えを行う。
書き換え過程で最適な式を見つけるため、必要に応じて逆方向の書き換えも行う。
実験では、Tigress、Qsynth customEA、MBA Solverのデータセットを用いて評価を行った。その結果、大部分の式を簡略化することができ、平均0.1秒以内で処理できることを示した。一方で、多項式MBA式については簡略化率が低く、今後の課題として指摘している。
Stats
MBA式データセットの簡略化実験結果は以下の通りです:
Tigress:
総式数: 323
成功数: 267
失敗数: 56
成功率: 82.66%
簡略化率: 69%
処理時間: 3.98秒
Qsynth Custom EA:
総式数: 501
成功数: 493
失敗数: 8
成功率: 98.40%
簡略化率: 65.67%
処理時間: 72.79秒
MBA Solver (Linear):
総式数: 1008
成功数: 818
失敗数: 190
成功率: 81.15%
簡略化率: 93.26%
処理時間: 41.13秒
MBA Solver (Non-poly):
総式数: 1003
成功数: 949
失敗数: 54
成功率: 94.61%
簡略化率: 93.26%
処理時間: 239.04秒
MBA Solver (Poly):
総式数: 1008
成功数: 587
失敗数: 421
成功率: 58.23%
簡略化率: 94.91%
処理時間: 27.15秒