基于ga的綜合評價系統(tǒng)設計【畢業(yè)設計】_第1頁
已閱讀1頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  本科畢業(yè)設計(論文)</p><p><b> ?。ǘ?屆)</b></p><p>  基于GA的綜合評價系統(tǒng)設計</p><p>  摘要:人工智能理論和技術的進展和應用,對于科技的發(fā)展和進步具有重要意義。遺傳算法(GA)屬于人工智能領域的研究范疇,是進化計算的一種最重要的形式。本設計運用遺傳算法的理論和技術,進行

2、了綜合評價系統(tǒng)的設計。通過具體的遺傳算法的運用,使得所設計的系統(tǒng)能夠從評價專家獲得各評價因素重要程度的有關知識,進而實現(xiàn)體現(xiàn)專家思想的綜合評價。系統(tǒng)采用java語言開發(fā),并使用了mysql數(shù)據(jù)庫技術。通過對網(wǎng)站績效的綜合評價,對系統(tǒng)的效果進行了驗證。</p><p>  關鍵詞:人工智能;遺傳算法;綜合評價;網(wǎng)站績效</p><p>  The design of comprehensiv

3、e evaluation system based on GA</p><p>  Abstract: It’s very important for the development and progress of science and technology that Artificial intelligence’s theory and technology are developing . Gene

4、tic algorithms(GA) are areas of research in the field of artificial intelligence and it’s the most important form of evolutionary computation. Using the GA’s theory and technology, the paper has designed a comprehensive

5、evaluation system.Through the use of specific genetic algorithm, the designed system can obtain from the evaluatio</p><p>  Key Words: Artificial Intelligence;Genetic Algorithm;Comprehensive evaluation; Web

6、site performance</p><p><b>  目 錄</b></p><p><b>  1 前言1</b></p><p>  1.1課題的研究背景1</p><p>  1.1.1 人工智能簡介1</p><p>  1.1.2 遺傳算法的

7、研究背景1</p><p>  1.2 課題研究的目的與意義2</p><p>  1.2.1 研究目的2</p><p>  1.2.2 研究意義2</p><p>  1.3 課題的研究內容和方法3</p><p>  1.4 論文內容的組成3</p><p>  2

8、相關知識簡介4</p><p>  2.1 Java語言簡介4</p><p>  2.1.1 java環(huán)境變量的配置4</p><p>  2.1.2 安裝IDE5</p><p>  2.1.3 java編碼規(guī)范5</p><p>  2.1.4 一個簡單的java實例程序7</p>

9、<p>  2.2 數(shù)據(jù)庫知識簡介8</p><p>  2.3 遺傳算法簡介9</p><p>  2.3.1 概念簡介9</p><p>  2.3.2 求解步驟10</p><p>  3 系統(tǒng)分析與研究12</p><p>  3.1 可行性研究12</p>

10、<p>  3.2 需求分析12</p><p>  4 系統(tǒng)設計與實現(xiàn)14</p><p>  4.1 主要功能設計14</p><p>  4.1.1 初始化14</p><p>  4.1.2 初始化的主要過程14</p><p>  4.1.3 數(shù)據(jù)庫的設計:16</p

11、><p>  4.1.4 遺傳算法操作的實現(xiàn)17</p><p>  4.2 詳細設計思路18</p><p>  4.2.1 交叉操作和變異操作的選擇及實現(xiàn):18</p><p>  4.2.2 種群規(guī)模控制詳解20</p><p>  4.2.3 種群演化的終止24</p><p>

12、;  4.2.4 最終結果25</p><p>  5 系統(tǒng)測試26</p><p>  5.1 染色體變異測試錯誤!未定義書簽。</p><p>  5.2 染色體交叉測試錯誤!未定義書簽。</p><p>  5.3 數(shù)據(jù)庫連接的測試錯誤!未定義書簽。</p><p><b>  6 總

13、結30</b></p><p>  致 謝錯誤!未定義書簽。</p><p>  參 考 文 獻31</p><p><b>  1 前言</b></p><p>  1.1課題的研究背景</p><p>  1.1.1 人工智能簡介</p><

14、p>  人工智能是計算機科學中涉及研究、設計和應用智能機器的一個分支。其近期的主要目標在于研究用機器來模仿和執(zhí)行人腦的某些智力功能,并開發(fā)相關理論和技術。</p><p>  40多年來,人工智能獲得很大1發(fā)展,已引起眾多學科和不同專業(yè)背景學者們的日益重視,成為一門廣泛的交叉和前沿科學。近十年來,現(xiàn)代計算機的發(fā)展已能夠存儲極其大量的信息,進行快速信息處理,軟件功能和硬件實現(xiàn)均取得長足進步,使人工智能獲得進一

15、步的應用。盡管目前人工智能在發(fā)展過程中面臨不少爭論、困難和挑戰(zhàn),然而這些爭論是十分有益的,這些困難終將被解決,這些挑戰(zhàn)始終與機遇并存,并將推動人工智能的繼續(xù)發(fā)展??梢灶A言:人工智能的研究成果將能夠創(chuàng)造出更多更高級的智能“制品”,并使之在越來越多的領域超越人類智能;人工智能將為發(fā)展國民經(jīng)濟和改善人類生活作出更大貢獻。</p><p>  可以說,未來的各種機器設備將會變得更加智能化,未來的計算機將會是智能化的機器,

16、這些智能化設備將會給人們的生活帶來各種便利,讓人們體驗到更加簡便的生活?,F(xiàn)有的人工智能產品相對于即將到來的人工智能應用可以說微不足道,但是它們預示著人工智能的未來。對人工智能更高層次的需求已經(jīng)并會繼續(xù)影響我們的工作、學習和生活。</p><p>  1.1.2 遺傳算法的研究背景</p><p>  20世紀60年代以來,如何模仿生物來建立功能強大的算法,進而將它們運用于復雜的優(yōu)化問題,

17、越來越成為一個研究熱點。進化計算正是在這一背景下孕育而生的。進化計算包括遺傳算法、進化策略、進化編程和遺傳編程。</p><p>  人類不滿足于模仿生物進化行為,希望能夠建立具有自然生命特征的人造生命和人造生命系統(tǒng)。對人工生命的研究,自1987年起取得了重要進展。這是人工智能和計算智能的一個新的研究熱點。進化計算為人工生命研究提供了計算理論和有效的開發(fā)工具。[1]</p><p>  1

