人工智慧(AI)程式設計(面向對象語言)

人工智慧(AI)程式設計(面向對象語言)

《人工智慧(AI)程式設計(面向對象語言)》是2005年清華大學出版社出版的圖書,作者是雷英傑、邢清華、王濤。

內容簡介

智慧型化是當前計算機、自動化、通信、管理等信息科學技術領域中的新方法、新技術、新產品的重要發展方向與開發策略之一。信息處理的智慧型化與信息社會對智慧型的巨大需求是人工智慧發展的強大動力。人工智慧與專家系統曾取得過許多令人注目的成果,也走過不少彎路,經歷過不少挫折。近幾年來,隨著計算機及網路技術的迅猛發展,特別是網際網路的大規模普及,人工智慧與專家系統的研究再度活躍起來,並正向更為廣闊的領域發展。圍繞人工智慧與專家系統的研究和套用開發也迎來一個蓬勃發展的新時期。因此,引進與消化國際上已經廣泛流行的功能強大和通用的智慧型程式設計語言、工具與環境,對於中國開發智慧型化套用系統十分必要。鑒於國內已有許多用戶在使用Visual Prolog,而這方面的中文資料比較缺乏,我們編寫了本書,系統介紹了基於Visual Prolog的AI程式設計的功能特點、編程方法與技術,相信對於開發智慧型化軟體有啟迪作用,也希望對國內在這一領域的教學、研究及智慧型化套用水平的提高起到良好的促進作用,且有益於國內同行在這一領域與國際主流保持一致。

圖書目錄

第1部分 基礎知識
第1章 人工智慧概述 2
1.1 人工智慧的概念 2
1.1.1 人工智慧 2
1.1.2 為什麼要研究人工智慧 3
1.1.3 人類智慧型的計算機模擬 4
1.2 人工智慧的研究目標 7
1.3 人工智慧研究的基本內容及特點 9
1.3.1 人工智慧研究的基本內容 9
1.3.2 人工智慧的研究途徑與方法 10
1.3.3 人工智慧研究的主要特點 12
1.4 人工智慧的研究領域 14
1.4.1 經典的人工智慧研究領域 14
1.4.2 基於腦功能模擬的領域劃分 24
1.4.3 基於實現技術的領域劃分 28
1.4.4 基於套用領域的領域劃分 28
1.4.5 基於套用系統的領域劃分 33
1.4.6 基於計算機系統結構的領域劃分 34
1.4.7 基於實現工具與環境的領域劃分 35
1.5 人工智慧的基本技術 35
1.5.1 推理技術 35
1.5.2 搜尋技術 36
1.5.3 知識表示與知識庫技術 37
1.5.4 歸納技術 37
1.5.5 聯想技術 37
1.6 人工智慧的產生與發展 38
1.6.1 人工智慧學科的產生 38
1.6.2 符號主義學派 38
1.6.3 連線主義學派 40
1.6.4 人工智慧的發展趨勢 41
1.6.5 中國人工智慧的研究與發展 42
本章小結 42
習題1 44

