人工智能及其應(yīng)用實(shí)驗(yàn)指導(dǎo)書_第1頁(yè)
人工智能及其應(yīng)用實(shí)驗(yàn)指導(dǎo)書_第2頁(yè)
人工智能及其應(yīng)用實(shí)驗(yàn)指導(dǎo)書_第3頁(yè)
人工智能及其應(yīng)用實(shí)驗(yàn)指導(dǎo)書_第4頁(yè)
人工智能及其應(yīng)用實(shí)驗(yàn)指導(dǎo)書_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《人工智能及其應(yīng)用》

實(shí)驗(yàn)指導(dǎo)書

浙江工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院—人工智能課程組

2011年9月

前言

本實(shí)驗(yàn)是為了配合《人工智能及其應(yīng)用》課程的理論學(xué)習(xí)而專門設(shè)置的。本實(shí)驗(yàn)的目的是鞏固和加強(qiáng)人工智能的基本原理和方法,并為今后進(jìn)一步學(xué)習(xí)更高級(jí)課程和信息智能化技術(shù)的研究與系統(tǒng)開發(fā)奠定良好的基礎(chǔ)。

全書共分為八個(gè)實(shí)驗(yàn):1.產(chǎn)生式系統(tǒng)實(shí)驗(yàn);2.模糊推理系統(tǒng)實(shí)驗(yàn);3.A*算法求解8數(shù)碼問(wèn)題實(shí)驗(yàn);4.A*算法求解迷宮問(wèn)題實(shí)驗(yàn);5.遺傳算法求解函數(shù)最值問(wèn)題實(shí)驗(yàn);6.遺傳算法求解TSP問(wèn)題實(shí)驗(yàn);7.基于神經(jīng)網(wǎng)絡(luò)的模式識(shí)別實(shí)驗(yàn);8.基于神經(jīng)網(wǎng)絡(luò)的優(yōu)化計(jì)算實(shí)驗(yàn)。每個(gè)實(shí)驗(yàn)包括有:實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)條件、實(shí)驗(yàn)要求、實(shí)驗(yàn)步驟和實(shí)驗(yàn)報(bào)告等六個(gè)項(xiàng)目。

本實(shí)驗(yàn)指導(dǎo)書包括兩個(gè)部分。第一個(gè)部分是介紹實(shí)驗(yàn)的教學(xué)大綱;第二部分是介紹八個(gè)實(shí)驗(yàn)的內(nèi)容。

由于編者水平有限,本實(shí)驗(yàn)指導(dǎo)書的錯(cuò)誤和不足在所難免,歡迎批評(píng)指正。

人工智能課程組

2011年9月

目錄

實(shí)驗(yàn)教學(xué)大綱

1

實(shí)驗(yàn)一產(chǎn)生式系統(tǒng)實(shí)驗(yàn)

3

實(shí)驗(yàn)二模糊推理系統(tǒng)實(shí)驗(yàn)

5

實(shí)驗(yàn)三A*算法實(shí)驗(yàn)I

9

實(shí)驗(yàn)四A*算法實(shí)驗(yàn)II

12

實(shí)驗(yàn)五遺傳算法實(shí)驗(yàn)I

14

實(shí)驗(yàn)六遺傳算法實(shí)驗(yàn)II

18

實(shí)驗(yàn)七基于神經(jīng)網(wǎng)絡(luò)的模式識(shí)別實(shí)驗(yàn)

20

實(shí)驗(yàn)八

基于神經(jīng)網(wǎng)絡(luò)的優(yōu)化計(jì)算實(shí)驗(yàn)

24

實(shí)驗(yàn)教學(xué)大綱

一、學(xué)時(shí):16學(xué)時(shí),一般安排在第9周至第16周。

二、主要儀器設(shè)備及運(yùn)行環(huán)境:PC機(jī)、VisualC++6.0、Matlab7.0。

三、實(shí)驗(yàn)項(xiàng)目及教學(xué)安排

序號(hào)

實(shí)驗(yàn)名稱

實(shí)驗(yàn)

平臺(tái)

實(shí)驗(yàn)內(nèi)容

學(xué)時(shí)

類型

教學(xué)

要求

1

產(chǎn)生式系統(tǒng)應(yīng)用

VC++

設(shè)計(jì)知識(shí)庫(kù),實(shí)現(xiàn)系統(tǒng)識(shí)別或分類等。

2

設(shè)計(jì)

課內(nèi)

2

模糊推理系統(tǒng)應(yīng)用

Matlab

1)設(shè)計(jì)洗衣機(jī)的模糊控制器;

2)設(shè)計(jì)兩車追趕的模糊控制器。

2

驗(yàn)證

課內(nèi)

3

A*算法應(yīng)用I

VC++

設(shè)計(jì)與實(shí)現(xiàn)求解N數(shù)碼問(wèn)題的A*算法。

2

綜合

課內(nèi)

4

A*算法應(yīng)用II

VC++

設(shè)計(jì)與實(shí)現(xiàn)求解迷宮問(wèn)題的A*算法。

2

綜合

課內(nèi)

5

遺傳算法應(yīng)用I

Matlab

1)求某一函數(shù)的最小值;

2)求某一函數(shù)的最大值。

2

驗(yàn)證

課內(nèi)

6

遺傳算法應(yīng)用II

VC++

設(shè)計(jì)與實(shí)現(xiàn)求解不同城市規(guī)模的TSP問(wèn)題的遺傳算法。

2

綜合

課內(nèi)

7

基于神經(jīng)網(wǎng)絡(luò)的模式識(shí)別

Matlab

1)基于BP神經(jīng)網(wǎng)絡(luò)的數(shù)字識(shí)別設(shè)計(jì);

2)基于離散Hopfiel神經(jīng)網(wǎng)絡(luò)的聯(lián)想記憶設(shè)計(jì)。

2

驗(yàn)證

課內(nèi)

8

基于神經(jīng)網(wǎng)絡(luò)的優(yōu)化計(jì)算

VC++

設(shè)計(jì)與實(shí)現(xiàn)求解TSP問(wèn)題的連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)。

2

綜合

課內(nèi)

四、實(shí)驗(yàn)成績(jī)?cè)u(píng)定

實(shí)驗(yàn)課成績(jī)單獨(dú)按五分制評(píng)定。凡實(shí)驗(yàn)成績(jī)不及格者,該門課程就不及格。學(xué)生的實(shí)驗(yàn)成績(jī)應(yīng)以平時(shí)考查為主,一般應(yīng)占課程總成績(jī)的50%,其平時(shí)成績(jī)又要以實(shí)驗(yàn)實(shí)際操作的優(yōu)劣作為主要考核依據(jù)。對(duì)于實(shí)驗(yàn)課成績(jī),無(wú)論采取何種方式進(jìn)行考核,都必須按實(shí)驗(yàn)課的目的要求,以實(shí)際實(shí)驗(yàn)工作能力的強(qiáng)弱作為評(píng)定成績(jī)的主要依據(jù)。

評(píng)定各級(jí)成績(jī)時(shí),可參考以下標(biāo)準(zhǔn):

(一)優(yōu)秀

能正確理解實(shí)驗(yàn)的目的要求,能獨(dú)立、順利而正確地完成各項(xiàng)實(shí)驗(yàn)操作,會(huì)分析和處理實(shí)驗(yàn)中遇到的問(wèn)題,能掌握所學(xué)的各項(xiàng)實(shí)驗(yàn)技能,能較好地完成實(shí)驗(yàn)報(bào)告及其它各項(xiàng)實(shí)驗(yàn)作業(yè),有一定創(chuàng)造精神和能力。有良好的實(shí)驗(yàn)室工作作風(fēng)和習(xí)慣。

(二)良好

能理解實(shí)驗(yàn)的目的和要求,能認(rèn)真而正確地完成各項(xiàng)實(shí)驗(yàn)操作,能分析和處理實(shí)驗(yàn)中遇到的一些問(wèn)題。能掌握所學(xué)實(shí)驗(yàn)技能的絕大部分,對(duì)難點(diǎn)較大的操作完成有困難。能一般完成實(shí)驗(yàn)報(bào)告和其它實(shí)驗(yàn)作業(yè)。有較好的實(shí)驗(yàn)習(xí)慣和工作作風(fēng)。

(三)中等

能粗淺理解實(shí)驗(yàn)?zāi)康囊?,能認(rèn)真努力進(jìn)行各項(xiàng)實(shí)驗(yàn)操作,但技巧較差。能分析和處理實(shí)驗(yàn)中一些較容易的問(wèn)題,掌握實(shí)驗(yàn)技能的大部分。有30%掌握得不好。能一般完成各項(xiàng)實(shí)驗(yàn)作業(yè)和報(bào)告。處理問(wèn)題缺乏條理。工作作風(fēng)較好。能認(rèn)真遵守各項(xiàng)規(guī)章制度。學(xué)習(xí)努力。

(四)及格