18、.2 課題研究的目的與意義</p><p>  1.2.1 研究目的</p><p>  隨著互聯(lián)網(wǎng)的發(fā)展,以及計算機的普及,越來越多的人喜歡在互聯(lián)網(wǎng)上查找信息,休閑娛樂等等?;ヂ?lián)網(wǎng)上的網(wǎng)站眾多,但是人們往往喜歡那些界面精美,布局合理,交互性強的網(wǎng)站。在如此眾多的網(wǎng)站中采用什么算法來對它們進行優(yōu)劣劃分是一個比較難的問題。本課題通過采用研究遺傳算法來對網(wǎng)站進行綜合評價,從而實現(xiàn)智能綜合評價

19、的目的。</p><p>  1.2.2 研究意義</p><p>  通過本課題的研究,可以將遺傳算法的優(yōu)勢體現(xiàn)出來。在綜合評價的同時又能夠體現(xiàn)出智能化的思想,這樣能更好的符合人們大腦的評價思想和原則,具有一定的現(xiàn)實意義。在課題研究的同時,也讓我自己對人工智能的優(yōu)勢有了更進一步的了解,對遺傳算法的使用有了更深的印象,提高了自己在這方面的能力。</p><p> 

20、 1.3 課題的研究內容和方法</p><p>  課題的主要內容是設計一個系統(tǒng),讓其能夠體現(xiàn)出遺傳算法的有關思想,采用遺傳算法的思想來解決實際問題。在本課題中主要關注對算法的研究,關注如何使用算法來解決綜合評價系統(tǒng)的設計問題。</p><p>  由于這是初次使用遺傳算法來解決實際問題,所以自己在研究的過程中花了很長時間來確定模型、確定解決方法、盡量找出未知的問題。一開始自己的思路沒有

21、正確,并且按照這個錯誤的思路想了很久,以致將許多問題都復雜化了,致使自己在程序的設計進展緩慢。然后在一次例行交談中和指導老師交流了一下,老師指出了我的錯誤,然后我自己仔細的想了一下,終于將那些復雜的問題化為了簡單,程序的進展也逐漸有了起色。</p><p>  在課題研究過程中查閱了很多文檔和資料,網(wǎng)上的以及圖書館里的,也和指導老師討論了很多,收獲也很多。網(wǎng)上有很多遺傳算法方面的文獻,閱讀這些文獻,總結前人的知識

22、,對我的思路有很大的幫助。和老師面對面的交流可以更好的了解到自己哪里思路錯了,在向老師闡述自己思路的過程中也加深了自己對課題的理解,而老師適當?shù)奶崾竞图m正也讓我的設計不至于走太多的彎路。</p><p>  1.4 論文內容的組成</p><p>  論文的內容主要由闡述研究過程中的思路、采用的方法原理組成及如何實現(xiàn)程序設計組成。程序設計部分將課題的功能思想實現(xiàn),在論文中只是將大概的部分

23、寫出來而已,更加詳細的要看程序的代碼和文檔。</p><p><b>  2 相關知識簡介</b></p><p>  2.1 Java語言簡介</p><p>  Java,是由Sun Microsystems公司于1995年5月推出的Java程序設計語言和java平臺的總稱。用Java實現(xiàn)的HotJava瀏覽器(支持Java apple

24、t)顯示了Java的魅力:跨平臺、動態(tài)的Web、Internet計算。從此,Java被廣泛接受并推動了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持Java applet。</p><p>  近年來java變得非常流行。Java快速發(fā)展以及被廣泛接受都歸功于它的設計特點,特別是它承諾一旦編寫了程序,在任何地方都可以運行。就像sun公司聲明的java語言白皮書一樣,java是簡單的、面向對象的、分布式的、解釋型的、健壯

25、的、安全的、可移植的等等。Java是功能齊全的通用程序設計語言,可以開發(fā)可靠的、要求嚴格的應用程序?,F(xiàn)在,它不僅用于web程序設計,而且用于在服務器、臺式機和移動設備上開發(fā)跨平臺的獨立應用程序。[2]</p><p>  2.1.1 java環(huán)境變量的配置</p><p>  1.安裝JDK,安裝過程中可以自定義安裝目錄等信息,例如我們選擇安裝目錄為D:\java\jdk1.5.0_08

26、;</p><p>  2.安裝完成后,右擊“我的電腦”,點擊“屬性”;</p><p>  3.選擇“高級”選項卡,點擊“環(huán)境變量”;</p><p>  4.在“系統(tǒng)變量”中,設置3項屬性,JAVA_HOME,PATH,CLASSPATH(大小寫無所謂),若已存在則點擊“編輯”,不存在則點擊“新建”;</p><p>  5.JAVA_H

27、OME指明JDK安裝路徑,就是剛才安裝時所選擇的路徑D:\java\jdk1.5.0_08,此路徑下包括lib,bin,jre等文件夾(此變量最好設置,因為以后運行tomcat,eclipse等都需要依*此變量);Path使得系統(tǒng)可以在任何路徑下識別java命令,設為:</p><p>  %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin</p><p>  CLAS

28、SPATH為java加載類(class or lib)路徑,只有類在classpath中,java命令才能識別,設為:</p><p>  .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (要加.表示當前路徑)</p><p>  %JAVA_HOME%就是引用前面指定的JAVA_HOME;</p><p>  

29、6.“開始”->;“運行”,鍵入“cmd”;</p><p>  7.鍵入命令“java -version”,“java”,“javac”幾個命令,出現(xiàn)畫面,說明環(huán)境變量配置成功。</p><p>  2.1.2 安裝IDE</p><p>  Java開發(fā)工具是指為快速開發(fā)java程序提供一個集成開發(fā)環(huán)境(IDE)的軟件。編輯、編譯、調試和在線幫助都集成在

30、一個圖形用戶界面中。只需在一個窗口中輸入源代碼或打開已有的文件,然后點擊相應按鈕、菜單選項或者使用功能鍵就可以編譯和運行源代碼。</p><p>  在本課題開發(fā)過程采用的是eclipse編譯器。這是一個免費的開發(fā)工具,只需將其從官網(wǎng)上下載下來,然后解壓就可以使用。</p><p>  2.1.3 java編碼規(guī)范</p><p><b>  1. 命名