第2章 知識表示方法 45
2.1 知識的基本概念 45
2.1.1 知識層次 45
2.1.2 知識的屬性 46
2.1.3 知識分類 47
2.1.4 知識表示 48
2.2 一階謂詞邏輯表示法 51
2.2.1 命題與真值 51
2.2.2 論域和謂詞 51
2.2.3 謂詞公式與量詞 52
2.2.4 謂詞邏輯表示方法 53
2.2.5 謂詞邏輯表示方法的BNF描述 54
2.2.6 謂詞邏輯表示方法的特點 54
2.3 產生式表示法 55
2.3.1 產生式 55
2.3.2 產生式系統 56
2.3.3 產生式表示法的特點 61
2.3.4 產生式表示法與其他知識表示方法的比較 61
2.4 語義網路表示法 62
2.4.1 語義網路的基本結構 62
2.4.2 語義網路的知識表示 62
2.4.3 語義網路與Prolog 64
2.4.4 語義網路的求解流程 65
2.4.5 基本的語義關係 65
2.4.6 語義網路表示法的特點 67
2.4.7 語義網路法與其他知識表示方法的比較 67
2.5 框架表示法 68
2.5.1 框架的基本結構 68
2.5.2 框架的BNF描述 70
2.5.3 框架系統中的預定義槽名 71
2.5.4 框架系統的問題求解過程 72
2.5.5 框架系統的程式語言實現 73
2.5.6 框架系統的特點 73
2.6 腳本表示法 73
2.6.1 概念依賴理論 74
2.6.2 腳本的結構 74
2.6.3 腳本的推理 75
2.6.4 腳本表示法的特點 76
2.7 過程表示法 76
2.7.1 表示知識的方法 77
2.7.2 過程表示的問題求解過程 78
2.7.3 過程表示的特點 79
2.7.4 過程性與說明性表示方法的比較 79
2.8 Petri網表示法 79
2.8.1 Petri網的基本概念 80
2.8.2 表示知識的方法 80
2.8.3 Petri網表示法的特點 81
2.9 面向對象表示法 81
2.9.1 面向對象的基本概念 81
2.9.2 面向對象的基本特徵 83
2.9.3 面向對象的知識表示 83
2.9.4 面向對象表示方法的特點 84
2.10 狀態空間表示法 85
2.11 問題歸約表示法 85
本章小結 86
習題2 86

第3章 AI編程基礎 88
3.1 命題邏輯 88
3.1.1 命題 88
3.1.2 命題定律 90
3.1.3 範式 92
3.1.4 命題邏輯的推論規則 94
3.1.5 命題邏輯的局限性 94
3.2 一階謂詞邏輯 95
3.2.1 謂詞 95
3.2.2 量詞 96
3.2.3 謂詞邏輯的合式公式 97
3.2.4 自由變元與約束變元 97
3.2.5 謂詞公式的解釋 98
3.2.6 含有量詞的等價式和蘊含式 99
3.2.7 謂詞邏輯中的推論規則 101
3.2.8 謂詞公式的範式與斯柯林標準形 102
3.3 產生式系統 104
3.3.1 產生式系統的基本組成 104
3.3.2 產生式系統的基本過程 106
3.3.3 基於產生式系統的具體問題建模 107
3.3.4 產生式系統的類型 108
3.3.5 產生式系統的搜尋策略 109
3.3.6 兩種典型的產生式系統 112
3.4 專家系統 117
3.4.1 專家系統的概念與組成 117
3.4.2 專家系統的類型 120
3.4.3 專家系統的特點 122
3.4.4 專家系統的開發工具 123
3.4.5 新一代專家系統研究 124
本章小結 126
習題3 127
第2部分 編程指南
第4章 Visual Prolog概述 130
4.1 Visual Prolog 6概述 130
4.2 Visual Prolog 6基本特性 131
4.2.1 語言特性 131
4.2.2 圖形化開發環境 132
4.2.3 編譯器 132
4.2.4 連結器 132
4.2.5 調試器 132
4.3 創建項目 133
4.4 建立項目 134
4.5 瀏覽項目 135
4.6 開發項目 137
4.7 調試項目 140
本章小結 142
習題4 142

第5章 Prolog基礎 143
5.1 Horn子句邏輯 143
5.2 Prolog推理機 145
5.3 擴展家庭定理 146
5.4 Prolog是一種程式語言 147
5.5 程式控制 148
5.5.1 失敗 149
5.5.2 回溯 149
5.5.3 改進家庭定理 151
5.5.4 遞歸 152
5.5.5 副效應 153
5.5.6 小結 154
5.6 Prolog算符 154
5.6.1 算符 155
5.6.2 深入理解算符 156
5.6.3 算符與謂詞 158
5.6.4 算符作為參數 158
5.6.5 算符遞歸 160
5.6.6 算符使用策略 161
5.6.7 小結 161
本章小結 161
習題5 162

