人工智能专家系统的简单实现
生活随笔
收集整理的這篇文章主要介紹了
人工智能专家系统的简单实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
經過一段時間的學習,終于對專家系統有了一定的認識,在此發表一下個人的見解,希望和大家一起交流學習。
?專家系統,通俗的講,就是讓計算機具有人類專家的知識、經驗和技能,能夠像人類專家一樣解決實際問題。專家系統實質上是一段計算機程序,它能夠以人類專家的水平完成某一專業領域的任務。通過計算機,模擬人類專家如何運用他們的知識和經驗解決面臨問題的方法、技巧和步驟。基本系統結構(通常由人機交互界面、知識庫、綜合數據庫、推理機、解釋器、知識獲取等6個部分構成):
下面是一個簡單的動物識別的專家系統設計(簡單判斷蛇、蜥蜴、雞、貓四種動物):
1. 實現流程:
1)????初始化規則集合
2)????初始化規則事實集合
3)????使用規則推導
2. 添加規則信息:
”冷血”,”有腿”,”羽毛”,”會飛”
3. 規則事實:
冷血+沒有腿 -> 蛇
冷血+有腿 -> 蜥蜴
非冷血+有羽毛+不會飛 -> 雞
非冷血+沒有羽毛 -> 貓
4. 推理過程:
部分代碼:
#define Chicken 0x02 //雞 0010 #define Cat 0x00 //貓 0000 #define Snake 0x01 //蛇 0001 #define Lizard 0x05 //蜥蜴 01014位二進制位分別表示:能飛、有腿、有羽毛、冷血,匹配上則為1,否則為0 數據結構定義
typedef struct Rule {char *info; //規則信息Rule *pYes; //匹配到的下一個規則Rule *pNo; //未匹配到的下一個規則int pos; //該規則的位置 }Rule;unsigned char result = 0;
推導函數
void MatchRules(char *s, Rule *match) {if(!s || !match)return;//規則是否匹配上if(CheckRule(s, match->info) > 0){//記錄位置result += 1 << match->pos;MatchRules(s, match->pYes)}else{//未匹配上MatchRules(s, match->pNo);} }判斷result,得出結論
switch (result){case Chicken:printf("雞!"); break;case Cat:printf("貓!");break;case Snake:printf("蛇!");break;case Lizard:printf("蜥蜴!");break;default:printf("其他!");break;}以上只包含簡單規則(4種動物判斷,和4條規則),想要功能更完善,我們還可以添加更多精確的規則和事實。
總結
以上是生活随笔為你收集整理的人工智能专家系统的简单实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c 语言指针教学视频,[C语言] 猎豹网
- 下一篇: aix系统vi修改命令_AIX的VI命令