只能機(jī)械地了解實(shí)驗(yàn)內(nèi)容,能一般按圖、或按實(shí)驗(yàn)步驟“照方抓藥”完成實(shí)驗(yàn)操作,能完成60%所學(xué)的實(shí)驗(yàn)技能,有些雖作但不準(zhǔn)確。遇到問(wèn)題常常缺乏解決的辦法,在別人啟發(fā)下能作些簡(jiǎn)單處理,但效果不理想。能一般完成實(shí)驗(yàn)報(bào)告,能認(rèn)真遵守實(shí)驗(yàn)室各項(xiàng)規(guī)章制度,工作中有小的習(xí)慣性毛病(如工作無(wú)計(jì)劃,處理問(wèn)題缺乏條理)。

(五)不及格

盲目地“照方抓藥”,只掌握50%的所學(xué)實(shí)驗(yàn)技能。有些實(shí)驗(yàn)雖能作,但一般效果不好,操作不正確。工作忙亂無(wú)條理。一般能遵守實(shí)驗(yàn)室規(guī)章制度,但常有小的錯(cuò)誤。實(shí)驗(yàn)報(bào)告較多的時(shí)候有結(jié)果,遇到問(wèn)題時(shí)說(shuō)不明原因,在教師指導(dǎo)下也較難完成各項(xiàng)實(shí)驗(yàn)作業(yè)?;蛴行┬÷斆鞯慌Γ磺笊线M(jìn)。

實(shí)驗(yàn)一產(chǎn)生式系統(tǒng)實(shí)驗(yàn)

一、實(shí)驗(yàn)?zāi)康模?/p>

熟悉一階謂詞邏輯和產(chǎn)生式表示法,掌握產(chǎn)生式系統(tǒng)的運(yùn)行機(jī)制,以及基于規(guī)則推理的基本方法。

二、實(shí)驗(yàn)內(nèi)容

運(yùn)用所學(xué)知識(shí),設(shè)計(jì)并編程實(shí)現(xiàn)一個(gè)小型人工智能系統(tǒng)(如分類、診斷、預(yù)測(cè)等類型)。

三、實(shí)驗(yàn)條件:

產(chǎn)生式系統(tǒng)實(shí)驗(yàn)程序,如下圖1所示。

圖1產(chǎn)生式系統(tǒng)實(shí)驗(yàn)程序界面

四、實(shí)驗(yàn)要求

1.具體應(yīng)用領(lǐng)域自選,具體系統(tǒng)名稱自定;但所做系統(tǒng)絕對(duì)不能雷同。

2.用一階謂詞邏輯和產(chǎn)生式規(guī)則作為知識(shí)表示,利用如圖1所示的產(chǎn)生式系統(tǒng)實(shí)驗(yàn)程序,建立知識(shí)庫(kù),分別運(yùn)行正、反向推理。

3.系統(tǒng)完成后,提交實(shí)驗(yàn)報(bào)告。

五、實(shí)驗(yàn)步驟:

1.基于如圖1所示的產(chǎn)生式系統(tǒng)實(shí)驗(yàn)程序,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)小型人工智能系統(tǒng):

1)系統(tǒng)設(shè)置,包括設(shè)置系統(tǒng)名稱和系統(tǒng)謂詞,給出謂詞名及其含義。

2)編輯知識(shí)庫(kù),通過(guò)輸入規(guī)則或修改規(guī)則等,完成整個(gè)規(guī)則庫(kù)的建立。

3)建立事實(shí)庫(kù)(綜合數(shù)據(jù)庫(kù)),輸入多條事實(shí)或結(jié)論。

4)運(yùn)行推理,包括正向推理和反向推理,給出相應(yīng)的推理過(guò)程、事實(shí)區(qū)和規(guī)則區(qū)。

2.撰寫實(shí)驗(yàn)報(bào)告。

六、實(shí)驗(yàn)報(bào)告

下面是實(shí)驗(yàn)報(bào)告的基本內(nèi)容和書寫格式。

遞交的報(bào)告文件名:班級(jí)_學(xué)號(hào)_姓名_實(shí)驗(yàn)名稱

———————————————————————

實(shí)驗(yàn)名稱

班級(jí):學(xué)號(hào):姓名:

一、實(shí)驗(yàn)?zāi)康?/p>

二、實(shí)驗(yàn)內(nèi)容

三、實(shí)驗(yàn)步驟

四、實(shí)驗(yàn)結(jié)果

1.系統(tǒng)名稱及謂詞定義

2.系統(tǒng)知識(shí)庫(kù)

3.系統(tǒng)正、反向推理過(guò)程、事實(shí)區(qū)和規(guī)則區(qū)。

五、實(shí)驗(yàn)總結(jié)

———————————————————————

實(shí)驗(yàn)二模糊推理系統(tǒng)實(shí)驗(yàn)

一、實(shí)驗(yàn)?zāi)康?/p>

理解模糊邏輯推理的原理及特點(diǎn),熟練應(yīng)用模糊推理,了解可能性理論。

二、實(shí)驗(yàn)原理

模糊推理所處理的事物自身是模糊的,概念本身沒有明確的外延,一個(gè)對(duì)象是否符合這個(gè)概念難以明確地確定,模糊推理是對(duì)這種不確定性,即模糊性的表示與處理。模糊邏輯推理是基于模糊性知識(shí)(模糊規(guī)則)的一種近似推理,一般采用Zadeh提出的語(yǔ)言變量、語(yǔ)言值、模糊集和模糊關(guān)系合成的方法進(jìn)行推理。

三、實(shí)驗(yàn)條件

Matlab7.0的FuzzyLogicTool。

四、實(shí)驗(yàn)內(nèi)容及要求

1.設(shè)計(jì)洗衣機(jī)洗滌時(shí)間的模糊控制。已知人的操作經(jīng)驗(yàn)為:

“污泥越多,油脂越多,洗滌時(shí)間越長(zhǎng)”;

“污泥適中,油脂適中,洗滌時(shí)間適中”;

“污泥越少,油脂越少,洗滌時(shí)間越短”。

要求:

(1)假設(shè)污泥、油脂、洗滌時(shí)間的論域分別為[0,100]、[0,100]和[0,120],設(shè)計(jì)相應(yīng)的模糊推理系統(tǒng),給出輸入、輸出語(yǔ)言變量的隸屬函數(shù)圖,模糊控制規(guī)則表和推論結(jié)果立體圖。

(2)假定當(dāng)前傳感器測(cè)得的信息為,采用面積重心法反模糊化,給出模糊推理結(jié)果,并觀察模糊推理的動(dòng)態(tài)仿真環(huán)境,給出其動(dòng)態(tài)仿真環(huán)境圖。

提示:模糊控制規(guī)則如下表1所示,其中SD(污泥少)、MD(污泥中)、LD(污泥多)、NG(油脂少)、MG(油脂中)、LG(油脂多)、VS(洗滌時(shí)間很短)、S(洗滌時(shí)間短)、M(洗滌時(shí)間中等)、L(洗滌時(shí)間長(zhǎng))、VL(洗滌時(shí)間很長(zhǎng))。

圖1洗衣機(jī)的模糊控制規(guī)則表

x

y

z

SD

NG

VS

SD

MG

M

SD

LG

L

MD

NG

S

MD

MG

M

MD

LG

L

LD

NG

M

LD

MG

L

LD

LG

VL

2.假設(shè)兩汽車均為理想狀態(tài),即,Y為速度,U為油門控制輸入。

(1)設(shè)計(jì)模糊推理系統(tǒng)控制2號(hào)汽車由靜止啟動(dòng),追趕200m外時(shí)速90km的1號(hào)汽車并與其保持30m的距離。

(2)在25時(shí)刻1號(hào)汽車速度改為時(shí)速110km時(shí),仍與其保持30m距離。

(3)在35時(shí)刻1號(hào)汽車速度改為時(shí)速70km時(shí),仍與其保持30m距離。

要求:

(1)如下圖1所示,設(shè)計(jì)兩輸入一輸出的模糊推理系統(tǒng)作為2號(hào)汽車的模糊控制器,其中輸入為誤差e和誤差的變化,輸出為1號(hào)汽車的油門控制u,采用面積等分法反模糊化,給出輸入、輸出語(yǔ)言變量的隸屬函數(shù)圖,模糊控制規(guī)則表,推論結(jié)果立體圖和模糊推理的動(dòng)態(tài)仿真環(huán)境圖。

圖1兩車追趕的模糊控制系統(tǒng)框圖

(2)用SIMULINK仿真兩車追趕的模糊控制系統(tǒng),給出目標(biāo)車(1號(hào)汽車)的速度曲線圖,以及追趕車(2號(hào)汽車)的速度曲線圖和與目標(biāo)車(1號(hào)汽車)相對(duì)距離變化圖。

提示:模糊控制規(guī)則如下表2所示,其中,r、和油門控制u的論域分別為[0,1]、[-3,3]和[-1,1],r的隸屬函數(shù)如圖2所示。

表2模糊控制規(guī)則表

NB

ZE

PB

PB

ZE

NM

NB

PM

ZE

PM

PB

ZE

ZE

PM

PB

NM

ZE

NM

NB

NB

ZE

NM

NB

圖2r的隸屬函數(shù)圖

五、實(shí)驗(yàn)報(bào)告要求:

1.按照實(shí)驗(yàn)要求,給出相應(yīng)結(jié)果。

2.分析隸屬度、模糊關(guān)系和模糊規(guī)則的相互關(guān)系。

下面是實(shí)驗(yàn)報(bào)告的基本內(nèi)容和書寫格式。