第6章 類與對象 164
6.1 對象模型 164
6.2 類實體 165
6.3 模組 166
6.4 創建和訪問對象 166
6.5 接口對象類型 167
6.6 多重實現 167
6.7 包容多態性 168
6.8 support類型擴展 168
6.9 object超類型 169
6.10 繼承 169
6.11 對象體系的其他特點 171
6.12 Visual Prolog 5與Visual Prolog 6的差異 171
6.12.1 句點 171
6.12.2 謂詞 171
6.12.3 謂詞論域 172
6.12.4 引用論域 172
6.12.5 函式子句 172
6.12.6 常量 173
6.12.7 事實 173
6.12.8 事實變數 173
6.12.9 嵌套表達式與函式 174
6.12.10 編譯器命令 174
6.12.11 條件編譯 174
6.12.12 輸入輸出及特殊論域 175
6.12.13 省略與匿名參數類型 175
6.12.14 對象與類 176
6.12.15 庫支持 176
本章小結 180
習題6 180

第7章 Visual Prolog編程 182
7.1 Visual Prolog基礎 182
7.1.1 程式結構 182
7.1.2 目標 184
7.1.3 檔案考慮 185
7.1.4 作用域訪問 185
7.1.5 面向對象 186
7.1.6 一個完整的例子:family1.prj6 186
7.1.7 程式的取捨 192
7.1.8 小結 193
7.2 Visual Prolog的GUI編程 193
7.2.1 GUI概述 194
7.2.2 GUI對事件的回響 195
7.2.3 開始一個GUI項目 195
7.2.4 創建模態對話框 196
7.2.5 修改選單 200
7.2.6 修改工具列 202
7.2.7 在程式中添加主代碼 204
7.2.8 壓縮相關代碼 206
7.2.9 分析所做的工作 209
7.2.10 運行程式 211
7.2.11 小結 212
7.3 Visual Prolog的邏輯層 212
7.3.1 初始準備階段 212
7.3.2 創建業務邏輯層 212
7.3.3 在業務邏輯層上工作 213
7.3.4 創建業務邏輯類 214
7.3.5 理解業務邏輯類 217
7.3.6 連線業務邏輯層到GUI 217
7.3.7 理解事件處理程式 220
7.3.8 運行代碼 221
7.3.9 細節考慮 221
7.3.10 小結 221
7.4 Visual Prolog的數據層 222
7.4.1 基本概念 222
7.4.2 程式 222
7.4.3 非模態對話框 225
7.4.4 FamilyData包 226
7.4.5 接口 226
7.4.6 FamilyDL包 227
7.4.7 FamilyDL包的代碼 228
7.4.8 FamilyBLL包的代碼 229
7.4.9 數據層的特徵 230
7.4.10 小結 231
本章小結 231
習題7 231

第8章 編寫CGI程式 232
8.1 概述 232
8.2 編寫CGI程式基礎 232
8.2.1 公共網關接口 232
8.2.2 CGI程式 235
8.2.3 測試CGI程式 238
8.2.4 用Visual Prolog 6創建CGI程式 239
8.2.5 測試example1 241
8.2.6 應用程式功能分析 242
8.2.7 輸入流分析 242
8.3 編寫實用的CGI應用程式 242
8.3.1 將信息從HTML檔案傳輸至CGI程式 242
8.3.2 解釋信息流的高級CGI應用程式 244
8.3.3 信息從網路伺服器到瀏覽器的傳輸 246
8.3.4 CGI應用程式簡評 247
8.3.5 取代CGI程式的候選方案 247
8.3.6 加速CGI應用程式 247
8.3.7 CGI程式的客戶端 247
8.3.8 使用Javascript對象的高級CGI應用程式 249
8.3.9 安全性問題 251
8.3.10 防止CGI程式被盜鏈 252
8.3.11 小結 253
8.4 CGI應用程式測試實例 253
8.4.1 安裝TinyWeb網路伺服器 253
8.4.2 TinyWeb的根目錄 254
8.4.3 TinyWeb的連線埠 254
8.4.4 調試例子程式 254
8.4.5 用其他網路伺服器運行例子程式 254
本章小結 254
習題8 255

