产生式系统实验

产生式系统实验流程图 https blog csdn net weixin article details utm medium distribute pc relevant none task blog BlogCommendF 3 channel param amp depth 1 utm source

大家好,我是讯享网,很高兴认识大家。

流程图:

https://blog.csdn.net/weixin_/article/details/?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param

#include<iostream> #include<vector> #include<map> using namespace std; vector<string> str{ "暗斑点","长脖子","长腿","奶","蹄" }; map<int, string> rule { {1,"哺乳动物"}, //r1 {2,"哺乳动物"}, //r2 {3,"鸟"}, //r3 {4,"鸟"}, //r4 {5,"肉食动物"}, //r5 {6,"肉食动物"}, //r6 {7,"有蹄类动物"}, //r7 {8,"有蹄类动物"}, //r8 {9,"金钱豹"}, //r9 {10,"虎"}, //r10 {11,"长颈鹿"}, //r11 {12,"斑马"}, //r12 {13,"鸵鸟"}, //r13 {14,"企鹅"}, //r14 {15,"信天翁"} //r15 }; bool noHave(string s) { for (auto x : str) if (x == s) { return 0; } return 1; } bool Have(string s) { for (auto x : str) if (x == s) { return 1; } return 0; } int main() { for (auto r : rule) { if (r.first == 1) { if (Have("毛发") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 2) { if (Have("奶") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 3) { if (Have("毛发") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 4) { if (Have("会飞") && Have("会下蛋") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 5) { if (Have("吃肉") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 6) { if (Have("犬齿") && Have("爪") && Have("眼盯前方") && (r.first == 1)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 7) { if (Have("哺乳动物") && Have("蹄") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 8) { if (Have("哺乳动物") && Have("反刍动物") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 9) { if (Have("哺乳动物") && Have("食肉动物") && Have("黄褐色") && Have("暗斑点") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 10) { if (Have("哺乳动物") && Have("食肉动物") && Have("黄褐色") && Have("黑色条纹") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 11) { if (Have("有蹄类动物") && Have("长脖子") && Have("长腿") && Have("暗斑点") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 12) { if (Have("有蹄类动物") && Have("黑色条纹") && Have("") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 13) { if (Have("鸟") && Have("长脖子") && Have("长腿") && Have("不会飞") && Have("黑白二色") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 14) { if (Have("鸟") && Have("会游泳") && Have("不会飞") && Have("黑白二色") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 15) { if (Have("鸟") && Have("善飞") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } } cout << "综合数据库内容: "; for (auto x : str) cout << x << " "; cout << endl; return 0; }
讯享网

Run

[执行完成,耗时:0 ms]

规则r2 加入: 哺乳动物

规则r7 加入: 有蹄类动物

规则r11 加入: 长颈鹿

综合数据库内容: 暗斑点 长脖子 长腿 奶 蹄 哺乳动物 有蹄类动物 长颈鹿

小讯
上一篇 2025-03-29 07:18
下一篇 2025-01-08 08:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/51111.html