實(shí)驗(yàn)名稱

班級(jí):學(xué)號(hào):姓名:

一、實(shí)驗(yàn)?zāi)康?/p>

二、實(shí)驗(yàn)內(nèi)容

三、實(shí)驗(yàn)結(jié)果

按照實(shí)驗(yàn)要求,給出相應(yīng)結(jié)果。

四、實(shí)驗(yàn)總結(jié)

1.分析隸屬度、模糊關(guān)系和模糊規(guī)則的相互關(guān)系。

2.總結(jié)實(shí)驗(yàn)心得體會(huì)

——————————————————————————————————

實(shí)驗(yàn)三A*算法實(shí)驗(yàn)I

一、實(shí)驗(yàn)?zāi)康?/p>

熟悉和掌握啟發(fā)式搜索的定義、估價(jià)函數(shù)和算法過(guò)程,并利用A*算法求解N數(shù)碼難題,理解求解流程和搜索順序。

二、實(shí)驗(yàn)原理

A*算法是一種啟發(fā)式圖搜索算法,其特點(diǎn)在于對(duì)估價(jià)函數(shù)的定義上。對(duì)于一般的啟發(fā)式圖搜索,總是選擇估價(jià)函數(shù)f值最小的節(jié)點(diǎn)作為擴(kuò)展節(jié)點(diǎn)。因此,f是根據(jù)需要找到一條最小代價(jià)路徑的觀點(diǎn)來(lái)估算節(jié)點(diǎn)的,所以,可考慮每個(gè)節(jié)點(diǎn)n的估價(jià)函數(shù)值為兩個(gè)分量:從起始節(jié)點(diǎn)到節(jié)點(diǎn)n的實(shí)際代價(jià)g(n)以及從節(jié)點(diǎn)n到達(dá)目標(biāo)節(jié)點(diǎn)的估價(jià)代價(jià)h(n),且,為節(jié)點(diǎn)到目的結(jié)點(diǎn)的最優(yōu)路徑的代價(jià)。

八數(shù)碼問(wèn)題是在3×3的九宮格棋盤上,擺有8個(gè)刻有1~8數(shù)碼的將牌。棋盤中有一個(gè)空格,允許緊鄰空格的某一將牌可以移到空格中,這樣通過(guò)平移將牌可以將某一將牌布局變換為另一布局。針對(duì)給定的一種初始布局或結(jié)構(gòu)(目標(biāo)狀態(tài)),問(wèn)如何移動(dòng)將牌,實(shí)現(xiàn)從初始狀態(tài)到目標(biāo)狀態(tài)的轉(zhuǎn)變。如下圖1表示了一個(gè)具體的八數(shù)碼問(wèn)題求解。

圖1八數(shù)碼問(wèn)題的求解

三、實(shí)驗(yàn)內(nèi)容

1.參考A*算法核心代碼,以8數(shù)碼問(wèn)題為例實(shí)現(xiàn)A*算法的求解程序(編程語(yǔ)言不限),要求設(shè)計(jì)兩種不同的估價(jià)函數(shù)。

2.設(shè)置相同的初始狀態(tài)和目標(biāo)狀態(tài),針對(duì)不同的估價(jià)函數(shù),求得問(wèn)題的解,并比較它們對(duì)搜索算法性能的影響,包括擴(kuò)展節(jié)點(diǎn)數(shù)、生成節(jié)點(diǎn)數(shù)等。

3.設(shè)置與上述2相同的初始狀態(tài)和目標(biāo)狀態(tài),用寬度優(yōu)先搜索算法(即令估計(jì)代價(jià)h(n)=0的A*算法)求得問(wèn)題的解,以及搜索過(guò)程中的擴(kuò)展節(jié)點(diǎn)數(shù)、生成節(jié)點(diǎn)數(shù)。

*4.參考A*算法核心代碼,實(shí)現(xiàn)A*算法求解15數(shù)碼問(wèn)題的程序,設(shè)計(jì)兩種不同的估價(jià)函數(shù),然后重復(fù)上述2和3的實(shí)驗(yàn)內(nèi)容。

5.提交實(shí)驗(yàn)報(bào)告和源程序。

四、實(shí)驗(yàn)報(bào)告要求

1.分析不同的估價(jià)函數(shù)對(duì)A*算法性能的影響。

2.根據(jù)寬度優(yōu)先搜索算法和A*算法求解8、15數(shù)碼問(wèn)題的結(jié)果,分析啟發(fā)式搜索的特點(diǎn)。

下面是實(shí)驗(yàn)報(bào)告的基本內(nèi)容和書寫格式。

實(shí)驗(yàn)名稱

班級(jí):學(xué)號(hào):姓名:

一、實(shí)驗(yàn)?zāi)康?/p>

二、實(shí)驗(yàn)原理

三、實(shí)驗(yàn)結(jié)果

按照實(shí)驗(yàn)內(nèi)容,把結(jié)果填入表1。

表1不同啟發(fā)函數(shù)h(n)求解8數(shù)碼問(wèn)題的結(jié)果比較

啟發(fā)函數(shù)h(n)

不在位數(shù)

0

初始狀態(tài)

目標(biāo)狀態(tài)

123804765

123804765

123804765

最優(yōu)解

擴(kuò)展節(jié)點(diǎn)數(shù)

生成節(jié)點(diǎn)數(shù)

運(yùn)行時(shí)間

*表2不同啟發(fā)函數(shù)h(n)求解15數(shù)碼問(wèn)題的結(jié)果比較

啟發(fā)函數(shù)h(n)

不在位數(shù)

0

初始狀態(tài)

目標(biāo)狀態(tài)

最優(yōu)解

擴(kuò)展節(jié)點(diǎn)數(shù)

生成節(jié)點(diǎn)數(shù)

運(yùn)行時(shí)間

四、實(shí)驗(yàn)總結(jié)

1.畫出A*算法求解N數(shù)碼問(wèn)題的流程圖

2.完成實(shí)驗(yàn)報(bào)告要求1和2。

3.總結(jié)實(shí)驗(yàn)心得體會(huì)

——————————————————————————————————

實(shí)驗(yàn)四A*算法實(shí)驗(yàn)II

一、實(shí)驗(yàn)?zāi)康?/p>

熟悉和掌握A*算法實(shí)現(xiàn)迷宮尋路功能,要求掌握啟發(fā)式函數(shù)的編寫以及各類啟發(fā)式函數(shù)效果的比較。

二、實(shí)驗(yàn)原理

A*(A-Star)算法是一種靜態(tài)路網(wǎng)中求解最短路最有效的方法。公式表示為:f(n)=g(n)+h(n),其中f(n)是節(jié)點(diǎn)n從初始點(diǎn)到目標(biāo)點(diǎn)的估價(jià)函數(shù),g(n)是在狀態(tài)空間中從初始節(jié)點(diǎn)到n節(jié)點(diǎn)的實(shí)際代價(jià),h(n)是從n到目標(biāo)節(jié)點(diǎn)最佳路徑的估計(jì)代價(jià)。保證找到最短路徑(最優(yōu)解的)條件,關(guān)鍵在于估價(jià)函數(shù)h(n)的選取:估價(jià)值h(n)小于等于n到目標(biāo)節(jié)點(diǎn)的距離實(shí)際值,這種情況下,搜索的點(diǎn)數(shù)多,搜索范圍大,效率低,但能得到最優(yōu)解。如果估價(jià)值大于實(shí)際值,搜索的點(diǎn)數(shù)少,搜索范圍小,效率高,但不能保證得到最優(yōu)解。

尋路問(wèn)題常見于各類游戲中角色尋路、三維虛擬場(chǎng)景中運(yùn)動(dòng)目標(biāo)的路徑規(guī)劃、機(jī)器人尋路等多個(gè)應(yīng)用領(lǐng)域。迷宮尋路問(wèn)題是在以方格表示的地圖場(chǎng)景中,對(duì)于給定的起點(diǎn)、終點(diǎn)和障礙物(墻),如何找到一條從起點(diǎn)開始避開障礙物到達(dá)終點(diǎn)的最短路徑。

假設(shè)在一個(gè)n*m的迷宮里,入口坐標(biāo)和出口坐標(biāo)分別為(1,1)和(5,5),每一個(gè)坐標(biāo)點(diǎn)有兩種可能:0或1,其中0表示該位置允許通過(guò),1表示該位置不允許通過(guò)。

如地圖:

00000

10101

00111

01000

00010

最短路徑應(yīng)該是

AB000

1C101

ED111

F1JKL

GHI1M

即:(1,1)-(1,2)-(2,2)-(3,2)-(3,1)-(4,1)-(5,1)-(5,2)-(5,3)-(4,3)-(4,4)-(4,5)-(5,5)

三、實(shí)驗(yàn)內(nèi)容

1.參考迷宮求解的核心代碼,觀察求解過(guò)程與思路,畫出用A*算法求解迷宮最短路徑的流程圖。

2.設(shè)置不同的地圖,以及不同的初始狀態(tài)和目標(biāo)狀態(tài),記錄A*算法的求解結(jié)果,包括最短路徑、擴(kuò)展節(jié)點(diǎn)數(shù)、生成節(jié)點(diǎn)數(shù)和算法運(yùn)行時(shí)間。