第9章 編碼風格 256
9.1 基本元素 256
9.1.1 關鍵字 256
9.1.2 半關鍵字 256
9.1.3 文字 257
9.1.4 標識符 257
9.1.5 常量 257
9.1.6 變數 257
9.1.7 謂詞 257
9.1.8 論域 258
9.1.9 類和接口 258
9.2 推薦格式 258
9.2.1 折行 258
9.2.2 縮排 259
9.2.3 對齊 259
9.2.4 空格字元 259
9.3 程式結構 259
9.3.1 段 259
9.3.2 類、接口及實現 260
9.3.3 謂詞聲明 260
9.3.4 論域 260
9.3.5 子句 261
9.3.6 不確定性循環 261
9.3.7 Word格式化代碼 261
9.4 程式設計語用學 262
9.4.1 常規技巧 262
9.4.2 布爾值 263
9.4.3 截斷 263
9.4.4 紅色截斷和綠色截斷 264
9.4.5 指派輸入格式 265
9.4.6 異常和錯誤處理 266
9.4.7 內部錯誤和其他錯誤 266
9.5 存儲管理 267
9.5.1 存儲器 267
9.5.2 運行堆疊 267
9.5.3 尾部調用最佳化 268
9.5.4 運行棧耗盡 268
9.5.5 全局棧 268
9.5.6 G-堆疊耗盡 268
9.5.7 堆和垃圾回收 269
9.5.8 垃圾回收 269
9.5.9 Finalizers 270
9.5.10 數據在什麼地方分配 270
9.5.11 堆中數據 270
9.5.12 多執行緒和存儲 271
9.6 異常處理 271
9.6.1 如何捕獲異常 271
9.6.2 如何構造自己的異常 273
9.6.3 如何繼續另一個異常 274
本章小結 276
習題9 276
第3部分 語言參考
第10章 Visual Prolog語言元素 280
10.1 類型 280
10.2 對象系統 281
10.2.1 外部視圖 281
10.2.2 內部視圖 282
10.3 作用域和可視性 283
10.3.1 名字分類 283
10.3.2 可視性、隱蔽性及限定性 285
10.4 詞法結構 286
10.4.1 程式單元 286
10.4.2 標記 287
10.4.3 文字 289
本章小結 291
習題10 291

第11章 Visual Prolog數據元素 292
11.1 論域段 292
11.1.1 類型名 292
11.1.2 複合論域 293
11.1.3 列表論域 295
11.1.4 引用論域 296
11.1.5 謂詞論域 296
11.1.6 整型論域 301
11.1.7 實型論域 302
11.2 通用類型和根類型 303
11.2.1 通用類型 303
11.2.2 根類型 304
本章小結 304
習題11 304

第12章 Visual Prolog程式元素 305
12.1 項 305
12.1.1 項的基本概念 305
12.1.2 運算符 306
12.1.3 類成員訪問 307
12.1.4 對象成員訪問 308
12.1.5 全局實體的訪問 308
12.1.6 論域、算符和常量訪問 308
12.2 常量 308
12.2.1 常量段 308
12.2.2 常量定義 309
12.3 謂詞 309
12.3.1 謂詞段 309
12.3.2 構造段 310
12.3.3 接口謂詞 311
12.3.4 變元 313
12.4 子句 313
12.4.1 子句段 313
12.4.2 目標段 314
12.5 事實 315
12.5.1 事實段 315
12.5.2 事實聲明 315
12.5.3 事實變數 316
12.5.4 事實 316
12.6 評估 317
12.6.1 回溯 317
12.6.2 謂詞調用 317
12.6.3 合一 318
12.6.4 引用論域 319
12.6.5 匹配 319
12.6.6 嵌套的函式調用 320
12.6.7 變數與常量 320
12.6.8 算術表達式 321
12.6.9 事實斷言與撤銷 322
12.6.10 失敗謂詞和成功謂詞 322
12.6.11 邏輯與 322
12.6.12 邏輯或 322
12.6.13 邏輯非 323
12.6.14 截斷 323
12.6.15 謂詞finally/2 324
12.7 程式段 325
本章小結 325
習題12 326