31、規(guī)范</b></p><p><b>  1) 包的命名</b></p><p>  包的名字應該都是由一個小寫單詞組成。</p><p>  package com.neu.util;</p><p><b>  2) 類的命名 </b></p><p> 

32、 類的名字必須由大寫字母開頭而其他字母都小寫的單詞組成,對于所有標識符,其中包含的所有單詞都應緊靠在一起,而且大寫中間單詞的首字母。</p><p>  public class ThisAClassName{}</p><p>  3)變量的命名 變量的名字必須用一個小寫字母開頭。后面的單詞用大寫字母開頭</p><p>  String userName;&l

33、t;/p><p>  String thisAClassName; </p><p>  4) 常量的命名 </p><p>  常量的名字應該都大寫,并且指出完整含義</p><p><b>  5)參數(shù)的命名 </b></p><p>  參數(shù)的名字必須和變量的命名規(guī)范一致。 </p

34、><p><b>  6)數(shù)組的命名 </b></p><p>  數(shù)組應該總是用下面的方式來命名: </p><p>  byte[] buffer;</p><p><b>  而不是: </b></p><p>  byte buffer[];</p><

35、;p><b>  7)方法的參數(shù) </b></p><p>  使用有意義的參數(shù)命名,如果可能的話,使用和要賦值的字段一樣的名字</p><p><b>  2. 排版規(guī)范</b></p><p>  1) 關鍵詞和操作符之間加適當?shù)目崭瘛?lt;/p><p>  2) 相對獨立的程序塊與塊之

36、間加空行。</p><p>  3) 較長的語句、表達式等要分成多行書寫。</p><p>  4) 若函數(shù)或過程中的參數(shù)較長,則要進行適當?shù)膭澐帧?lt;/p><p>  5) 方法與方法之間、成員變量與方法之間要加空行。</p><p>  6) 劃分出的新行要進行適應的縮進,使排版整齊,語句可讀。 </p><p

37、>  7) 長表達式要在低優(yōu)先級操作符處劃分新行,操作符放在新行之首。</p><p>  8) 循環(huán)、判斷等語句中若有較長的表達式或語句,則要進行適應的劃分。</p><p>  9) 不允許把多個短語句寫在一行中,即一行只寫一條語句。</p><p>  10) 函數(shù)或過程的開始、結構的定義及循環(huán)、判斷等語句中的代碼都要采用縮格。</p>

38、<p><b>  3.標識符命名規(guī)范</b></p><p>  Java語言中,為各種變量、方法和類等起的名字稱為標識(identifier)。凡是自己可以起名字的地方都叫標識符,都遵守標識符的規(guī)則。</p><p>  Java標識符的命名規(guī)則:</p><p>  標識符由字母、下劃線(_)、美元符($) ,數(shù)字組成, &

39、lt;/p><p>  標識符應以字母、下劃線(_)、美元符($) 開頭,不能以數(shù)字開頭。</p><p>  Java標識符大小寫敏感,長度無限制。</p><p>  見名知意,不能與關鍵字同名。</p><p>  2.1.4 一個簡單的java實例程序</p><p>  public class HelloWor

40、ld{</p><p>  public static void main(String[] args){</p><p>  System.out.println(“Hello World!”);</p><p><b>  }</b></p><p><b>  }</b></p>

41、<p>  以上的java語句將在控制臺打印出如下字符:Hello World!</p><p>  2.2 數(shù)據(jù)庫知識簡介</p><p>  數(shù)據(jù)庫技術產生于20世紀60年代末70年代初,其主要目的是有效地管理和存取大量的數(shù)據(jù)資源。主要研究如何存儲,使用和管理數(shù)據(jù)。在應用計算機進行數(shù)據(jù)處理的技術發(fā)展過程中經(jīng)歷了三個階段:程序數(shù)據(jù)處理技術、文件數(shù)據(jù)處理技術、數(shù)據(jù)庫數(shù)據(jù)處理技

42、術。發(fā)展至今,所有的數(shù)據(jù)處理應用系統(tǒng)都是采用數(shù)據(jù)庫數(shù)據(jù)處理技術實現(xiàn)的。[3]</p><p>  數(shù)據(jù)庫設計不是設計一個完整的數(shù)據(jù)庫管理系統(tǒng),而是根據(jù)一個給定的應用環(huán)境,構造最優(yōu)的數(shù)據(jù)模型,利用數(shù)據(jù)庫管理系統(tǒng)建立數(shù)據(jù)庫應用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足用戶對信息的使用要求。在對信息資源合理開發(fā)、管理的過程中,數(shù)據(jù)庫技術是最為有效的。</p><p>  數(shù)據(jù)庫設計一般分為以下六個階段:

43、需求分析;概念結構設計;邏輯結構設計;物理結構設計;數(shù)據(jù)庫實施;數(shù)據(jù)庫運行和維護。</p><p>  需求分析階段的工作是詳細準確地了解數(shù)據(jù)庫應用系統(tǒng)的運行環(huán)境和用戶要求。進行需求分析時首先需要確定系統(tǒng)的需要。</p><p>  概念結構設計主要實現(xiàn)由現(xiàn)實世界到信息世界的抽象,建立起概念模型,通常采用E-R圖的方式表示出來。</p><p>  邏輯結構設計是將

44、概念結構轉換為某個DBMS所支持的數(shù)據(jù)模型。如將E-R如轉換為多張表。</p><p>  物理設計是根據(jù)使用計算機軟件硬件環(huán)境和數(shù)據(jù)庫管理系統(tǒng),確定數(shù)據(jù)庫表的結構,并進行優(yōu)化,為數(shù)據(jù)模型選擇合理的存儲結構和存取方法,決定存取路徑和分配存取空間等。</p><p>  數(shù)據(jù)庫實施是運用DBMS建立數(shù)據(jù)庫,創(chuàng)建各種對象,編制與調試應用程序,錄入數(shù)據(jù),進行試運行。[4]</p>

45、<p>  數(shù)據(jù)庫運行與維護就是當一個數(shù)據(jù)庫投入運行后,進行的修改調整。</p><p>  在本課題的程序中采用的是mysql數(shù)據(jù)庫,我在該數(shù)據(jù)庫中建立了一個名為bysj的數(shù)據(jù)庫,里面有一張表,tbl_bysj,該表中有三個字段:id,chromosome,output。具體的建表過程為:</p><p>  create database bysj;</p>&

46、lt;p>  create table tbl_bysj(id int(4) not null primary key auto_increment,chromosome varchar(500) not null,output double(12,2));</p><p>  數(shù)據(jù)庫的查詢語句為:</p><p>  select * from table_name;</p&

47、gt;<p>  select id,chromosome,output from tbl_bysj;</p><p>  數(shù)據(jù)庫的更改語句為:</p><p>  update table_name set column_name=’new_value’;</p><p>  update tbl_bysj set chromosome=’new_c

48、hromosome’,output=’new_output’where id=’id_value’;</p><p>  刪除數(shù)據(jù)庫中的所有數(shù)據(jù),但不刪除字段名:</p><p>  delete * from tbl_bysj;</p><p>  2.3 遺傳算法簡介</p><p>  2.3.1 概念簡介</p>&

49、lt;p>  遺傳算法是模仿生物遺傳學和自然選擇機理,通過人工方式構造的一類優(yōu)化搜索算法,是對生物進化過程的一種數(shù)學仿真,是進化計算的一種最重要的形式。</p><p>  遺傳算法就是模仿生物的進化過程(即通過染色體之間的交叉和變異來完成), 將基本操作作用于群體, 從而得到新一代群體, 提高群體適應環(huán)境的能力。計算開始時, 一定數(shù)目個體即種群隨機地初始化, 并計算每個個體的適應度函數(shù), 便產生了第一代。

50、如果不滿足優(yōu)化準則, 按適應度選擇個體, 父代要求基因重組(交叉)而產生子代, 所有的子代按一定概率變異, 然后子代的適應度又被重新計算, 子代被插入到種群中將父代取而代之, 構成新一代, 循環(huán)這一過程一直到滿足優(yōu)化準則為止 。</p><p>  簡單遺傳算法的遺傳操作主要有三種:選擇、交叉和變異。改進的遺傳算法大量擴充了遺傳操作,以達到更高的效率。</p><p>  選擇操作也叫做復

51、制操作,根據(jù)個體的適應度函數(shù)值所度量的優(yōu)劣程度決定它在下一代是被淘汰還是被遺傳。在課題的研究過程中在某些地方使用到了選擇操作。如在進行下一次交叉操作前將部分優(yōu)良個體復制出來,將其獨立保留,然后再將所有個體進行交叉操作,這樣既保留了優(yōu)良個體,又讓優(yōu)良個體與其它所有個體進行了交叉操作,從而提高了種群的整體優(yōu)良水平。</p><p>  交叉操作的簡單方式是將被選擇出的兩個個體P1和P2作為父母個體,將兩者的部分碼值進

52、行交換。課題研究過程中采用的方法是將兩條染色體選擇出來當作父代染色體,然后隨機兩個數(shù)出來,這兩個數(shù)一大一小,然后根據(jù)這兩個數(shù)組成的區(qū)間來選擇染色體段:假設選擇出來的兩個數(shù)分別為20和200,則在父代染色體中,將處于20-200間的染色體段選擇出來與另一條染色體進行交叉交換,組成了兩個子代新的染色體。交叉操作是遺傳算法區(qū)別于其他所以優(yōu)化算法的根本所在,如果從一個遺傳算法中去掉交叉操作,則其結果將不再是遺傳算法。[1] 交叉操作演示如下:&

53、lt;/p><p>  交叉結果為: 和 [5]</p><p>  變異操作的簡單方式是改變數(shù)碼串的某個位置上的數(shù)碼。課題研究過程中采用的也是類似這樣的方法。先選擇出某一條染色體,然后將該染色體的數(shù)碼進行改變。</p><p>  編碼是遺傳算法要解決的首要問題。針對特殊問題,人們提出了其它編碼方法。例如:二進制編碼,格雷碼編碼,實數(shù)編碼,符號編碼方法[6].<

54、/p><p>  適應度函數(shù)又稱為評價函數(shù)。它為種群中每個可能的確定長度的特征字符串指定一個適應值,它經(jīng)常是問題本身所具有的。適應度函數(shù)必須有能力計算搜索空間中每個確定長度的特征字符串的適應值。</p><p>  種群演化的目的是確保在后面的演化階段中算法的收斂。[7]</p><p>  在一般的遺傳算法操作中,交叉操作的概率要遠遠大于變異操作。</p>

55、<p>  2.3.2 求解步驟</p><p>  遺傳算法是一種基于空間搜索的算法,它通過自然選擇、遺傳、變異等操作以及達爾文適者生存的理論,模擬自然進化過程來尋求問題的答案。因此,遺傳算法的求解過程也可看做是最優(yōu)化過程。遺傳算法并不能保證所得到的是最佳答案,但通過一定的方法,可以將誤差控制在容許的范圍內。</p><p>  簡單遺傳算法的求解步驟如下:</p&

56、gt;<p><b>  初始化種群;</b></p><p>  計算種群上每個個體的適應度值;</p><p>  按由個體適應度值所決定的某個規(guī)則選擇將進入下一代的個體;</p><p>  按概率Pc進行交叉操作;</p><p>  按概率Pc進行變異操作;</p><p>

57、;  若沒有滿足某種停止條件,則轉步驟2,否則進入下一步;</p><p>  輸出種群中適應度值最優(yōu)的染色體作為問題的滿意解或最優(yōu)解。[1]</p><p>  算法的停止條件簡單的有如下兩種:1.完成了預先給定的進化代數(shù)則停止;2.種群中的</p><p>  優(yōu)個體在連續(xù)若干代沒有改進或平均適應度在連續(xù)若干代基本沒有改進時停止。</p><

58、p>  3 系統(tǒng)分析與研究</p><p>  3.1 可行性研究</p><p>  由于本人從大三的時候開始接觸java,平時自己的程序開發(fā)使用的也是java,因此對java比較熟悉,所以用它來開發(fā)課題的程序。Java語言是一門面向對象語言,有其獨特的地方,實際運用也非常廣泛,我認為使用它來開發(fā)本課題的程序可以降低一定的開發(fā)難度。</p><p>  

59、在程序的開發(fā)過程中有需要存儲數(shù)據(jù)的地方,因此,在設計程序的時候采用了mysql數(shù)據(jù)庫來存儲程序中的相關數(shù)據(jù)。平時自己在程序開發(fā)中運用的也是mysql數(shù)據(jù)庫,對其比較熟悉,使用起來也比較簡便,因此選擇它作為程序的存儲工具。</p><p>  人工智能的前景應用非常廣泛,遺傳算法能夠給程序設計者帶來一種新的設計思路。遺傳算法有自己的特性,在某些領域如果運用遺傳算法可以獲得意想不到的效果。</p>&l

60、t;p>  3.2 需求分析</p><p>  在互聯(lián)網(wǎng)的飛速發(fā)展下,越來越多的人喜歡把時間花在瀏覽網(wǎng)頁上。每個網(wǎng)站的功能不同,設計的界面也不同,因此有人希望能夠對這些網(wǎng)站進行綜合評價。隨著人工智能的興起,很多領域都涉及到了人工智能的思想,很多產品的生產設計也運用到了人工智能的方法。以往很多綜合評價系統(tǒng)采用的大部分都是普通的算法,并沒有涉及到人工智能的思想。運用人工智能的方法來進行綜合評價系統(tǒng)的設計是

61、一個新的策略,這是平時的一般系統(tǒng)中很少用到的,因此,本課題采用人工智能中的遺傳算法來研究解決網(wǎng)站綜合評價系統(tǒng)的設計問題,并從中反映出專家的思想。</p><p>  遺傳算法利用簡單的編碼技術和繁殖機制來表現(xiàn)復雜的現(xiàn)象,從而解決了非常困難的問題。它不受搜索空間的限制性假設的約束,不必要求諸如連續(xù)性、導數(shù)存在和單峰等假設,能從離散的、多極值的、含有噪音的高維問題中以很大的概率找到全局最優(yōu)解。由于它固有的并行性,遺傳

62、算法非常使用于大規(guī)模并行計算。[1]</p><p>  在很多人的觀念里面人工智能是一個比較高深的領域,認為人工智能的應用應該比較麻煩,而且運用起來也比較麻煩,覺得人工智能很難應用到日常的一些事物中。其實不然。本課題中采用的遺傳算法屬于人工智能領域,我采用遺傳算法來解決網(wǎng)站的綜合評價問題,從一個比較容易理解的角度為大家揭開人工智能的神秘面紗,讓大家覺得其實人工智能并沒有離我們有多遙遠,它也可以應用到一些并不高深

63、的領域。</p><p>  人工智能是一門工程技術學科,它的每一步發(fā)展都與人們采用的方法有很大的關系.傳統(tǒng)的人工智能研究方法,如符號主義,聯(lián)結主義,并沒有使計算機達到具有人類智能的水平.要想使機器具有人類智能,必須突破計算機的局限性,與其它學科聯(lián)手,開展思維科學的研究,創(chuàng)造新的研究方法和途徑.[8]</p><p>  與傳統(tǒng)搜索算法相對比,遺傳算法與更多的傳統(tǒng)優(yōu)化方法在本質上有著不同之

64、處,主要表現(xiàn)在:</p><p>  遺傳算法將參數(shù)搜索問題轉化為參數(shù)空間編碼的搜索問題;</p><p>  遺傳算法從一組初始點,而不是從一個初始點,開始進行搜索;</p><p>  遺傳算法只用到目標函數(shù)信息,而無需其導數(shù)信息或其他輔助信息;</p><p>  遺傳算法采用隨機變換規(guī)則,而不是確定性的規(guī)則,來指導搜索。[9]<

65、/p><p>  綜合評價是指對被評價對象所進行的客觀、公正、合理的全面評價。如果把被評價對象視為系統(tǒng)的話,那么,在若個系統(tǒng)中,如何確認哪個系統(tǒng)的運行狀況好,哪個系統(tǒng)的運行狀況差,這是一類常見的綜合判斷問題.[10]</p><p>  4 系統(tǒng)設計與實現(xiàn)</p><p>  4.1 主要功能設計</p><p>  4.1.1 初始化&l

66、t;/p><p>  程序剛開始的時候種群初始化為200,即剛開始的時候染色體的數(shù)目為200條。每條染色體的長度為130,即每條染色體由130段組成,每段的值為0到200間的數(shù)字,從而每條染色體的包含390個字符。網(wǎng)站內容由五個條目組成,分別為條目一到五;每個條目的評價等級也為五個,分別為很好、較好、好、一般、差。條目沒有進行歸一化處理。權值的設定也沒有進行歸一化處理。</p><p>  期

67、望輸出:評價內容與權值的乘積即為期望輸出。</p><p><b>  A * R = </b></p><p>  {0.4,0.1,0.2,0.1,0},</p><p>  {0.3,0.4,0.1,0.1,0.1},</p><p>  0.3,0.2,0.2,0.2,0.1* {0.2,0.2,0.5

68、,0,0.1},</p><p>  {0.5,0.3,0.1,0.1,0},</p><p>  {0.1,0.4,0.3,0.2,0}</p><p>  = B(b1,b2,b3,b4,b5)</p><p>  4.1.2 初始化的主要過程</p><p>  種群的產生:初始種群的每條染色體均為系統(tǒng)自動產生

69、。</p><p>  由于隨機產生的數(shù)字在[0,99]之間的,因此有些數(shù)字的位數(shù)只有一位或者兩位,為了保證產生的數(shù)都為三位,所以需要對隨機產生的數(shù)字進行處理。處理過程為將數(shù)值小于10的隨機數(shù)前面添加兩個零。這樣就可以保證每個染色體由130段組成,每段的長度都為3,也方便了隨后的數(shù)據(jù)處理。</p><p>  產生隨機數(shù):隨機數(shù)的產生是根據(jù)一定的范圍值來隨機產生的,這個過程可以調用java

70、中自帶的Math函數(shù)庫來完成。</p><p>  產生隨機的染色體:每條染色體的產生原理都是一樣的,都是通過產生一定數(shù)量的隨機數(shù),然后將這些隨機數(shù)組合起來,這樣就成為了一條染色體。由于隨機數(shù)是隨機產生的,所以也保證了每條染色體都是隨機產生的。</p><p>  在實際的運算操作中需要對染色體進行分解,以獲得染色體段的數(shù)值。分解的原理為按段分解:將每條染色體按段截取,每段的長度固定,然后

71、將分解后的段轉為數(shù)值,從而獲得染色體上的段值,在染色體的交叉過程中要對染色體進行段操作。</p><p><b>  染色體的編碼如下:</b></p><p>  4.1.3 數(shù)據(jù)庫的設計</p><p>  在程序的設計中需要存儲相關的染色體數(shù)據(jù),數(shù)據(jù)庫中的每條記錄有三個字段:id、chromosome、fitness。每次的操作不同,需

72、要做的數(shù)據(jù)存儲操作也不同。</p><p>  除了第一代操作的時候不需要讀取數(shù)據(jù)庫的數(shù)據(jù)之外,其它的每代操作都需要對數(shù)據(jù)庫進行數(shù)據(jù)讀取。將數(shù)據(jù)從數(shù)據(jù)庫讀取出來后要做相應的設置:把每條染色體當作一個對象,對該對象進行相應的數(shù)據(jù)存取操作,需要進行的操作有設置id值,設置染色體的編碼值,設置相應的適應度值。這樣做的目的是方便隨后進行的遺傳算法操作。</p><p>  在進行交叉操作后,需要對

73、數(shù)據(jù)庫進行大量的數(shù)據(jù)存儲。為了提高數(shù)據(jù)庫的存儲效率,采用了批處理的方式將數(shù)據(jù)存入到數(shù)據(jù)庫中:批處理的做法是將需要存儲到數(shù)據(jù)庫中的每個染色體對象先存儲到一個鏈表中,把這些染色體對象存完后再一并存入數(shù)據(jù)庫中,這樣可提高程序的運行效率。</p><p>  對染色體進行變異操作的時候,由于是對單條染色體進行變異,因此只需要將單條染色體存入數(shù)據(jù)庫就可以了:即將一條染色體對象的所有對象存入到數(shù)據(jù)庫中,包括id值,染色體編碼

74、,適應度值。ER圖如下所示:</p><p>  4.1.4 遺傳算法操作的實現(xiàn)</p><p>  遺傳算法就是模仿生物的進化過程(即通過染色體之間的交叉和變異來完成), 將基本操作作用于群體, 從而得到新一代群體, 提高群體適應環(huán)境的能力。計算開始時, 一定數(shù)目個體即種群隨機地初始化, 并計算每個個體的適應度函數(shù), 便產生了第一代。如果不滿足優(yōu)化準則, 按適應度選擇個體, 父代要求基

75、因重組(交叉)而產生子代, 所有的子代按一定概率變異, 然后子代的適應度又被重新計算, 子代被插入到種群中將父代取而代之, 構成新一代, 循環(huán)這一過程一直到滿足優(yōu)化準則為止.[11]</p><p>  課題中主要的遺傳算法操作為選擇,交叉和變異。</p><p>  選擇操作也叫做復制操作,根據(jù)染色體的適應度函數(shù)值判讀該染色體是否優(yōu)劣,以決定是否被淘汰或者繼續(xù)留在種群中。程序設計時將種群

76、中所有個體的信息從數(shù)據(jù)庫中選擇出來,從中選擇出一部分優(yōu)良的個體,將這些優(yōu)良個體備份,暫不進行任何操作,而種群中仍然存在這部分個體,等到一代操作完成后,再將這部分優(yōu)良的個體插入種群中,從而形成了一個新的種群。選擇這部分優(yōu)良個體出來的原因是利用這些優(yōu)良個體,在種群不斷演化的演化過程中,提高種群的優(yōu)良個體的數(shù)量,使種群的優(yōu)良個體率上升,加快種群的進化。</p><p>  交叉操作就是將兩個個體從種群中選擇出來作為父代

77、,將兩者的部分碼值進行交叉互換,如下圖所示:</p><p><b>  交叉之后的結果為:</b></p><p>  具體的程序實現(xiàn)過程為將兩個個體從種群中選出來作為父代,程序隨機出兩個整數(shù),這兩個整數(shù)作為編碼交換位置的起點和終點,把處于這兩個標記點之間的編碼互換,互換之后的兩個個體成為了新的個體,這兩個新個體都擁有對方之前的染色體編碼,從而達到了交叉操作的效果。

78、最后再將新的個體插入到種群中。如此反復,將種群中的所有個體都交叉之后就形成了一個新的種群。若種群的個數(shù)為單數(shù),則種群中最后一個個體不用進行交叉操作,之間將其插入到新的種群中。</p><p>  在變異操作的算法思想主要是將染色體的編碼進行轉變,程序中的思路為如果染色體中含有字符0,則將所有字符0轉變?yōu)?,如果沒有字符0,則將字符1轉變?yōu)樽址?,如果沒有字符1,則選擇字符2,如果字符2沒有,則選3,如果都沒有,則

79、選字符4,并將字符4轉變?yōu)?。假設如果每個隨機數(shù)是在0到500之間的,那么0,1,2,3,4這些字符肯定有。交叉操作的實現(xiàn)如下所示:</p><p><b>  執(zhí)行變異操作之后:</b></p><p>  4.2 詳細設計思路</p><p>  4.2.1 適應度和適應度函數(shù)</p><p>  為了體現(xiàn)染色體的

80、適應能力,引入了對問題中的每一個染色體都能進行度量的函數(shù),叫做適應度函數(shù)。通過適應度函數(shù)來決定染色體的優(yōu)劣程度,它體現(xiàn)了自然進化中的優(yōu)勝劣汰原則。若一個染色體與問題的最優(yōu)解染色體之間的差距較小,則對應的適應度函數(shù)值之差就較小,否則就較大。適應度函數(shù)如下:</p><p>  該值就是該染色體的適應度值。</p><p>  4.2.2 交叉操作和變異操作的選擇及實現(xiàn)流程</p>

81、<p>  對交叉和變異操作的選擇是通過一個隨機數(shù)的大小來決定的。隨機出來一個數(shù),判斷這個數(shù)值,如果這個數(shù)處于某個范圍,則對其進行交叉操作,反之,則進行變異操作。每一代染色體中要么將所有的染色體進行交叉操作,要么將染色體中的某一部分染色體進行變異操作。對哪條染色體進行變異操作是通過產生一個隨機數(shù)來決定的,這個隨機數(shù)不大于種群數(shù)量的數(shù)值。變異后將該染色體插入原來在數(shù)據(jù)庫中的位置,如此就完成了一代操作。交叉操作進行前先選擇出一

82、部分優(yōu)良的個體,將這部分個體進行備份,暫不進行任何操作;然后將種群中的所有個體進行交叉操作,每個個體都是與相鄰個體進行交叉操作。交叉操作結束后,再將之前選擇出來的優(yōu)良個體插入種群中,如此,就完成了一次交叉操作。流程圖如下圖所示:</p><p><b>  交叉變異操作流程圖</b></p><p>  4.2.3 種群規(guī)??刂圃斀?lt;/p><p&

83、gt;  為了保證種群的整體質量,先將種群中適應度值符合某一特定范圍的染色體備份出來,然后再對所有染色體進行交叉操作。交叉操作結束后再把選出來的優(yōu)良的備份過的染色體一起加到種群中,這樣可以提高種群的質量。</p><p>  對于如何進行種群的規(guī)??刂?,自己也進行了多種嘗試。</p><p>  嘗試一:由于在交叉操作進行之前會先將一批優(yōu)良染色體進行保存,因此,在種群演化多次之后,種群的數(shù)

84、目會不斷的增長,而隨著種群的擴大,程序的運行變得越來越慢,因此,有必要對種群的數(shù)目進行控制,以提高程序的運行速率。當種群數(shù)目達到上限后,將所有適應度值小于某一范圍值的染色體進行淘汰,如,剛開始的時候該范圍值為1.0,當種群數(shù)目第一次達到上限時,將所有機器輸出與期望輸出之差小于0.5( 即,1.0除以2)的染色體全部淘汰,并且,將范圍值稍微的縮小,即,1.0減去某一個比較小的值。如此反復,從而達到種群數(shù)目控制的目的。但是在實際的程序運行過

85、程中發(fā)現(xiàn),該方法并不能很好的達到縮小種群規(guī)模的目的。我分析了一下原因,由于在前面的演化過程中,種群中的每個染色體的機器輸出都很大,導致大部分染色體的機器輸出與期望輸出之差都小于某個值,因此,淘汰的數(shù)目并不可觀,種群的數(shù)量并沒有明顯的改變。顯然,采取這種方法的話,程序的運行依然會很慢,因此,有必要采取另一種方法。</p><p>  嘗試二:鑒于大部分染色體的機器輸出都比較大,可以對種群的數(shù)目進行硬性的削減。假如種

86、群大于某個上限值時,就將種群的數(shù)目削減到初始時的大小。具體的做法:由于給種群設定了一個固定的上限值,當種群的個體超過上限之后就按照適應度值將種群的個體進行優(yōu)勝劣汰,直至種群的數(shù)目恢復到初始時的規(guī)模。這樣既可以減少種群的數(shù)目,又將種群的整體機器輸出值提升,加快了種群的演化。</p><p>  4.2.4 種群訓練過程</p><p>  種群在演化過程中有一個訓練過程,訓練過程如下:有一定

87、數(shù)量的訓練樣本,記為R。對于每一個樣本Ri,根據(jù)期望權值,可得出一個期望輸出,根據(jù)一個個體,可得出一個訓練輸出;假設有n個樣本,則可得出n個期望輸出和n個訓練輸出。根據(jù)歐式定理,</p><p><b>  di = ,</b></p><p>  其中bi為訓練輸出,ai為期望輸出,di為差值。</p><p>  將所有di相加,然后求平

88、均值,這個平均值就是對應的個體的適應度函數(shù)值,該值用來衡量該個體的優(yōu)劣。</p><p>  假設有一個訓練樣本如下所示:</p><p>  0.2, 0.2, 0.4, 0.2, 0 </p><p>  0.3, 0.4, 0.1, 0.1, 0.1</p><p>  0.2, 0.2, 0.5, 0, 0.1</p>

89、<p>  0.5, 0.3, 0.1, 0.1, 0 </p><p>  0.1, 0.4, 0.3, 0.2, 0</p><p>  根據(jù)期望權值,a={0.3,0.2,0.2,0.2,0.1},可得出一個期望輸出,記為A:</p><p>  A={a1,a2,a3,a4,a5}={0.22, 0.22, 0.21, 0.25, 0.21}。&l

90、t;/p><p><b>  根據(jù)一個個體,</b></p><p>  b=077055090098055068086062056022098...5206608505409205003003409</p><p>  可得出一個機器輸出,記為B:</p><p>  B={b1,b2,b3,b4,b5}={0.13,0.

91、26,0.45,0.67,0.55}</p><p>  根據(jù)歐式公式,可得出在該樣本下,某個體對應的一個適應度函數(shù)值:</p><p>  d = = 0.60</p><p>  將該個體及期望權值分別與所有訓練樣本訓練可得出一批訓練輸出和期望輸出,然后根據(jù)歐式公式來比較這兩組輸出,可得出一批適應度值,將這些適應度值取加權平均值,則該值就是該個體的對應的適應度

92、值。</p><p><b>  具體流程圖如下:</b></p><p><b>  訓練樣本流程圖</b></p><p>  當種群中所有個體都經(jīng)過如上的訓練后,每個個體都有一個相應的適應度值,適應度值越小說明該染色體越接近期望輸出。</p><p>  4.2.5 種群演化的終止</p

93、><p>  隨著程序的運行,種群的不斷演化,整體的機器輸出會不斷的提高,從而種群的適應度函數(shù)值越來越小,當這部分適應度值對應的個體數(shù)量占總數(shù)的比重很大的時候,可以認為該種群的演化已經(jīng)達到穩(wěn)定,可將種群中機器輸出最接近期望輸出的,即適應度函數(shù)值最小的染色體作為最優(yōu)染色體。具體說來種群的終止的條件如下:1,代數(shù)達到1000代 2,優(yōu)良個體所占的百分比達到某一值 3,范圍值小于最低標準 4,當某種群的最佳個體的適應度

94、值一直保持若干代不變,并且具有該適應度值的染色體占種群的比重很大,則終止種群演化。流程圖如下所示:</p><p><b>  種群演化終止流程圖</b></p><p>  4.2.6 獲取最佳個體</p><p>  種群演化終止后,讀取數(shù)據(jù)庫中的所有個體的數(shù)據(jù)。將這些個體的適應度值進行比較,比較適應度值的大小,選擇適應度值最小的個體作為最

95、佳結果,用來表示這個種群的最優(yōu)解。</p><p><b>  最佳個體選擇流程圖</b></p><p>  例如,在一次種群演化結束后,得出了一批個體,如下所示:</p><p>  如上,若適應度值0.05為最小值,則選擇該值所對應的個體作為種群中的最佳個體。</p><p><b>  5 系統(tǒng)測試&

96、lt;/b></p><p>  系統(tǒng)測試的主要目的是根據(jù)選擇出來的最佳染色體,將該染色體與一批測試樣本進行測試,過程類似于種群演化過程中的個體訓練。根據(jù)一個樣本,可得出最佳染色體與之相應的機器輸出bi;根據(jù)該樣本,可得出期望權值與之相應的期望輸出ai。將所有測試樣本使用完之后,可得出一批機器輸出bi以及相應的期望輸出ai。根據(jù)歐式公式,由bi和ai 可得出一個適應度值,判斷該值是否滿足某一范圍,若滿足,則

97、說明該染色體體現(xiàn)了專家的評價思想,達到了預期的效果;若不滿足,則說明該染色體沒有體現(xiàn)專家的思想,沒有模擬出專家的評判思想。</p><p>  假設有十個測試樣本,則根據(jù)期望權值,a={0.3,0.2,0.2,0.2,0.1},可得出十個專家輸出,記為A,結果如下所示:</p><p>  若種群中的最佳個體為b,其編碼為:</p><p>  b = 057012

98、06102908608609203000...18092078068081076</p><p>  對應的測試輸出如下所示:</p><p><b>  測試輸出的結果圖</b></p><p>  根據(jù)歐式公式可得出對應的適應度值:</p><p><b>  di= </b></p&g

99、t;<p>  將所有測試樣本都進行測試后,將適應度值進行加權平均,作為最終的結果,結果輸出如下所示:</p><p><b>  適應度值</b></p><p>  從這個適應度值可以看出,該適應度滿足誤差范圍[0,0.1],說明該個體符合要求,較接近期望權值,能夠符合專家的評判思想。</p><p>  具體的程序流程如下圖

100、所示:</p><p><b>  6 總結</b></p><p>  經(jīng)過一段時間的資料收集和研究,對課題的認識有了更進一步的加深,程序的思路也逐漸浮現(xiàn)出來。剛開始的時候自己對課題沒能正確的理解,使得課題的進度變得緩慢。然后自己花了很多時間反復理解,逐漸把握住了課題的思路。</p><p>  剛開始的時候覺得數(shù)據(jù)庫不需要用到。隨著程序的

101、框架慢慢搭建好后,發(fā)現(xiàn)如果采用數(shù)據(jù)庫存儲相關的數(shù)據(jù),將會降低程序設計的難度。因為有了數(shù)據(jù)庫,我就不必考慮該采用說明數(shù)據(jù)結構來存儲數(shù)據(jù),降低了復雜度。采用數(shù)據(jù)庫可以將數(shù)據(jù)的存儲和程序的實現(xiàn)進行分離,這兩塊可以分開處理,使得程序的設計變的更加清晰,而且便于程序的維護和更改。</p><p>  早期的時候我的模型為一個三層結構,因此,就有兩層的權值,當時我的思路是每一層都用一條染色體來表示權值,從而我在進行程序設計的

102、時候發(fā)現(xiàn),這樣做很麻煩,因為我需要將每一層的染色體進行追蹤標記,因為這兩層的染色體是有一定的聯(lián)系的。底層為輸入層,輸入層的輸入值和第一層的染色體的權值相乘并求和之后得到了第一層的輸入值,然后第一層的輸入值與第二層的輸入值進行相乘求和,從而得到了一個機器輸出。在這個過程中,我需要將第一層、第二層的染色體與機器輸出聯(lián)系起來,因為如果機器輸出不合適的話就得進行相應的操作,或淘汰或變異等,就必須得把這兩層的染色體都標記追蹤,否則無法進行相應的操

103、作,這無疑增加了程序設計的難度。聽了老師的建議之后,我只須用一條染色體來記錄第一層和第二層的權值,從而免去了很多追蹤標記的操作,簡便了很多。這么一改動之后課題有了較快的進展。</p><p>  隨著對課題的深入研究,加深了對遺傳算法的理解,對遺傳算法的應用有了更好的認識。今后如果遇到一些相似的問題,會考慮采用遺傳算法的思想來解決。</p><p>  通過對課題進行程序設計,也加深了自己

104、對java語言理解。在程序實現(xiàn)過程中,用到了一些自己沒有用過的技術,自己也嘗試去運用一些新的東西來鍛煉自己,這些東西在自己以前的程序中都未曾用到過,這對于自己而言也算是一個考驗,而我也從中獲得了提高。</p><p><b>  參 考 文 獻 </b></p><p>  [1] 《人工智能及其應用》蔡自興 徐光佑 清華大學出版設,2003年9月第三版</p&

105、gt;<p>  [2] 《introduce to java programming》 sixth edition,機械工業(yè)出版社,(美)Y.Danniel Liang</p><p>  [3] 數(shù)據(jù)庫技術簡介[EB/OL]. 紫欣. http://www.docin.com/p-10328088.html,2009-03-11/2010-03-18</p><p>

106、  [4] 《數(shù)據(jù)庫原理與應用》張俊玲主編,清華大學出版社,2005年9月第一版</p><p>  [5] Genetic Algorithms and Evolutionary Computing ,Darrell Whitley,Computer Science Department,Colorado State University Fort Collins,CO 80523</p>&

107、lt;p>  [6] 遺傳算法研究綜述,吉根林,計算機應用與軟件,2004年2月第21卷第二期</p><p>  [7] Dunwei Gong.Adaptive interactive genetic algorithms with individual interval fitness[J]. Progress in Natural Science.2008(18):359-365</p>

108、<p>  [8] 人工智能研究方法及途徑,熊才權,湖北工業(yè)大學計算機學院,艦船電子工程2005年3期</p><p>  [9] 利用遺傳算法進行機械優(yōu)化,馮錦春 楊林建,四川工程職業(yè)技術學院學報,2007年第六期</p><p>  [10] 《綜合評價理論,方法及應用》郭亞軍 科學出版社,2007年5月第一版:1</p><p>  [11] 基

溫馨提示

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

評論

0/150

提交評論