3.對(duì)于相同的初始狀態(tài)和目標(biāo)狀態(tài),設(shè)計(jì)不同的啟發(fā)式函數(shù),比較不同啟發(fā)式函數(shù)對(duì)迷宮尋路速度的提升效果,包括擴(kuò)展節(jié)點(diǎn)數(shù)、生成節(jié)點(diǎn)數(shù)和算法運(yùn)行時(shí)間。

4.提交實(shí)驗(yàn)報(bào)告和源程序。

四、實(shí)驗(yàn)報(bào)告要求:

1.畫出A*算法求解迷宮最短路徑問(wèn)題的流程圖。

2.試分析不同啟發(fā)式函數(shù)h(n)對(duì)迷宮尋路求解的速度提升效果。

3.分析A*算法求解不同規(guī)模迷宮最短路徑問(wèn)題的性能。

下面是實(shí)驗(yàn)報(bào)告的基本內(nèi)容和書寫格式。

實(shí)驗(yàn)名稱

班級(jí):學(xué)號(hào):姓名:

一、實(shí)驗(yàn)?zāi)康?/p>

二、實(shí)驗(yàn)原理

三、實(shí)驗(yàn)結(jié)果

按照實(shí)驗(yàn)內(nèi)容,給出相應(yīng)結(jié)果。

四、實(shí)驗(yàn)總結(jié)

1.完成實(shí)驗(yàn)報(bào)告要求2和3。

2.總結(jié)實(shí)驗(yàn)心得體會(huì)

——————————————————————————————————

實(shí)驗(yàn)五遺傳算法實(shí)驗(yàn)I

一、實(shí)驗(yàn)?zāi)康?/p>

熟悉和掌握遺傳算法的原理、流程和編碼策略,并利用遺傳求解函數(shù)優(yōu)化問(wèn)題,理解求解流程并測(cè)試主要參數(shù)對(duì)結(jié)果的影響。

二、實(shí)驗(yàn)原理

遺傳算法(GeneticAlgorithms,GA)是基于生物界自然選擇和基因遺傳學(xué)原理的一種廣為應(yīng)用的、高效的隨機(jī)搜索算法,20世紀(jì)60年代由美國(guó)的密執(zhí)根大學(xué)的Holland教授首先提出。該算法將優(yōu)化問(wèn)題看作是自然界中生物的進(jìn)化過(guò)程,通過(guò)模擬大自然中生物進(jìn)化過(guò)程中的遺傳規(guī)律,來(lái)達(dá)到尋優(yōu)的目的。近年來(lái),遺傳算法已廣泛地應(yīng)用于作業(yè)調(diào)度與排序、可靠性設(shè)計(jì)、車輛路徑選擇與調(diào)度、成組技術(shù)、設(shè)備布置與分配、交通問(wèn)題等等。

用遺傳算法求解優(yōu)化問(wèn)題,首先對(duì)優(yōu)化問(wèn)題的解進(jìn)行編碼,編碼后的一個(gè)解稱為一個(gè)染色體,組成染色體的元素稱為基因。一個(gè)群體由若干個(gè)染色體組成,染色體的個(gè)數(shù)稱為群體的規(guī)模。在遺傳算法中用適應(yīng)度函數(shù)表示環(huán)境,它是已編碼的解的函數(shù),是一個(gè)解適應(yīng)環(huán)境程度的評(píng)價(jià)。當(dāng)適應(yīng)度函數(shù)確定后,自然選擇規(guī)律以適應(yīng)度函數(shù)值的大小來(lái)決定一個(gè)染色體是否繼續(xù)生存下去的概率。生存下來(lái)的染色體成為種群,它們中的部分或全部以一定的概率進(jìn)行交叉、變異,從而得到下一代群體。

三、實(shí)驗(yàn)條件

Matlab7.X的遺傳算法工具箱。

四、實(shí)驗(yàn)內(nèi)容:

1.用遺傳算法求解下列函數(shù)的最大值,設(shè)定求解精度到15位小數(shù)。

給出適應(yīng)度函數(shù)(FitnessFunction)的M文件(Matlab中要求適應(yīng)度函數(shù)最小化)。

設(shè)計(jì)及選擇上述問(wèn)題的編碼、選擇操作、交叉操作、變異操作以及控制參數(shù)等,填入表1,給出最佳適應(yīng)度(Bestfitness)和最佳個(gè)體(Bestindividual)圖。

表1遺傳算法參數(shù)的選擇

編碼

編碼方式(populationtype)

種群參數(shù)

種群規(guī)模(populationsize)

初始種群的個(gè)體取值范圍(Initialrange)

選擇操作

個(gè)體選擇概率分配策略(對(duì)應(yīng)Fitnessscaling)

個(gè)體選擇方法(Selectionfunction)

最佳個(gè)體保存

優(yōu)良個(gè)體保存數(shù)量(Elitecount)

交叉操作

交叉概率(Crossoverfraction)

交叉方式(Crossoverfunction)

變異操作

變異方式(Mutationfunction)

停止參數(shù)

最大迭代步數(shù)(Generations)

最大運(yùn)行時(shí)間限制(Timelimit)

最小適應(yīng)度限制(Fitnesslimit)

停滯代數(shù)(Stallgenerations)

停滯時(shí)間限制(Stalltimelimit)

使用相同的初始種群(Userandomstatefrompreviousrun),設(shè)置不同的種群規(guī)模(populationsize),例如5、20和100,初始種群的個(gè)體取值范圍(Initialrange)為[0;1],其他參數(shù)同表1,然后求得相應(yīng)的最佳適應(yīng)度(Bestfitness)、平均適應(yīng)度(Meanfitness)和最佳個(gè)體(Bestindividual),填入下表2,分析種群規(guī)模對(duì)算法性能的影響。

表2不同的種群規(guī)模的GA運(yùn)行結(jié)果

種群規(guī)模

最佳適應(yīng)度

平均適應(yīng)度

最佳個(gè)體

x

y

5

20

100

*4)設(shè)置種群規(guī)模(populationsize)為20,初始種群的個(gè)體取值范圍(Initialrange)為[0;10],選擇不同的選擇操作、交叉操作和變異操作,其他參數(shù)同表1,然后獨(dú)立運(yùn)行算法10次,完成下表3,并分析比較采用不同的選擇策略、交叉策略和變異策略的算法運(yùn)行結(jié)果。

表3不同的選擇策略、交叉策略和變異策略的算法運(yùn)行結(jié)果

遺傳算法參數(shù)設(shè)置(gaoptimset)

1

2

3

4

選擇操作

個(gè)體選擇概率分配

FitnessScalingFcn

Rank(排序)

@fitscalingrank

Proportional(比率)

@fitscalingprop

個(gè)體選擇

SelectionFcn

Roulette(輪盤賭選擇)

@selectionroulette

Tournament(競(jìng)標(biāo)賽選擇)

@selectiontournament

交叉操作

CrossoverFcn

單點(diǎn)交叉@crossoversinglepoint

兩點(diǎn)交叉@crossovertwopoint

變異操作

MutationFcn

Uniform(均勻變異)@mutationuniform

Gaussian(高斯變異)@mutationgaussian

最好適應(yīng)度

最差適應(yīng)度

平均適應(yīng)度

備注:

1:options=gaoptimset('PopulationSize',20,'PopInitRange',[0;10],'FitnessScalingFcn',@fitscalingrank,'SelectionFcn',@selectionroulette,'CrossoverFcn',@crossoversinglepoint,'MutationFcn',@mutationuniform)

2.用遺傳算法求解下面一個(gè)Rastrigin函數(shù)的最小值,設(shè)定求解精度到15位小數(shù)。

1)給出適應(yīng)度函數(shù)的M文件(Matlab中要求適應(yīng)度函數(shù)最小化)。

設(shè)計(jì)上述問(wèn)題的編碼、選擇操作、交叉操作、變異操作以及控制參數(shù)等,填入表4,并畫出最佳適應(yīng)度(Bestfitness)和最佳個(gè)體(Bestindividual)圖。

表4遺傳算法參數(shù)的選擇

編碼

編碼方式(populationtype)

種群參數(shù)

種群規(guī)模(populationsize)

初始種群的個(gè)體取值范圍(Initialrange)

選擇操作

個(gè)體選擇概率分配策略(對(duì)應(yīng)Fitnessscaling)

個(gè)體選擇方法(Selectionfunction)

最佳個(gè)體保存

優(yōu)良個(gè)體保存數(shù)量(Elitecount)

交叉操作

交叉概率(Crossoverfraction)

交叉方式(Crossoverfunction)

變異操作

變異方式(Mutationfunction)

停止參數(shù)

最大迭代步數(shù)(Generations)

最大運(yùn)行時(shí)間限制(Timelimit)

最小適應(yīng)度限制(Fitnesslimit)

停滯代數(shù)(Stallgenerations)

停滯時(shí)間限制(Stalltimelimit)

設(shè)置種群的不同初始范圍,例如[1;1.1]、[1;100]和[1;2],畫出相應(yīng)的最佳適應(yīng)度值(Bestfitness)和平均距離(Distance)圖,比較分析初始范圍及種群多樣性對(duì)遺傳算法性能的影響。

設(shè)置不同的交叉概率(Crossoverfraction=0、0.8、1),畫出無(wú)變異的交叉(Crossoverfraction=1)、無(wú)交叉的變異(Crossoverfraction=0)以及交叉概率為0.8時(shí)最佳適應(yīng)度值(Bestfitness)和和平均距離(Distance)圖,分析交叉和變異操作對(duì)算法性能的影響。

五、實(shí)驗(yàn)報(bào)告要求:

1.畫出遺傳算法的算法流程圖。

2.根據(jù)實(shí)驗(yàn)內(nèi)容,給出相應(yīng)結(jié)果。

3.總結(jié)遺傳算法的特點(diǎn),并說(shuō)明適應(yīng)度函數(shù)在遺傳算法中的作用。

下面是實(shí)驗(yàn)報(bào)告的基本內(nèi)容和書寫格式。

實(shí)驗(yàn)名稱

班級(jí):學(xué)號(hào):姓名:

一、實(shí)驗(yàn)?zāi)康?/p>

二、實(shí)驗(yàn)原理

三、實(shí)驗(yàn)結(jié)果

按照實(shí)驗(yàn)內(nèi)容,給出實(shí)驗(yàn)結(jié)果以及結(jié)果分析。

四、實(shí)驗(yàn)總結(jié)

1.完成實(shí)驗(yàn)報(bào)告要求3。

2.總結(jié)實(shí)驗(yàn)心得體會(huì)

——————————————————————————————————

實(shí)驗(yàn)六遺傳算法實(shí)驗(yàn)II

一、實(shí)驗(yàn)?zāi)康?/p>

熟悉和掌握遺傳算法的原理、流程和編碼策略,理解求解TSP問(wèn)題的流程并測(cè)試主要參數(shù)對(duì)結(jié)果的影響,掌握遺傳算法的基本實(shí)現(xiàn)方法。

二、實(shí)驗(yàn)原理

旅行商問(wèn)題,即TSP問(wèn)題(TravelingSalesmanProblem)是數(shù)學(xué)領(lǐng)域中著名問(wèn)題之一。假設(shè)有一個(gè)旅行商人要拜訪n個(gè)城市,n個(gè)城市之間的相互距離已知,他必須選擇所要走的路徑,路經(jīng)的限制是每個(gè)城市只能拜訪一次,而且最后要回到原來(lái)出發(fā)的城市。路徑的選擇目標(biāo)是要求得的路徑路程為所有路徑之中的最小值。

用圖論的術(shù)語(yǔ)來(lái)說(shuō),假設(shè)有一個(gè)圖g=(v,e),其中v是頂點(diǎn)集,e是邊集,設(shè)d=(dij)是由頂點(diǎn)i和頂點(diǎn)j之間的距離所組成的距離矩陣,旅行商問(wèn)題就是求出一條通過(guò)所有頂點(diǎn)且每個(gè)頂點(diǎn)只通過(guò)一次的具有最短距離的回路。TSP問(wèn)題是一個(gè)典型的組合優(yōu)化問(wèn)題,該問(wèn)題可以被證明具有NPC計(jì)算復(fù)雜性,其可能的路徑數(shù)目與城市數(shù)目n是成指數(shù)型增長(zhǎng)的,所以一般很難精確地求出其最優(yōu)解,本實(shí)驗(yàn)采用遺傳算法求解。

遺傳算法的基本思想正是基于模仿生物界遺傳學(xué)的遺傳過(guò)程。它把問(wèn)題的參數(shù)用基因代表,把問(wèn)題的解用染色體代表(在計(jì)算機(jī)里用二進(jìn)制碼表示),從而得到一個(gè)由具有不同染色體的個(gè)體組成的群體。這個(gè)群體在問(wèn)題特定的環(huán)境里生存競(jìng)爭(zhēng),適者有最好的機(jī)會(huì)生存和產(chǎn)生后代。后代隨機(jī)化地繼承了父代的最好特征,并也在生存環(huán)境的控制支配下繼續(xù)這一過(guò)程。群體的染色體都將逐漸適應(yīng)環(huán)境,不斷進(jìn)化,最后收斂到一個(gè)最適應(yīng)環(huán)境的類似個(gè)體,即得到問(wèn)題最優(yōu)的解。

三、實(shí)驗(yàn)內(nèi)容

1、參考實(shí)驗(yàn)系統(tǒng)給出的遺傳算法核心代碼,用遺傳算法求解不同規(guī)模(例如10個(gè)城市,20個(gè)城市,100個(gè)城市)的TSP問(wèn)題,把結(jié)果填入表1。

表1遺傳算法求解不同規(guī)模的TSP問(wèn)題的結(jié)果

城市規(guī)模

最好適應(yīng)度

最差適應(yīng)度

平均適應(yīng)度

平均運(yùn)行時(shí)間

10

20

100

2、對(duì)于同一個(gè)TSP問(wèn)題(例如10個(gè)城市),設(shè)置不同的種群規(guī)模(例如10,20,100)、交叉概率(0,0.5,1)和變異概率(0,0.5,1),把結(jié)果填入表2。

3、設(shè)置種群規(guī)模為100,交叉概率為0.85,變異概率為0.15,然后增加1種變異策略(例如相鄰兩點(diǎn)互換變異、逆轉(zhuǎn)變異或插入變異等)和1種個(gè)體選擇概率分配策略(例如按線性排序或者按非線性排序分配個(gè)體選擇概率)用于求解同一TSP問(wèn)題(例如10個(gè)城市),把結(jié)果填入表3。

表2不同的種群規(guī)模、交叉概率和變異概率的求解結(jié)果

種群規(guī)模

交叉概率

變異概率

最好適應(yīng)度

最差適應(yīng)度

平均適應(yīng)度

平均運(yùn)行時(shí)間

10

0.85

0.15

20

0.85

0.15

100

0.85

0.15

100

0

0.15

100

0.5

0.15

100

1

0.15

100

0.85

0

100

0.85

0.5

100

0.85

1

表3不同的變異策略和個(gè)體選擇概率分配策略的求解結(jié)果

變異策略

個(gè)體選擇概率分配

最好適應(yīng)度

最差適應(yīng)度

平均適應(yīng)度

平均運(yùn)行時(shí)間

兩點(diǎn)互換

按適應(yīng)度比例分配

兩點(diǎn)互換

按適應(yīng)度比例分配

4、提交實(shí)驗(yàn)報(bào)告和源程序。

四、實(shí)驗(yàn)報(bào)告要求:

1、畫出遺傳算法求解TSP問(wèn)題的流程圖。

2、分析遺傳算法求解不同規(guī)模的TSP問(wèn)題的算法性能。

3、對(duì)于同一個(gè)TSP問(wèn)題,分析種群規(guī)模、交叉概率和變異概率對(duì)算法結(jié)果的影響。

4、增加1種變異策略和1種個(gè)體選擇概率分配策略,比較求解同一TSP問(wèn)題時(shí)不同變異策略及不同個(gè)體選擇分配策略對(duì)算法結(jié)果的影響。

下面是實(shí)驗(yàn)報(bào)告的基本內(nèi)容和書寫格式。

實(shí)驗(yàn)名稱

班級(jí):學(xué)號(hào):姓名:

一、實(shí)驗(yàn)?zāi)康?/p>

二、實(shí)驗(yàn)原理

三、實(shí)驗(yàn)結(jié)果

按照實(shí)驗(yàn)內(nèi)容,給出相應(yīng)結(jié)果。

四、實(shí)驗(yàn)總結(jié)

1.完成實(shí)驗(yàn)報(bào)告要求2,3和4。

2.總結(jié)實(shí)驗(yàn)心得體會(huì)

——————————————————————————————————

實(shí)驗(yàn)七基于神經(jīng)網(wǎng)絡(luò)的模式識(shí)別實(shí)驗(yàn)

一、實(shí)驗(yàn)?zāi)康?/p>

理解BP神經(jīng)網(wǎng)絡(luò)和離散Hopfield神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和原理,掌握反向傳播學(xué)習(xí)算法對(duì)神經(jīng)元的訓(xùn)練過(guò)程,了解反向傳播公式。通過(guò)構(gòu)建BP網(wǎng)絡(luò)和離散Hopfield網(wǎng)絡(luò)模式識(shí)別實(shí)例,熟悉前饋網(wǎng)絡(luò)和反饋網(wǎng)絡(luò)的原理及結(jié)構(gòu)。

二、實(shí)驗(yàn)原理

BP學(xué)習(xí)算法是通過(guò)反向?qū)W習(xí)過(guò)程使誤差最小,其算法過(guò)程從輸出節(jié)點(diǎn)開始,反向地向第一隱含層(即最接近輸入層的隱含層)傳播由總誤差引起的權(quán)值修正。BP網(wǎng)絡(luò)不僅含有輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn),而且含有一層或多層隱(層)節(jié)點(diǎn)。輸入信號(hào)先向前傳遞到隱節(jié)點(diǎn),經(jīng)過(guò)作用后,再把隱節(jié)點(diǎn)的輸出信息傳遞到輸出節(jié)點(diǎn),最后給出輸出結(jié)果。

離散Hopfield神經(jīng)網(wǎng)絡(luò)的聯(lián)想記憶過(guò)程分為學(xué)習(xí)和聯(lián)想兩個(gè)階段。在給定樣本的條件下,按照Hebb學(xué)習(xí)規(guī)則調(diào)整連接權(quán)值,使得存儲(chǔ)的樣本成為網(wǎng)絡(luò)的穩(wěn)定狀態(tài),這就是學(xué)習(xí)階段。聯(lián)想是指在連接權(quán)值不變的情況下,輸入部分不全或者受了干擾的信息,最終網(wǎng)絡(luò)輸出某個(gè)穩(wěn)定狀態(tài)。

三、實(shí)驗(yàn)條件

Matlab7.X的神經(jīng)網(wǎng)絡(luò)工具箱:在Matlab7.X的命令窗口輸入nntool,然后在鍵盤上輸入Enter鍵,即可打開神經(jīng)網(wǎng)絡(luò)工具箱。

四、實(shí)驗(yàn)內(nèi)容

1.針對(duì)教材P243例8.1,設(shè)計(jì)一個(gè)BP網(wǎng)絡(luò)結(jié)構(gòu)模型(63-6-9),并以教材圖8.5為訓(xùn)練樣本數(shù)據(jù),圖8.6為測(cè)試數(shù)據(jù)。

(1)從Matlab工作空間導(dǎo)入(Import)訓(xùn)練樣本數(shù)據(jù)(inputdata,outputdata)和測(cè)試數(shù)據(jù)(testinputdata),然后新建一個(gè)神經(jīng)網(wǎng)絡(luò)(NewNetwork),選擇參數(shù)如下表1,給出BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖。

表1BP網(wǎng)絡(luò)結(jié)構(gòu)模型的各項(xiàng)參數(shù)設(shè)置

NetworkName(神經(jīng)網(wǎng)絡(luò)名稱)

NetworkType(神經(jīng)網(wǎng)絡(luò)類型)

Feed-forwardbackprop(前饋反向傳播)

Inputranges(輸入信息范圍)

來(lái)自訓(xùn)練樣本的輸入數(shù)據(jù)(inputdata)

Trainingfunction(訓(xùn)練函數(shù))

TRAINGD(梯度下降BP算法)

Performancefunction(性能函數(shù))

MSE(均方誤差)

Numberoflayers(神經(jīng)網(wǎng)絡(luò)層數(shù))

2

Layer1(第1層)的Numberofneurons(神經(jīng)元個(gè)數(shù))

6

Layer1(第1層)的TransferFunction(傳遞函數(shù))

TANSIG(雙曲正切S型函數(shù))

Layer2(第2層)的Numberofneurons(神經(jīng)元個(gè)數(shù))

9

Layer2(第2層)的TransferFunction(傳遞函數(shù))

LOGSIG(S型函數(shù))

(2)輸入訓(xùn)練樣本數(shù)據(jù)(inputdata,outputdata),隨機(jī)初始化連接權(quán)(InitializeWeights),給出BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練成功后的誤差變化曲線圖,訓(xùn)練參數(shù)設(shè)置如表2所示。

表2BP網(wǎng)絡(luò)訓(xùn)練參數(shù)

訓(xùn)練次數(shù)(epochs)

1000

訓(xùn)練時(shí)間(time)

Inf

訓(xùn)練目標(biāo)(goal)

0

學(xué)習(xí)率(lr)

0.3

最大確認(rèn)失敗次數(shù)(max_fail)

5

最小性能梯度(min_grad)

1e-025

兩次顯示之間的訓(xùn)練步數(shù)(show)

25

(3)選擇不同的訓(xùn)練函數(shù),例如TRAINGDM(梯度下降動(dòng)量BP算法)、TRAINLMM(Levenberg-MarquardtBP訓(xùn)練函數(shù)),然后輸入訓(xùn)練樣本數(shù)據(jù)(inputdata,outputdata),訓(xùn)練參數(shù)設(shè)置如表2所示,設(shè)置相同的初始連接權(quán)(RevertWeights),觀察不同BP訓(xùn)練算法的學(xué)習(xí)效果,給出各訓(xùn)練算法下的誤差變化曲線圖。

(4)在上述3個(gè)訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)中,選擇訓(xùn)練誤差最小的一個(gè)網(wǎng)絡(luò),并給出訓(xùn)練后的連接權(quán)值和偏置,然后輸入測(cè)試數(shù)據(jù)(testinputdata)進(jìn)行仿真(Simulate),并把訓(xùn)練和測(cè)試的結(jié)果都導(dǎo)出到工作空間,給出訓(xùn)練后的輸出結(jié)果和輸出誤差,以及測(cè)試后的輸出結(jié)果和輸出誤差。

(5)針對(duì)Trainingfunction(訓(xùn)練函數(shù))為TRAINGD的BP網(wǎng)絡(luò),然后設(shè)置不同的學(xué)習(xí)率(lr),例如0.01、0.1、0.5、1,觀察TRAINGD訓(xùn)練算法的學(xué)習(xí)效果,給出各學(xué)習(xí)率下的誤差變化曲線圖。

2.已知字符點(diǎn)陣為模式,兩組訓(xùn)練數(shù)據(jù)為

大寫字母L小寫字母l

圖1訓(xùn)練數(shù)據(jù)

設(shè)計(jì)一個(gè)能夠存儲(chǔ)這兩個(gè)字符的離散Hopfield神經(jīng)網(wǎng)絡(luò),要求:

(1)給出相應(yīng)的離散Hopfield神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖;

(2)計(jì)算連接權(quán)值及閾值(閾值可設(shè)為0);

(3)輸入下列測(cè)試數(shù)據(jù)

圖2測(cè)試數(shù)據(jù)

給出網(wǎng)絡(luò)最終輸出的穩(wěn)定狀態(tài)。

五、實(shí)驗(yàn)報(bào)告要求:

1.按照實(shí)驗(yàn)內(nèi)容,給出相應(yīng)結(jié)果。

2.分析比較采用梯度下降訓(xùn)練算法的BP網(wǎng)絡(luò)學(xué)習(xí)率的變化對(duì)于訓(xùn)練結(jié)果的影響。

3.分析比較BP網(wǎng)絡(luò)和離散Hopfield網(wǎng)絡(luò)在模式識(shí)別方面的異同點(diǎn)。

下面是實(shí)驗(yàn)報(bào)告的基本內(nèi)容和書寫格式。

實(shí)驗(yàn)名稱

班級(jí):學(xué)號(hào):姓名:

一、實(shí)驗(yàn)?zāi)康?/p>

二、實(shí)驗(yàn)原理

三、實(shí)驗(yàn)結(jié)果

按照實(shí)驗(yàn)內(nèi)容,給出相應(yīng)結(jié)果。

四、實(shí)驗(yàn)總結(jié)

1.完成實(shí)驗(yàn)報(bào)告要求2。

2.總結(jié)實(shí)驗(yàn)心得體會(huì)

——————————————————————————————————

實(shí)驗(yàn)八基于神經(jīng)網(wǎng)絡(luò)的優(yōu)化計(jì)算實(shí)驗(yàn)

一、實(shí)驗(yàn)?zāi)康模?/p>

掌握連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和運(yùn)行機(jī)制,理解連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)用于優(yōu)化計(jì)算的基本原理,掌握連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)用于優(yōu)化計(jì)算的一般步驟。

二、實(shí)驗(yàn)原理

連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)的能量函數(shù)的極小化過(guò)程表示了該神經(jīng)網(wǎng)絡(luò)從初始狀態(tài)到穩(wěn)定狀態(tài)的一個(gè)演化過(guò)程。如果將約束優(yōu)化問(wèn)題的目標(biāo)函數(shù)與連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)的能量函數(shù)對(duì)應(yīng)起來(lái),并把約束優(yōu)化問(wèn)題的解映射到連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)的一個(gè)穩(wěn)定狀態(tài),那么當(dāng)連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)的能量函數(shù)經(jīng)演化達(dá)到最小值時(shí),此時(shí)的連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)的穩(wěn)定狀態(tài)就對(duì)應(yīng)于約束優(yōu)化問(wèn)題的最優(yōu)解。

三、實(shí)驗(yàn)條件:

VC++6.0。

四、實(shí)驗(yàn)內(nèi)容:

1、參考求解TSP問(wèn)題的連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)源代碼,給出15個(gè)城市和20個(gè)城市的求解結(jié)果(包括最短路徑和最佳路線),分析連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)求解不同規(guī)模TSP問(wèn)題的算法性能。

2、對(duì)于同一個(gè)TSP問(wèn)題(例如15個(gè)城市的TSP問(wèn)題),設(shè)置不同的網(wǎng)絡(luò)參數(shù),分析不同參數(shù)對(duì)算法結(jié)果的影響。

3、上交源代碼。

五、實(shí)驗(yàn)報(bào)告要求:

1、畫出連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)求解TSP問(wèn)題的流程圖。

2、根據(jù)實(shí)驗(yàn)內(nèi)容,給出相應(yīng)結(jié)果及分析。

3、總結(jié)連續(xù)Hopfield神經(jīng)網(wǎng)絡(luò)和遺傳算法用于TSP問(wèn)題求解時(shí)的優(yōu)缺點(diǎn)。

下面是實(shí)驗(yàn)報(bào)告的基本內(nèi)容和書寫格式。

實(shí)驗(yàn)名稱

班級(jí):學(xué)號(hào):姓名:

一、實(shí)驗(yàn)?zāi)康?/p>

二、實(shí)驗(yàn)原理

三、實(shí)驗(yàn)結(jié)果

按照實(shí)驗(yàn)內(nèi)容,給出相應(yīng)結(jié)果。

四、實(shí)驗(yàn)總結(jié)

1.完成實(shí)驗(yàn)報(bào)告要求1和3。

2.總結(jié)實(shí)驗(yàn)心得體會(huì)

——————————————————————————————————

附錄資料:不需要的可以自行刪除

Pascal/C/C++語(yǔ)句對(duì)比(補(bǔ)充版)

一、Helloworld

先看三種語(yǔ)言的樣例:

Pascal

begin

writeln(‘Helloworld’);

end.

C

#include<stdio.h>

intmain()

{

printf("Helloworld!\n");

return0;

}

C++

#include<iostream>

usingnamespacestd;

intmain()

{

cout<<"Helloworld!"<<endl;

return0;

}

從這三個(gè)程序可以看到一些最基本的東西。在Pascal中的begin和end,在C/C++里就是{};Pascal主程序沒有返回值,而C/C++返回0(好像在C中可以為NULL)。在C/C++中,main函數(shù)以前的是頭文件,樣例中C為stdio.h,C++除了iostream還有第二行的usingnamespacestd,這個(gè)是打開命名空間的,NOIP不會(huì)考這個(gè),可以不管,只要知道就行了。

此外說(shuō)明注釋單行用//,段落的話Pascal為{},C/C++為/**/。

**常用頭文件(模板)

#include<iostream>

#include<cstdio>

#include<cstdlib>

#include<cmath>

#include<ctime>

#include<string>

usingnamespacestd;

intmain()

{

……

system(“pause”);

return0;

}

二、數(shù)據(jù)類型及定義

這里只列出常用的類型。

1、整型

Pascal

C/C++

范圍

shortint

-

-128…127

integer

short

-32768…32767

longint

Int

-2147483648…2147483647

int64

longlong

-9223372036854775808…9223372036854775807

byte

-

0…255

word

unsignedshort

0…65535

longword

unsignedint

0…4294967295

qword

unsignedlonglong

0…18446744073709551615

**當(dāng)對(duì)longlong變量賦值時(shí),后要加LL

Longlongx=6327844632743269843LL

**如果位移x<<2LL

**Linux:printf(“%lld\n”,x);

**Windows:printf(“%I64d\n”,x);

2、實(shí)型

Pascal

C/C++

范圍

real

float

2.9E-39…1.7E38

single

-

1.5E-45…3.4E38

double

double

5.0E-324…1.7E308

3、字符即字符串

字符在三種語(yǔ)言中都為char,C里沒有字符串,只有用字符數(shù)組來(lái)代替字符串,Pascal和C++均為string。Pascal中字符串長(zhǎng)度有限制,為255,C++則沒有。

字符串和字符在Pascal中均用單引號(hào)注明,在C/C++中字符用單引號(hào),字符串用雙引號(hào)。

4、布爾類型

Pascal中為boolean,C/C++為bool。值均為True或False。C/C++中除0外bool都為真。

5、定義

常量的定義均為const,只是在C/C++中必須要注明常量的類型。在C/C++中還可以用宏來(lái)定義常量,此時(shí)不注明類型。

Pascal

C/C++

const

a=60;

b=-a+30;

d=‘‘;

constinta=60;

constintb=-a+30;

conststringd=“”;

defineMAXN501//這個(gè)是宏

**宏定義其實(shí)就是直接在程序相應(yīng)的位置替換:

#definerandomizesrand(unsignedtime(NULL))

#definewaitfor(intw=0;w<100000;w++)

變量的定義,C/C++在定義的同時(shí)可以賦值:

Pascal

C/C++

var

a,b:integer;

c:char;

d:string;

inta,b=50;

charc=‘A’;

stringd;

boolflag;

三、輸入輸出

C/C++中沒有以回車作為結(jié)束的讀入方式(就本人所知)。”\n”表示換行。常規(guī)輸入輸出:

Pascal

C

C++

read(a);//讀入變量a

readln(a);//讀入變a,回車結(jié)束

write(a);//輸出a

writeln(a);//輸出a并換行

scanf(“%d”,&a);

printf(“%d”,a);

printf(“%d\n”,a);

cin>>a;

cout<<a;

cout<<a<<endl;

特別說(shuō)明C++中cin一個(gè)字符的話會(huì)自動(dòng)跳過(guò)空格和回車,Pascal和C則會(huì)讀入空格和回車。在Pascal中writeln(a:n:m)表示在n個(gè)字符寬的輸出域上輸出a保留m位小數(shù)。

例如:pascalwrite(a:6)c/c++printf(“%6d”,a)

Pascalwrite(a:6:2)c/c++printf(“%6.2f”,a)

C++如果用cout?(繁瑣!!)

需要加頭文件#inlude<iomanip>

cout<<setprecision(2)<<a;//作用永久

cout<<setw(6)<<a;//作用臨時(shí)

以下三個(gè)進(jìn)制設(shè)定都是永久作用:

cout<<dec<<a;相當(dāng)printf(“%d”,a);//十進(jìn)制

cout<<hex<<a;相當(dāng)printf(“%X”,a);//十六進(jìn)制

cout<<oct<<a;相當(dāng)printf(“%o”,a);//八進(jìn)制

例如:cout<<12<<hex<<12<<oct<<12<<12<<endl;

輸出:12c1414

C的輸入輸出里面的字符串中%表示變量,%后面的字目表示變量類型。下面是類型表:

%hd

1個(gè)short型整數(shù)

%d

1個(gè)int型整數(shù)

%u

1個(gè)unsignedint型整數(shù)

%I64d

1個(gè)longlong型整數(shù)

%c

1個(gè)字符

%s

1個(gè)C字符串

%f

1個(gè)float型實(shí)數(shù)

%lf

1個(gè)double型實(shí)數(shù)

%10.4f

輸出1個(gè)總寬度為10,保留4位小數(shù)的實(shí)數(shù)

文件輸入輸出:

Pascal

assign(input,‘test.in’);

assign(output,‘test.out’);

reset(input);

rewrite(output);

read(a,b);

writeln(a,b);

close(input);

close(output);

C

FILE*fin=fopen(“test.in”,“r”);

FILE*fout=fopen(“test.out”,“w”);

fscanf(fin,“%d%d”,&a,&b);

fprintf(fout,“%d%d”,a,b);

fclose(fin);

fclose(fout);

C++

#include<fstream>

usingnamespacestd;

ifstreamfin(“test.in”);

ofstreamfout(“test.out”);

fin>>a>>b;

fout<<a<<b<<endl;

fin.close();

fout.close();

因?yàn)镃++的讀入較慢,個(gè)人建議C++的話使用C的輸入方式。當(dāng)然也有人用C的讀入,C++的輸出的,這種方式我們稱之為城鄉(xiāng)結(jié)合。

**中國(guó)計(jì)算機(jī)學(xué)會(huì)競(jìng)賽須知發(fā)布的C讀寫程序:

(C++也能用,cin,cout,scanf,printf可混用)

#include<stdio.h>

intmain()

{

inta,b;

freopen(“sum.in”,”r”,stdin);

freopen(“sum.out”,”w”,stdout);

scanf(“%d%d”,&a,&b);

printf(“%d\n”,a+b);

return0;

}

或者:

freopen(“sum.in”,”r”,stdin);

freopen(“sum.out”,”w”,stdout);

ios::sync_with_stdio(false);\\取消同步,cin,cout的速度就不慢了!!

cin>>a>>b;

cout<<a+b<<endl;

return0;

以下擴(kuò)充c/c++混用是可行的:

#include<iostream>

#include<cstdio>

usingnamespacestd;

intmain()

{

inta,b,c,d;

freopen("sum.in","r",stdin);

freopen("sum.out","w",stdout);

scanf("%d%d",&a,&b);

cin>>c>>d;

printf("%d\n",a+b);

cout<<a+b+c+d<<endl;

return0;

}

**如何判斷文件結(jié)束(EOF)?

C++

while(cin>>s>>n)

{

...

}

C

