CondGenMgr

class CondGenMgr

FFRの故障伝搬条件を表すCNFを作るクラス

実はただの関数

Public Static Functions

static std::vector<DetCond> make_cond(const TpgNetwork &network, const JsonValue &option)

FFRの故障伝搬条件を求める.

パラメータ:
  • network -- [in] 対象のネットワーク

  • option -- [in] オプション

戻り値:

各 FFR の伝搬条件のリストを返す.

static std::vector<std::vector<SatLiteral>> make_cnf(StructEngine &engine, const std::vector<DetCond> &cond_list, const JsonValue &option, CondGenStats &stats)

FFRの故障伝搬条件を表すCNF式を作る.

パラメータ:
  • engine -- [in] CNFの作成用のエンジン

  • cond_list -- [in] 条件のリスト

  • option -- [in] オプション

  • stats -- [out] 統計情報を入れるオブジェクト

static std::vector<std::vector<SatLiteral>> make_cnf_naive(StructEngine &engine, const JsonValue &option, CondGenStats &stats)

FFRの故障伝搬条件を表すCNF式を作る(ナイーブバージョン)

パラメータ:
  • engine -- [in] CNFの作成用のエンジン

  • option -- [in] オプション

  • stats -- [out] 統計情報を入れるオブジェクト

static void make_base_cnf(StructEngine &engine)

正常回路用の CNF を作る.

パラメータ:

engine -- [in] CNFの作成用のエンジン

static std::vector<Expr> make_expr(const std::vector<DetCond> &cond_list, const JsonValue &option)

DetCond から Expr を作る.

DetCond.type() が Detected/PartialDetected の場合のみ Expr を作る.

パラメータ:
  • cond_list -- [in] 条件のリスト

  • option -- [in] オプション

static std::vector<std::vector<SatLiteral>> expr_to_cnf(StructEngine &engine, const std::vector<Expr> &expr_list, const JsonValue &option)

Expr を CNF に変換する.

パラメータ:
  • engine -- [in] CNFの作成用のエンジン

  • expr_list -- [in] 式のリスト

  • option -- [in] オプション

static std::vector<SatLiteral> make_bd(StructEngine &engine, const std::vector<DetCond> &cond_list)

BoolDiffEnc を用いた条件を作る.

DetCond.type() が PartialDetected/Overflow の場合にのみ BoolDiffEnc を作る.

パラメータ:
  • engine -- [in] CNFの作成用のエンジン

  • cond_list -- [in] 条件