第13章 編譯單元 327
13.1 接口 327
13.1.1 接口的基本概念 327
13.1.2 接口與對象 328
13.1.3 開放限定 328
13.1.4 支持限定 329
13.2 類聲明 330
13.3 類實現 332
13.3.1 類實現的基本概念 332
13.3.2 繼承限定 334
13.3.3 歸結限定 334
13.3.4 委託限定 337
13.3.5 This修飾 339
13.3.6 構造器 341
13.3.7 終結 344
13.4 類型轉換 345
13.4.1 隱式轉換 345
13.4.2 顯式轉換 346
13.5 條件編譯 349
13.6 異常處理 349
13.7 預處理程式指令 350
13.7.1 條件編譯指令 350
13.7.2 源檔案包含 351
13.7.3 編譯時間信息 351
本章小結 353
習題13 354

第14章 內部論域、謂詞和常量 355
14.1 概述 355
14.2 內部常量詳解 357
14.3 內部論域詳解 358
14.4 內部謂詞詳解 363
本章小結 380
習題14 380

第15章 與其他程式語言接口 381
15.1 外部代碼 381
15.2 關鍵問題 381
15.3 調用約定和連結名 382
15.4 數據表示 383
15.4.1 舉例 383
15.4.2 外部程式庫 384
15.5 存儲管理 385
15.5.1 典型解決方案 385
15.5.2 垃圾收集和全局堆疊 386
15.6 Win32 API函式 386
本章小結 388
習題15 388

附錄 術語表 389
A 389
B 390
C 391
D 394
E 396
F 397
G 398
H 399
I 399
K 401
L 401
M 402
N 403
O 404
P 405
R 407
S 408
T 411
U 412
V 413

參考文獻 414

XVIII
目 錄

XIX
目 錄

圖書前言

Prolog語言是人工智慧與專家系統領域最著名的邏輯程式設計語言。Visual Prolog指可視化邏輯程式設計語言,是基於Prolog語言的可視化集成開發環境,是Prolog開發中心(PDC)最新推出的基於Windows環境的智慧型化編程工具,其語言特性符合相應的國際標準ISO/IEC 13211-1:1995。
新一代開發智慧型化套用的強有力工具,它還支持基於網路的開發、資料庫、多媒體、與C語言集成等。Visual Prolog在美國、加拿大、西歐、澳大利亞、紐西蘭、日本、韓國、新加坡等已開發國家和地區十分流行,是國際上研究和開發智慧型化套用的主流工具之一,擁有較多的群體,對這種工具軟體的需求已經逐漸顯現出來。國內已有不少Visual Prolog用戶,一個Visual Prolog群體正在逐漸形成。預計不久的將來,在國際上已經十分流行的最新版本的可視化邏輯程式設計語言Visual Prolog將會在國內廣泛流行,並將迅速成為中國研究和開發智慧型化套用的主流工具。
Visual Prolog具有模式匹配、遞歸、回溯、對象機制、事實資料庫和謂詞庫等強大功能。它包含構建大型應用程式所需要的一切特性:圖形開發環境、編譯器、連線器和調試器、支持模組化和面向對象程式設計、支持系統級編程、檔案操作、字元串處理、位級運算、算術與邏輯運算,以及與其他程式語言的接口。
Visual Prolog包含一個大型庫,捆綁了大量的API函式,包括Windows GUI函式族、ODBC/OCI資料庫函式族和網際網路函式族(socket,FTP,HTTP,CGI等)。這個開發環境全部使用Visual Prolog語言寫成,而且包含對話框、選單、工具列等若干編碼專家和圖形編輯器。Visual Prolog支持Windows 9x/Me/NT/2000/XP,OS/2,Linux和SCOUNIX等作業系統。
Visual Prolog非常適合於專家系統、規劃和其他AI相關問題的求解,是智慧型程式設計語言中具有代表性且套用較多的一種語言。由於這種語言很適合表達人的思維和推理規 則,在自然語言理解、機器定理證明、專家系統等方面得到了廣泛的套用,在智慧型程式設計語言中占有相當重要的地位。Visual Prolog不僅是優秀的智慧型化套用開發工具,而且與SQL資料庫系統、Visual C++或其他C++開發系統、Visual Basic,Delphi或Visual Age等程式語言一樣,已經成為適用於任何套用領域的強有力的通用開發工具。
流保持一致。

熱門詞條

聯絡我們