while(scanf(%s%d",s,&n)!=EOF)

{

...

}

四、賦值語(yǔ)句及運(yùn)算符號(hào)

一一對(duì)應(yīng)的關(guān)系

Pascal

C/C++

賦值運(yùn)算

賦值

:=

=

基本運(yùn)算

+

+

-

-

*

*

除(實(shí)數(shù))

/

/(double)

除法

取整

div

(int)/(int)

取余

mod

%

比較

等于

=

==

不等于

<>

!=

大于

>

>

大于等于

>=

>=

小于

<

<

小于等于

<=

<=

邏輯

and

&&

or

||

not

!

位運(yùn)算

左移(*2)

shl

<<

右移(/2)

shr

>>

and

&

or

|

not

~

異或

xor

^

其他

增一

inc(x)

x++

減一

dec(x)

x--

在C/C++中對(duì)某個(gè)變量自身進(jìn)行運(yùn)算可以簡(jiǎn)寫為

變量名運(yùn)算符號(hào)=改變量

如x+=8就表示x=x+8,即inc(x,8)。

在C/C++里還存在一種三目運(yùn)算

變量名=條件?值A(chǔ):值B

如x=x>0?x:-x;//表示若x>0則取x,否則取–x,

同ifx>0thenx:=xelsex:=-x;

五、條件語(yǔ)句

1、if

C/C++中if語(yǔ)句的條件必須要用括號(hào)括起來(lái),后面不使用then。

Pascal

C/C++

ifa>bthenflag:=true

elseflag:=false;

if(a>b)flag=true;

elseflag=false;

2、多種分支

C/C++中為switch,Pascal為case:

Pascal

C/C++

casexof

1:inc(x);

2:dec(x);

elsex:=x*x;

end;

switch(x)

{

case1:x++;break;

case2:x--;break;

default:x*=x;

}

切記C/C++中一定要寫break,后果你可以去掉break,運(yùn)行看看就知道了。

六、循環(huán)語(yǔ)句

1、for

Pascal

C/C++

for變量名:=初始值to(downto)終止值do

for(變量名=初始值;條件;改變方式)

fori:=5to10dodec(a);

//終止值大于初始值用to

fori:=5downto1dodec(a);

//終止值小于于初始值用downto

for(i=5;i<=10;i++)a--;

for(i=5;i>=1;i--)a--;

/*只要i滿足條件就會(huì)一直循環(huán)。

C/C++中i是實(shí)數(shù)、指針都可以*/

C/C++中for的特殊用法:

//變量為實(shí)數(shù)

for(doublei=1;i<=2;i*=1.01)

k++;

//變量為指針,->符號(hào)為間接引用,后面會(huì)提到。

for(type1*p=head->next;p;p=p->next)

printf(“%d”,p->k);

2、while

Pascal

C/C++

while條件do

while(條件)

whilei<>0dodec(i);

while(i!=0)i--;

//也可寫作while(i)i--;

//在C/C++中非0即為真。

3、repeat-until&do-while

Pascal

C/C++

repeat語(yǔ)句until結(jié)束條件;

do{}while(運(yùn)行條件)

repeatint(i)untili>100;

do{i++;}while(i<=100);

七、數(shù)組

Pascal中數(shù)組的下標(biāo)可以隨意定義,而C/C++下標(biāo)始終為從0開始到(數(shù)組大小–1)。

Pascal

C/C++

定義

a:array[1..100]ofinteger;

b:array[1..10,1..10]ofint64;

inta[100];

intb[10][10];

含義

a為大小為100的integer數(shù)組,合法下標(biāo)為1到100

b為大小為10*10的int64數(shù)組,合法下標(biāo)為1,1到10,10

a為大小為100的int數(shù)組,合法下標(biāo)為0到99

b為大小為10*10的int數(shù)組,合法下標(biāo)為0,0到9,9;

使用

inc(a[21]);

b[2,2]:=b[1,1]+b[1,2]+b[2,1];

a[21]++;

b[1][1]=b[0][1]+b[0][0]+b[1][0];

數(shù)組清零

Pascal

C/C++

Fillchar(a,sizeof(a),0);

memset(a,0,sizeof(a));

//頭文件包含string.h

**如果要填最大:memset(a,127,sizeof(a))(但達(dá)不到INT_MAX)

如果要填最?。簃emset(a,128,sizeof(a))(但達(dá)不到INT_MIN)

如果填0:memset(a,0,sizeof(a))

如果填-1:memset(a,-1,sizeof(a))

八、字符串

C風(fēng)格的字符串就是字符數(shù)組。

C++和Pascal的字符串使用基本相同,只是C++中字符串下標(biāo)以0開始,Pascal以1開始。字符串處理很多這里不一一列舉,只寫最常用的幾個(gè)。

Pascal

C(包含<string.h>)

定義用:chars[]

C++(包含<string>)

定義用:strings

輸入

Readln(s);

Writeln(s);

Scanf(“%s”,s);

Printf(“%s\n”,s);

注:不能輸入輸出c++的字符串

Cin>>s;

Cout<<s<<endl;

注:可以輸入輸出c的字符串

查找

pos(‘a(chǎn)’,s);//不存在返回0

沒有

s.find(‘a(chǎn)’);//不存在返回-1

長(zhǎng)

len=length(s);

Strlen(s)

len=s.size();或

Len=s.length();

復(fù)制

copy(st,pos,num);

st:=‘a(chǎn)bcde’;

s:=copy(st,3,2);

//s=‘cd’

Strcpy(s1,s2)

全部復(fù)制

Strncpy(s1,s2,n)

前n個(gè)復(fù)制

但沒有從第幾個(gè)開始的!

substr(pos,n)//返回從pos開始的長(zhǎng)度為n的子串;

strings1=“abcde”,s2;

s2=s1.substr(2,2);

//s2=“cd”

插入

insert(obj,target,pos);

st:=‘helloworld’;

st:=insert(‘‘,st,6);

//st=‘helloworld’

沒有

insert(pos,s)//在pos位置處插入字符串s;

strings1=“0123”;

s1.insert(1,“XYZ”);//s1=“0XYZ123”

刪除

delete(st,pos,num);

st:=‘helloworld’;

st:=delete(st,6,1);

//st=‘helloworld’

沒有

erase(pos,n)//從pos位置開始刪除n個(gè)字符;

strings1="abcdefghi";

s1.erase(5,3);//得到"abcdei"

C++還有以下功能:

用s.replace(2,2,"ttt")可以部分替換

用s.empty()判斷是否為空

可訪問(wèn)s[i],位置從0算起

可以s1+s2

可以s1=s2

可以比較s1==s2當(dāng)然><=>=<=!=都可以比較。

C++字符串整串讀入:

getline(cin,s)和cin>>s的區(qū)別:

getline(cin,s)

cin>>s

一次性整行讀入,直至行末尾。

只讀入一個(gè)“單詞”,遇空格和行末停止。

例如輸入;Howareyou?

s=”Howareyou?”

讀入整串含空格

例如輸入;Howareyou?

s=”How”

如果三個(gè)都讀:cin>>s1>>s2>>s3

**C++數(shù)字與數(shù)值之間的轉(zhuǎn)換:

#include<iostream>

#include<string>

#include<sstream>//必須加入

usingnamespacestd;

intmain()

{

stringtext="152";

intnumber;

stringstreamss;

ss<<text;//可以是其他數(shù)據(jù)類型

ss>>number;//string->int

cout<<number+100<<endl;

ss<<number;//int->string

stringstr=ss.str();

return0;

}

九、過(guò)程和函數(shù)

1、過(guò)程

在C/C++中沒有過(guò)程,但可以把返回值為“空”的函數(shù)理解為過(guò)程。

Pascal

C/C++

無(wú)參過(guò)程

procedure過(guò)程名;

說(shuō)明部分

begin語(yǔ)句部分end;

//說(shuō)明部分、begin、end語(yǔ)句部分統(tǒng)稱為過(guò)程體

void函數(shù)名();

{

主體部分;

return;

}

帶參過(guò)程

procedure過(guò)程名(形參表)

過(guò)程體

void函數(shù)名(形參表)

過(guò)程體

值傳和址傳:當(dāng)一個(gè)參數(shù)是值傳時(shí),形參在子過(guò)程中相當(dāng)于一個(gè)局部變量,對(duì)它的改變不影響實(shí)在的參數(shù)值。址傳則會(huì)影響。下例中a為值傳,b為址傳。初始a=5,b=5,運(yùn)行后a=5,b=10;

Pascal

C/C++

vara,b:integer;

proceduredoit(a:integer;varb:integer);

begin

b:=a+b;

a:=a+b;

end;

begin

a:=5;

b:=5;

doit(a,b);

writeln(a,‘‘,b);

end.

voiddoit(inta,int&b)

{

\\a

認(rèn)為值參,b認(rèn)為變量傳參

b+=a;

a+=b;

return;

}

intmain()

{

inta=5,b=5;

doit(a,b);

cout<<a<<‘‘<<b;

return0;

}

**用若干地址傳參可以給調(diào)用者傳回若干值

Voidtryit(int&x,int&y,int&z)

調(diào)用時(shí):tryit(a,b,c),可以傳回a,b,c的值。

**用數(shù)組名(也是地址)傳參可以傳回整組的數(shù)據(jù)

Voidtryit(inta[])

調(diào)用時(shí):tryit(x),可以傳回整個(gè)數(shù)組。

例如:

voidtryit(inta[])

{

for(inti=0;i<=10;i++)a[i]=i*2;

return;

}

intmain()

{

intx[10];

tryit(x);

for(inti=0;i<=10;i++)

cout<<x[i]<<endl;

system("pause");

return0;

}

**用指向函數(shù)的指針作為參數(shù),可以執(zhí)行指定的函數(shù)。(略)

STL的兩個(gè)應(yīng)用:

**C++快排函數(shù)

#include<algorithm>

Boolcom(inta,intb)

{

Returna>b;

}

Intmain()

{

Inta[10]={5,7,3,2,6,8,4,3,5,7};

Sort(a,a+10,com);//如果升序可以省略com.

For(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論