📄 bptest.cpp
字号:
#include "BayesNet.h"#include "MarkovNet.h"#include "VarSchema.h"#include <iostream>#include <fstream>#include <stdio.h>int main(int argc, char* argv[]){ if (argc < 2) { cout << "Usage: bptest <model> [evidence]\n"; return -1; } BayesNet model; FILE* modelIn = fopen(argv[1], "r"); if (!modelIn) { cout << "ERROR: could not open model file \"" << argv[1] << "\"\n"; return -1; } loadModel(modelIn, model); // Generate a pairwise Markov random field from this Bayes net MarkovNet mnet(model); if (argc > 2) { ifstream evidenceIn(argv[2]); VarSet evidence; while (evidenceIn) { evidenceIn >> evidence; mnet.resetAllNodes(); mnet.resetAllMessages(); // Fix evidence variables for (int i = 0; i < evidence.getNumVars(); i++) { if (evidence.isTested(i)) { // All network variables must be discrete. mnet.fixNodeValue(i, (int)evidence[i]); } } mnet.runBP(1.1, 0.0); for (int i = 0; i < model.getNumVars(); i++) { cout << i << ": " << mnet.getMarginal(i) << endl; } } } else { mnet.resetAllNodes(); mnet.resetAllMessages(); mnet.runBP(1.1, 0.0); for (int i = 0; i < model.getNumVars(); i++) { cout << i << ": " << mnet.getMarginal(i) << endl; } } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -