布朗退火演算法
① 交通量預測用什麼方法
交通量預測用的方法有:遺傳演算法、神經網路、支持向量機、灰色理論等。
1、遺傳演算法
遺傳演算法是一種靈感源於達爾文自然進化理論的啟發式搜索演算法。遺傳演算法中包含初始化、個體評價(計算適應度函數)、選擇運算、交叉運算和變異運算。
2、神經網路
神經網路是利用其演算法特點來模擬人腦思維的第二種方式,它是一個非線性動力學系統,其特點就是信息分布式存儲和並行協同處理。簡單點講就是利用該演算法來模擬人類大腦來進行推理和驗證的。
3、支持向量機
支持向量機演算法作為機器學習領域的經典演算法,從被提出開始提出後快速發展,在很多場景和領域都取得了非常好的效果,同時兼有數度快,支持數據量級大(相對經典機器學習演算法)等特點使其在工程實踐中的得到了廣泛的應用。
4、灰色理論
灰色預測通過鑒別系統因素之間的發展趨勢的相異程度,並對原始數據進行生成處理來尋找系統變動的規律,生成有較強規律性的數據序列,然後建立相應的微分方程,從而預測事物未來的發展趨勢。
(1)布朗退火演算法擴展閱讀
交通量預測的調整方法:
1、調基法
調基法主要通過調整與預測交通量關系最大的GDP和彈性系數,從而修正特徵年交通增長率,達到降低交通量預測的不確定性帶來的BOT項目投資風險。
2、通道控製法
基於公路運輸通道特性明顯的特點,重點收集擬建公路運輸通道內的各主要公路歷年觀測交通量,對通道交通量進行整合、推算、預測。在此基礎上,確定通道內各主要公路的功能定位、交通量分擔權重,進而可以求得擬建公路的未來年交通量。
② 誰知道指紋和DNA怎樣鑒別
指紋是人類手指末端指腹上由凹凸的皮膚所形成的紋路。指紋能使手在接觸物件時增加摩擦力,從而更容易發力及抓緊物件。是人類進化過程式中自然形成的。 指紋由遺傳影響,由於每個人的遺傳基因均不同,所以指紋也不同。然而,指紋的形成雖然主要受到遺傳影響,但也有環境因素,當胎兒在母體內發育三至四個月時,指紋就已經形成,但兒童在成長期間指紋會略有改變,直到青春期14歲左右時才會定型。在皮膚發育過程中,雖然表皮、真皮,以及基質層都在共同成長,但柔軟的皮下組織長得比相對堅硬的表皮快,因此會對表皮產生源源不斷的上頂壓力,迫使長得較慢的表皮向內層組織收縮塌陷,逐漸變彎打皺,以減輕皮下組織施加給它的壓力。如此一來,一方面使勁向上攻,一方面被迫往下撤,導致表皮長得曲曲彎彎,坑窪不平,形成紋路。這種變彎打皺的過程隨著內層組織產生的上層壓力的變化而波動起伏,形成凹凸不平的脊紋或皺褶,直到發育過程中止,最終定型為至死不變的指紋。 指紋有3種基本類型——環型、弓型和螺旋型。是皮下組織對指肚表皮頂壓方向的不同造就了這不同的類型。研究表明,如果某人指頭肚高而圓,其指紋的紋路將是螺旋型。現在,科學家已能夠通過模型再現那些較為常見的指紋,也能重復不太復雜的罕見指紋的形成過程。 目前尚未發現有不同的人擁有相同的指紋,所以每個人的指紋也是獨一無二。由於指紋是每個人獨有的標記,近幾百年來,罪犯在犯案現場留下的指紋,均成為警方追捕疑犯的重要線索。現今鑒別指紋方法已經電腦化,使鑒別程序更快更准。 DNA的科普知識: 1 DNA指紋圖的建立及發展 近百年來的研究認為,任何遺傳分析都是以遺傳標志為基礎的,而任何一個遺傳標志的價值又在於其變異 性(即多態性)的大小。有關遺傳多態性的研究對促進人類學、遺傳學、免疫學以及法醫學的發展, 以及對闡明某些疾病的發病機理乃至協助診斷等方面都起了十分重要的作用。但以往的研究都是利用各種外部表現型、生理缺陷型、同工酶、多態蛋白等作為遺傳標志,用間接分析來推論相應的遺傳基因。 70年代末,限制性內切酶和重組體DNA技術的出現以及分子生物學的飛速發展,使人們對遺傳標志的研究轉向DNA分子本身。由於各種遺傳信息都蘊藏在DNA分子上,生物個體間的差異在本質上是DNA分子的差異,因此DNA被認為是最可靠的遺傳標志。某些DNA序列的差異可通過限制性酶切片段長度的改變來反映,此即限制性片段長度多態性(restriction fragment length polymorphisms,RFLP),其產生是由於點突變、DNA重排、插入或缺失引起的〔1〕。隨著對RFLP研究的深入,人們發現了基因組中最有變異性的一類序列——高變異DNA序列,使DNA遺傳標志的發展和應用得到了一次飛躍。 1980年,Wyman和White描述了第一個多等位性的具有高度多態性的人類DNA標志。不久,在胰島素基因(Insulingene)的5′端區域、致癌基因(C-Haras I Oncogene)的3′端分別發現了相同的高度可變的標志(hypervariable marker)。在α-球蛋白(α-globin)基因群周圍還發現了其它三個標志〔2〕。1982年,Bell等〔3〕證實:這些高度多態性區域串聯著重復的短序列單位,重復單位數目的差異導致了這種高度的可變性,由於這些結構特徵,人們稱這些區域為小衛星(minisatellite)或高度可變區域(hypervariable)或可變數目的串聯重復(variable number of tandem repeats)。 1985年,Jeffreys 等〔4〕用肌紅蛋白基因第一內含子中的串聯重復序列(重復單位含33bp)作探針,從人的基因文庫中篩選出8個含有串聯重復序列(小衛星)的重組克隆。序列分析表明,這8個小衛星重復單位的長度和序列不完全相同,但都有相同的核心序列(core sequence)即GGCCAGGA/GGG。他們先後用兩個多核心小衛星(poly coreminisate -llite)33.6和33.15探針進行southern雜交,在低嚴謹條件下雜交得到了包含10多條帶的雜交圖譜,不同個體雜交圖譜上帶的位置就象人的指紋一樣千差萬別,Jeffrey稱之為DNA指紋(DNA fingerprint)〔5〕,又名遺傳指紋(genetic fingerprint)。 RFLP DNA指紋分析技術由於方法繁雜、周期長、實驗條件高等缺陷而無法大范圍推廣。1990年,Williams等〔6〕首次報道了AP-PCR技術,Welsh和McCelland〔7〕亦獨立地進行了這方面的工作,從而使DNA指紋技術應用更加廣泛。AP-PCR技術是採用隨意設計的1個或2個引物,對模板DNA進行PCR擴增,一般先是在低嚴格條件,即在高Mg2+濃度(大於傳統PCR Mg2+濃度1.5mmol/L)、較低退火溫度(36℃~50℃)下進行1~6個循環的PCR擴增,隨後在嚴格條件下進行PCR擴增,產物經2%瓊脂糖凝膠電泳或6%變性聚丙烯醯胺凝膠電泳分離,可得到DNA指紋圖譜。其基本原理是:在低嚴格復性條件下,引物與模板DNA非完全互補序列形成錯配,錯配引物在DNA聚合酶作用下沿模板鏈延伸,合成新鏈,當在一定距離內模板DNA另一單鏈也發生引物錯配時,即可對兩錯配引物間的DNA進行擴增。但是此種錯配並非隨機發生,引物和模板間,特別是在引物3′端必須存在一定的互補序列,即可產生不同的擴增片段或組合,通過DNA指紋圖譜,可得到配對DNA樣品中的差異片段,用於克隆、測序、染色體定位和基因片段的生物學功能研究。 我國楊建廠等〔8〕利用PCR的原理成功地建立了一種全新的DNA指紋檢測技術,稱之為隨機引物PCR人DNA指紋檢測技術(arbitrarily primed PCR human DNA fingerprinting,APHDP),此外還開發出處理DNA指紋數據應用軟體,應用於個人識別、遺傳素質與疾病的相關特徵研究等。 DNA指紋的識別 ________________________________________ 1984年英國萊斯特大學的遺傳學家Jefferys及其合作者首次將分離的人源小衛星DNA用作基因探針,同人體核DNA的酶切片段雜交,獲得了由多個位點上的等位基因組成的長度不等的雜交帶圖紋,這種圖紋極少有兩個人完全相同,故稱為"DNA指紋",意思是它同人的指紋一樣是每個人所特有的。DNA指紋的圖像在X光膠片中呈一系列條紋,很像商品上的條形碼。DNA指紋圖譜,開創了檢測DNA多態性(生物的不同個體或不同種群在DNA結構上存在著差異)的多種多樣的手段,如RFLP(限制性內切酶酶切片段長度多態性)分析、串聯重復序列分析、RAPD(隨機擴增多態性DNA)分析等等。各種分析方法均以DNA的多態性為基礎,產生具有高度個體特異性的DNA指紋圖譜,由於DNA指紋圖譜具有高度的變異性和穩定的遺傳性,且仍按簡單的孟德爾方式遺傳,成為目前最具吸引力的遺傳標記。 DNA指紋具有下述特點:1.高度的特異性:研究表明,兩個隨機個體具有相同DNA圖形的概率僅3×10-11;如果同時用兩種探針進行比較,兩個個體完全相同的概率小於5×10-19。全世界人口約50億,即5×109。因此,除非是同卵雙生子女,否則幾乎不可能有兩個人的DNA指紋的圖形完全相同。2.穩定的遺傳性:DNA是人的遺傳物質,其特徵是由父母遺傳的。分析發現,DNA指紋圖譜中幾乎每一條帶紋都能在其雙親之一的圖譜中找到,這種帶紋符合經典的孟德爾遺傳規律,即雙方的特徵平均傳遞50%給子代。3.體細胞穩定性:即同一個人的不同組織如血液、肌肉、毛發、精液等產生的DNA指紋圖形完全一致。 1985年Jefferys博士首先將DNA指紋技術應用於法醫鑒定。1989年該技術獲美國國會批准作為正式法庭物證手段。我國警方利用DNA指紋技術已偵破了數千例疑難案件。DNA指紋技術具有許多傳統法醫檢查方法不具備的優點,如它從四年前的精斑、血跡樣品中,仍能提取出DNA來作分析;如果用線粒體DNA檢查,時間還將延長。此外千年古屍的鑒定,在俄國革命時期被處決沙皇尼古拉的遺骸,以及最近在前南地區的一次意外事故中機毀人亡的已故美國商務部長布朗及其隨行人員的遺骸鑒定,都採用了DNA指紋技術。 此外,它在人類醫學中被用於個體鑒別、確定親緣關系、醫學診斷及尋找與疾病連鎖的遺傳標記;在動物進化學中可用於探明動物種群的起源及進化過程;在物種分類中,可用於區分不同物種,也有區分同一物種不同品系的潛力。在作物的基因定位及育種上也有非常廣泛的應用。 DNA指紋圖譜法的基本操作:從生物樣品中提取DNA(DNA一般都有部分的降解),可運用PCR技術擴增出高可變位點(如VNTR系統,串聯重復的小衛星DNA等)或者完整的基因組DNA,然後將擴增出的DNA酶切成DNA片斷,經瓊脂糖凝膠電泳,按分子量大小分離後,轉移至尼龍濾膜上,然後將已標記的小衛星DNA探針與膜上具有互補鹼基序列的DNA片段雜交,用放射自顯影便可獲得DNA指紋圖譜。 瓊脂糖凝膠電泳是分離,鑒定和純化DNA片段的常規方法。利用低濃度的熒光嵌入染料-溴化乙錠進行染色,可確定DNA在凝膠中的位置。如有必要,還可以從凝膠中 回收DNA條帶,用於各種克隆操作。瓊脂糖凝膠的分辨能力要比聚丙烯醯胺凝膠低,但其分離范圍較廣。用各種濃度的瓊脂糖凝膠可以分離長度為200bp至近50kbp的DNA。長度100kb或更大的DNA,可以通過電場方向呈周期性變化的脈沖電場凝膠電泳進行分離。 在基因工程的常規操作中,瓊脂糖凝膠電泳應用最為廣泛。它通常採用水平電泳裝置,在強度和方向恆定的電場下進行電泳。DNA分子在凝膠緩沖液(一般為鹼性)中帶負電荷,在電場中由負極向正極遷移。DNA分子遷移的速率受分子大小,構象。電場強度和方向,鹼基組成,溫度和嵌入染料等因素的影響。 2 DNA指紋技術所用的探針 自DNA指紋技術建立以來,這一技術迅速在動植物的進化關系、親緣關系分析以及法醫學方面得到廣泛應用。也正是由於DNA指紋技術在核酸分析中顯示出了強大的生命力,因而許多學者圍繞此技術所用的探針作了大量的工作,除Jeffrey等〔5〕的探針外,用人工化學合成或從生物組織中提取後再擴增的辦法生產出了一批高水平的探針。迄今,在DNA指紋技術中所用的探針大概有probe33.15、33.6〔5〕、bacteriophage MB〔9〕、pig repetitire clone p83、PGB 725、poly(GT) containing 18.1、(GTG)5/(CAC)5〔10,11〕、(CAC/TA)4及(GT)12等。同時,在探針的標志上也有了很大的發展,根據它們的結構可大致分為小衛星探針和簡單重復序列探針,簡單重復序列包括微衛星探針(microsatellite probe)和寡聚核苷酸探針。小衛星探針的核心序列為33bp,常定位在人常染色體前的末端(proterminal)區域,微衛星探針則在10~20bp之間,而寡聚核苷酸探針在10bp以下,普遍散布在人類整條染色體上,或者在基因間區域或者位於內含子內。 1988年,我國伍新堯等〔12〕根據DNA指紋是人基因組中重復序列的RFLP的原理和人與鼠的髓鞘鹼性蛋白(MBP)基因cDNA同源序列性高於90%的事實,選用鼠MBP cDNA3′端的一段序列(非表達區高度重序列,與人基因組中該類重復序列幾乎完全同源),長度為0.81kb的片段作探針,檢測用HaeⅢ酶解的人DNA限制性片段(RF),在人群中可分出22條譜帶,受檢 的30例無血緣關系的個體之間沒有兩個人的譜帶是完全相同的,顯示這一方法的高度個體特異性,這是國內首次用自已的力量找到DNA指紋的探針。 3 DNA指紋的應用3.1 法醫學方面 同以往的血型測定法相比,DNA指紋技術在法醫學領域上具有無可比擬的優越性。已成為鑒定犯罪、親子鑒定和確定個體間親緣關系的工具〔5,13〕。隨後,國內學者李伯齡〔14〕、姜先華〔15〕、伍新堯等〔12〕也先後對此項技術進行了研究,並應用於實際案件的鑒定中,解決了過去無法解決的疑難案例,如微量血痕、部分腐敗的碎屍塊的個人認定等。 3.2 在動植物科學中的應用 3.2.1 生物種群學研究 利用DNA指紋圖可以估算連鎖不平衡,比較等位基因的頻率,還能估計不同個體之間的重組率,在種群學研究上有助於建立某一個體在種群中的地位和關系,特別是對真菌的種群研究,有很多真菌可以通過有性和無性的方式繁殖,但是何時以何種方式繁殖,程度如何,並不清楚,而利用DNA指紋圖就能區分以有性和無性方式產生的後代,並能確定某一區域真菌的自然分布〔1,16〕。 3.2.2 測定物種之間的遺傳距離、物種分類鑒定 Jeffreys等〔5〕認為在一個群體的不同成員間拷貝數的串聯重復序列(VNTR)由於多態性程度高,在遺傳分析中尤其適合作為多態性標志,簡單重復的不穩定性可導致VNTR長度的迅速變化,根據家族中或育種群體中VNTR的分離重組頻率,可以測定出遺傳距離,可用統計學公式確定個體間的親緣關系:D=2Nab/(Na+Nb),,D值越大,親緣關系越近,遺傳距離就越小;D值越小,親緣關系越遠,遺傳距離就越大。為此,運用DNA指紋技術可檢測不同物種、同種及同種不同個體的親緣關系,用於物種分類鑒定,也可用於雜交後代親本決定,雜交後代群體分開,檢測近等基因系(或同類系)種的多態性,並對檢測基因進行定位。Welsh等〔7〕對布氏疏螺旋體菌株的DNA指紋進行分析,發現這種lyme病的病原菌實際上是由三個不同的種群組成。羅超權等〔12〕運用AP-PCR鑒定弓形蟲蟲株,在國內開創了運用DNA指紋技術作生物分類的先例。 3.3 在流行病學方面的運用 由於DNA指紋具有以下幾個特點:①能反映基因組的變異性;②具有高度的變異性;③具有簡單的穩定的遺傳性;④DNA指紋譜具有體細胞穩定性。所以,它同一般的流行病學方法相比較而言,具有無比的優越性,使其成為流行病調查的一種有效工具。Jan DA等〔17〕,Denise Chevrel-Dellagi等〔18〕運用IS6110序列作探針對結核病分支桿菌株進行DNA指紋分析,調查國際間結核病的種型、分析流行情況,改進了控制結核病的方法。而ZhenHua Yang等〔19〕從67個病人中分離出結核病分支桿菌株進行DNA指紋分析,發現分離到PTBN12型時易查明流行環節,從而為快速進行疾病控制提供了一個有力證據。在我國,童笑梅等〔20〕採用隨機擴增多態DNA指紋圖技術對醫院內感染的14例新生兒進行病原流行病學分析,發現患兒體內攜帶的與醫務人員鼻中攜帶的華納葡萄球菌菌株的DNA指紋圖完全一致,從而證明此次感染的病原菌為華納葡萄球菌,傳染源是攜帶病菌的醫務人員。郭永建等〔21〕在6個月內對121名產科新生兒中的30名檢出的31株銅綠假單胞菌進行RAPD指紋圖譜分析和血清學分型,結果表明,銅綠假單胞菌在產科新生兒中暴發流行,0∶6/R∶1型為暴發流行性菌株,對醫院感染病原菌分型、精確確定傳染源、阻斷傳播途徑、控制和預防醫院感染具有重要的指導意義。 3.4 疾病診斷及治療 鑒於DNA指紋所具有的上述特點,故DNA指紋廣泛應用於一些疾病的診斷及治療。Morral〔22〕等發現CF基因9號外顯子側翼含有一小衛星區,且此等位基因2.6帶常與△F508連鎖,相伴率為50.6%、41.6%,△F508是最主要的致病突變,可疑患者電泳圖只要發現2.6等位基因,就可對此病進行初步診斷。現已在Wilson病、外周神經纖維瘤、成人多束腎、多巴性肌緊張、Frecbreich共濟失調、Kallmunm綜合征性連鎖、視網膜病等基因內或旁側發現有高度的小衛星區域,從而可進行基因診斷。Okamoto R〔23〕用DNA指紋法預測慢性粒cell性白血病骨髓移植術後復發,取得了成功。 3.5 腫瘤的研究 腫瘤是多因素、多階段的變化過程,病因復雜、變化多樣,但歸根到底還是在DNA的變化上。一般說來,癌組織、轉移灶與正常組織或外周血細胞DNA指紋有差別,常見的是某條帶或幾條帶的缺失,某一條或某幾條帶密度降低,或者癌組織中出現新的帶。Thein等〔24〕用33.6和33.15為探針研究患者DNA指紋譜變化,發現胃腸腫瘤患者癌組織DNA指紋譜全有改變,並認為體細胞突 變還有種屬特異性。劉霜等〔25〕應用RAPD(隨機擴增多態性DNA)分析技術對6例肝癌患者的癌組織與非癌組織進行分析,發現所有肝癌組織基因組DNA的RAPD指紋圖譜均存在差異,其中3例配對肝癌基因組中均存在一相同的0.9Kb的隨機擴增片段。楊建廠等〔8〕用APHDFF技術對28例確診為鼻咽癌病人血DNA指紋圖的檢測,發現有3條DNA片段出現的頻率明顯低於健康人群。王黛等〔26〕用LE11.8、MYO和Mb探針,經Southern雜交法檢測12例兒童急性粒cell白血病患者的外周血或骨髓細胞的基因重排,結果發現初始或復發與完全緩解時的DNA指紋圖相比,譜帶有增加或減少,從而認為急性粒細胞白血病患兒的白血病細胞存在基因重排。 參考資料:http://..com/question/13180448.html
③ 智能演算法的演算法分類
模擬退火演算法的依據是固體物質退火過程和組合優化問題之間的相似性。物質在加熱的時候,粒子間的布朗運動增強,到達一定強度後,固體物質轉化為液態,這個時候再進行退火,粒子熱運動減弱,並逐漸趨於有序,最後達到穩定。
模擬退火的解不再像局部搜索那樣最後的結果依賴初始點。它引入了一個接受概率p。如果新的點(設為pn)的目標函數f(pn)更好,則p=1,表示選取新點;否則,接受概率p是當前點(設為pc)的目標函數f(pc),新點的目標函數f(pn)以及另一個控制參數「溫度」T的函數。也就是說,模擬退火沒有像局部搜索那樣每次都貪婪地尋找比現在好的點,目標函數差一點的點也有可能接受進來。隨著演算法的執行,系統溫度T逐漸降低,最後終止於某個低溫,在該溫度下,系統不再接受變化。
模擬退火的典型特徵是除了接受目標函數的改進外,還接受一個衰減極限,當T較大時,接受較大的衰減,當T逐漸變小時,接受較小的衰減,當T為0時,就不再接受衰減。這一特徵意味著模擬退火與局部搜索相反,它能避開局部極小,並且還保持了局部搜索的通用性和簡單性。
在物理上,先加熱,讓分子間互相碰撞,變成無序狀態,內能加大,然後降溫,最後的分子次序反而會更有序,內能比沒有加熱前更小。就像那隻兔子,它喝醉後,對比較近的山峰視而不見,迷迷糊糊地跳一大圈子,反而更有可能找到珠峰。
值得注意的是,當T為0時,模擬退火就成為局部搜索的一個特例。
模擬退火的偽碼表達:
procere simulated annealing
begin
t:=0;
initialize temperature T
select a current string vc at random;
evaluate vc;
repeat
repeat
select a new string vn in the neighborhood of vc; (1)
if f(vc)<f(vn)
then vc:=vn;
else if random [0,1] <exp ((f (vn)-f (vc))/T) (2)
then vc:=vn;
until (termination-condition) (3)
T:=g(T,t); (4)
T:=t+1;
until (stop-criterion) (5)
end;
上面的程序中,關鍵的是(1)新狀態產生函數,(2)新狀態接受函數,(3)抽樣穩定準則,(4)退溫函數,(5)退火結束准則(簡稱三函數兩准則)是直接影響優化結果的主要環節。雖然實驗結果證明初始值對於最後的結果沒有影響,但是初溫越高,得到高質量解的概率越大。所以,應該盡量選取比較高的初溫。
上面關鍵環節的選取策略:
(1)狀態產生函數:候選解由當前解的鄰域函數決定,可以取互換,插入,逆序等操作產生,然後根據概率分布方式選取新的解,概率可以取均勻分布、正態分布、高斯分布、柯西分布等。
(2)狀態接受函數:這個環節最關鍵,但是,實驗表明,何種接受函數對於最後結果影響不大。所以,一般選取min [1, exp ((f (vn)-f (vc))/T)]。
(3)抽樣穩定準則:一般常用的有:檢驗目標函數的均值是否穩定;連續若干步的目標值變化較小;規定一定的步數;
(4)退溫函數:如果要求溫度必須按照一定的比率下降,SA演算法可以採用,但是溫度下降很慢;快速SA中,一般採用 。目前,經常用的是 ,是一個不斷變化的值。
(5)退火結束准則:一般有:設置終止溫度;設置迭代次數;搜索到的最優值連續多次保持不變;檢驗系統熵是否穩定。
為了保證有比較優的解,演算法往往採取慢降溫、多抽樣、以及把「終止溫度」設的比較低等方式,導致演算法運行時間比較長,這也是模擬退火的最大缺點。人喝醉了酒辦起事來都不利索,何況兔子? 「物競天擇,適者生存」,是進化論的基本思想。遺傳演算法就是模擬自然界想做的事。遺傳演算法可以很好地用於優化問題,若把它看作對自然過程高度理想化的模擬,更能顯出它本身的優雅——雖然生存競爭是殘酷的。
遺傳演算法以一種群體中的所有個體為對象,並利用隨機化技術指導對一個被編碼的參數空間進行高效搜索。其中,選擇、交叉和變異構成了遺傳演算法的遺傳操作;參數編碼、初始群體的設定、適應度函數的設計、遺傳操作設計、控制參數設定五個要素組成了遺傳演算法的核心內容。作為一種新的全局優化搜索演算法,遺傳演算法以其簡單通用、健壯性強、適於並行處理以及高效、實用等顯著特點,在各個領域得到了廣泛應用,取得了良好效果,並逐漸成為重要的智能演算法之一。
遺傳演算法的偽碼:
procere genetic algorithm
begin
initialize a group and evaluate the fitness value ; (1)
while not convergent (2)
begin
select; (3)
if random[0,1]<pc then
crossover; (4)
if random (0,1)<pm then
mutation; (5)
end;
end
上述程序中有五個重要的環節:
(1)編碼和初始群體的生成:GA在進行搜索之前先將解空間的解數據表示成遺傳空間的基因型串結構數據,這些串結構數據的不同組合便構成了不同的點。然後隨機產生N個初始串結構數據,每個串結構數據稱為一個個體, N個體構成了一個群體。GA以這N個串結構數據作為初始點開始迭代。
比如,旅行商問題中,可以把商人走過的路徑進行編碼,也可以對整個圖矩陣進行編碼。編碼方式依賴於問題怎樣描述比較好解決。初始群體也應該選取適當,如果選取的過小則雜交優勢不明顯,演算法性能很差(數量上佔了優勢的老鼠進化能力比老虎強),群體選取太大則計算量太大。
(2)檢查演算法收斂准則是否滿足,控制演算法是否結束。可以採用判斷與最優解的適配度或者定一個迭代次數來達到。
(3)適應性值評估檢測和選擇:適應性函數表明個體或解的優劣性,在程序的開始也應該評價適應性,以便和以後的做比較。不同的問題,適應性函數的定義方式也不同。根據適應性的好壞,進行選擇。選擇的目的是為了從當前群體中選出優良的個體,使它們有機會作為父代為下一代繁殖子孫。遺傳演算法通過選擇過程體現這一思想,進行選擇的原則是適應性強的個體為下一代貢獻一個或多個後代的概率大。選擇實現了達爾文的適者生存原則。
(4)雜交:按照雜交概率(pc)進行雜交。雜交操作是遺傳演算法中最主要的遺傳操作。通過雜交操作可以得到新一代個體,新個體組合了其父輩個體的特性。雜交體現了信息交換的思想。
可以選定一個點對染色體串進行互換,插入,逆序等雜交,也可以隨機選取幾個點雜交。雜交概率如果太大,種群更新快,但是高適應性的個體很容易被淹沒,概率小了搜索會停滯。
(5)變異:按照變異概率(pm)進行變異。變異首先在群體中隨機選擇一個個體,對於選中的個體以一定的概率隨機地改變串結構數據中某個串的值。同生物界一樣,GA中變異發生的概率很低。變異為新個體的產生提供了機會。
變異可以防止有效基因的缺損造成的進化停滯。比較低的變異概率就已經可以讓基因不斷變更,太大了會陷入隨機搜索。想一下,生物界每一代都和上一代差距很大,會是怎樣的可怕情形。
就像自然界的變異適和任何物種一樣,對變數進行了編碼的遺傳演算法沒有考慮函數本身是否可導,是否連續等性質,所以適用性很強;並且,它開始就對一個種群進行操作,隱含了並行性,也容易找到「全局最優解」。 為了找到「全局最優解」,就不應該執著於某一個特定的區域。局部搜索的缺點就是太貪婪地對某一個局部區域以及其鄰域搜索,導致一葉障目,不見泰山。禁忌搜索就是對於找到的一部分局部最優解,有意識地避開它(但不是完全隔絕),從而獲得更多的搜索區間。兔子們找到了泰山,它們之中的一隻就會留守在這里,其他的再去別的地方尋找。就這樣,一大圈後,把找到的幾個山峰一比較,珠穆朗瑪峰脫穎而出。
當兔子們再尋找的時候,一般地會有意識地避開泰山,因為他們知道,這里已經找過,並且有一隻兔子在那裡看著了。這就是禁忌搜索中「禁忌表(tabu list)」的含義。那隻留在泰山的兔子一般不會就安家在那裡了,它會在一定時間後重新回到找最高峰的大軍,因為這個時候已經有了許多新的消息,泰山畢竟也有一個不錯的高度,需要重新考慮,這個歸隊時間,在禁忌搜索裡面叫做「禁忌長度(tabu length)」;如果在搜索的過程中,留守泰山的兔子還沒有歸隊,但是找到的地方全是華北平原等比較低的地方,兔子們就不得不再次考慮選中泰山,也就是說,當一個有兔子留守的地方優越性太突出,超過了「best to far」的狀態,就可以不顧及有沒有兔子留守,都把這個地方考慮進來,這就叫「特赦准則(aspiration criterion)」。這三個概念是禁忌搜索和一般搜索准則最不同的地方,演算法的優化也關鍵在這里。
偽碼表達:
procere tabu search;
begin
initialize a string vc at random,clear up the tabu list;
cur:=vc;
repeat
select a new string vn in the neighborhood of vc;
if va>best_to_far then {va is a string in the tabu list}
begin
cur:=va;
let va take place of the oldest string in the tabu list;
best_to_far:=va;
end else
begin
cur:=vn;
let vn take place of the oldest string in the tabu list;
end;
until (termination-condition);
end;
以上程序中有關鍵的幾點:
(1)禁忌對象:可以選取當前的值(cur)作為禁忌對象放進tabu list,也可以把和當然值在同一「等高線」上的都放進tabu list。
(2)為了降低計算量,禁忌長度和禁忌表的集合不宜太大,但是禁忌長度太小容易循環搜索,禁忌表太小容易陷入「局部極優解」。
(3)上述程序段中對best_to_far的操作是直接賦值為最優的「解禁候選解」,但是有時候會出現沒有大於best_to_far的,候選解也全部被禁的「死鎖」狀態,這個時候,就應該對候選解中最佳的進行解禁,以能夠繼續下去。
(4)終止准則:和模擬退火,遺傳演算法差不多,常用的有:給定一個迭代步數;設定與估計的最優解的距離小於某個范圍時,就終止搜索;當與最優解的距離連續若干步保持不變時,終止搜索;
禁忌搜索是對人類思維過程本身的一種模擬,它通過對一些局部最優解的禁忌(也可以說是記憶)達到接納一部分較差解,從而跳出局部搜索的目的。 人工神經網路(Artificial Neural Network,ANN)
神經網路從名字就知道是對人腦的模擬。它的神經元結構,它的構成與作用方式都是在模仿人腦,但是也僅僅是粗糙的模仿,遠沒有達到完美的地步。和馮·諾依曼機不同,神經網路計算非數字,非精確,高度並行,並且有自學習功能。
生命科學中,神經細胞一般稱作神經元,它是整個神經結構的最基本單位。每個神經細胞就像一條胳膊,其中像手掌的地方含有細胞核,稱作細胞體,像手指的稱作樹突,是信息的輸入通路,像手臂的稱作軸突,是信息的輸出通路;神經元之間錯綜復雜地連在一起,互相之間傳遞信號,而傳遞的信號可以導致神經元電位的變化,一旦電位高出一定值,就會引起神經元的激發,此神經元就會通過軸突傳出電信號。
而如果要用計算機模仿生物神經,就需要人工的神經網路有三個要素:(1)形式定義人工神經元;(2)給出人工神經元的連接方式,或者說給出網路結構;(3)給出人工神經元之間信號強度的定義。
歷史上第一個人工神經網路模型稱作M-P模型,非常簡單:
其中,表示神經元i在t時刻的狀態,為1表示激發態,為0表示抑制態;是神經元i和j之間的連接強度;表示神經元i的閾值,超過這個值神經元才能激發。
這個模型是最簡單的神經元模型。但是功能已經非常強大:此模型的發明人McCulloch和Pitts已經證明,不考慮速度和實現的復雜性,它可以完成當前數字計算機的任何工作。
以上這個M-P模型僅僅是一層的網路,如果從對一個平面進行分割的方面來考慮的話,M-P網路只能把一個平面分成個半平面,卻不能夠選取特定的一部分。而解決的辦法就是「多層前向網路」。
為了讓這種網路有合適的權值,必須給網路一定的激勵,讓它自己學習,調整。一種方法稱作「向後傳播演算法(Back Propagation,BP)」,其基本思想是考察最後輸出解和理想解的差異,調整權值,並把這種調整從輸出層開始向後推演,經過中間層,達到輸入層。
可見,神經網路是通過學習來達到解決問題的目的,學習沒有改變單個神經元的結構和工作方式,單個神經元的特性和要解決的問題之間也沒有直接聯系,這里學習的作用是根據神經元之間激勵與抑制的關系,改變它們的作用強度。學習樣本中的任何樣品的信息都包含在網路的每個權值之中。
BP演算法中有考察輸出解和理想解差異的過程,假設差距為w,則調整權值的目的就是為了使得w最小化。這就又包含了前文所說的「最小值」問題。一般的BP演算法採用的是局部搜索,比如最速下降法,牛頓法等,當然如果想要得到全局最優解,可以採用模擬退火,遺傳演算法等。當前向網路採用模擬退火演算法作為學習方法的時候,一般成為「波爾茲曼網路」,屬於隨機性神經網路。
在學習BP演算法學習的過程中,需要已經有一部分確定的值作為理想輸出,這就好像中學生在學習的時候,有老師的監督。如果沒有了監督,人工神經網路該怎麼學習?
就像沒有了宏觀調控,自由的市場引入了競爭一樣,有一種學習方法稱作「無監督有競爭的學習」。在輸入神經元i的若干個神經元之間開展競爭,競爭之後,只有一個神經元為1,其他均為0,而對於失敗的神經元,調整使得向對競爭有利的方向移動,則最終也可能在一次競爭中勝利;
人工神經網路還有反饋網路如Hopfield網路,它的神經元的信號傳遞方向是雙向的,並且引入一個能量函數,通過神經元之間不斷地相互影響,能量函數值不斷下降,最後能給出一個能量比較低的解。這個思想和模擬退火差不多。
人工神經網路應用到演算法上時,其正確率和速度與軟體的實現聯系不大,關鍵的是它自身的不斷學習。這種思想已經和馮·諾依曼模型很不一樣。 粒子群優化演算法(PSO)是一種進化計算技術(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源於對鳥群捕食的行為研究 。該演算法最初是受到飛鳥集群活動的規律性啟發,進而利用群體智能建立的一個簡化模型。粒子群演算法在對動物集群活動行為觀察基礎上,利用群體中的個體對信息的共享使整個群體的運動在問題求解空間中產生從無序到有序的演化過程,從而獲得最優解。
PSO同遺傳演算法類似,是一種基於迭代的優化演算法。系統初始化為一組隨機解,通過迭代搜尋最優值。但是它沒有遺傳演算法用的交叉(crossover)以及變異(mutation),而是粒子在解空間追隨最優的粒子進行搜索。同遺傳演算法比較,PSO的優勢在於簡單容易實現並且沒有許多參數需要調整。目前已廣泛應用於函數優化,神經網路訓練,模糊系統控制以及其他遺傳演算法的應用領域。
PSO模擬鳥群的捕食行為。設想這樣一個場景:一群鳥在隨機搜索食物。在這個區域里只有一塊食物。所有的鳥都不知道食物在那裡。但是他們知道當前的位置離食物還有多遠。那麼找到食物的最優策略是什麼呢。最簡單有效的就是搜尋目前離食物最近的鳥的周圍區域。
PSO從這種模型中得到啟示並用於解決優化問題。PSO中,每個優化問題的解都是搜索空間中的一隻鳥。我們稱之為「粒子」。所有的粒子都有一個由被優化的函數決定的適應值(fitness value),每個粒子還有一個速度決定他們飛翔的方向和距離。然後粒子們就追隨當前的最優粒子在解空間中搜索。
PSO 初始化為一群隨機粒子(隨機解)。然後通過迭代找到最優解。在每一次迭代中,粒子通過跟蹤兩個極值來更新自己。第一個就是粒子本身所找到的最優解,這個解叫做個體極值pBest。另一個極值是整個種群目前找到的最優解,這個極值是全局極值gBest。另外也可以不用整個種群而只是用其中一部分作為粒子的鄰居,那麼在所有鄰居中的極值就是局部極值。 模擬退火,遺傳演算法,禁忌搜索,神經網路在解決全局最優解的問題上有著獨到的優點,並且,它們有一個共同的特點:都是模擬了自然過程。模擬退火思路源於物理學中固體物質的退火過程,遺傳演算法借鑒了自然界優勝劣汰的進化思想,禁忌搜索模擬了人類有記憶過程的智力過程,神經網路更是直接模擬了人腦。
它們之間的聯系也非常緊密,比如模擬退火和遺傳演算法為神經網路提供更優良的學習演算法提供了思路。把它們有機地綜合在一起,取長補短,性能將更加優良。
這幾種智能演算法有別於一般的按照圖靈機進行精確計算的程序,尤其是人工神經網路,是對計算機模型的一種新的詮釋,跳出了馮·諾依曼機的圈子,按照這種思想來設計的計算機有著廣闊的發展前景
④ 如何建立自己的演算法交易
在股票市場中交易過兩、三年的人,幾乎都有一套自己的交易方法。
雖然你有方法但如果還沒有形成交易系統,那也先別著急去勉強建立,因交易系統是自然形成的.並不可人為刻意能建起來的。就好比計劃經濟與市場經濟不斷的適應市場的變化,時間長了,如果你還能在市場中生存.交易系統自然形成。而如果過早的固定自己的交易行為使之系統化,固定不變,在沒有充分的了解市場的前提下,面臨的只能是品嘗失敗。
一套自己的交易系統,不是一勞永益的蓋世絕招,而是你對市場每一個細微之處都能深入了解---達到很細微.並且很全面。要總結經驗,形成框架,這個框架就是你對市場的初步認識,它決定著你的行為,也就是你的交易。隨著研究的深入,逐漸系統化,而這個框架至關重要,決定你今後的發展方向,不要去計劃什麼,在你眼前只有一個目標,深入分析市場,不斷實踐總結,周而復始,直到有一天你的交易系統就會自然成型。
曾有一個用波浪理論的高手和我交流,他說其經常能夠預測到價格波動的高低點,並且因此而獲利。但總體上的交易成績並不是很理想。
在我的大多數朋友開始向我學習的時候,幾乎都有一些實戰經驗,事實上,很多人的成績相當不錯。但是在交易的系統性方面,卻有明顯的欠缺。
如果你想長期穩定的獲利,那麼整體的交易應該是一個過程,而絕不是簡簡單單的一次預測或者一次全倉買入。其間至少包括:
另一方面,大多數投機者相信有一個通向市場的魔術:一個指標,一個形態,或者一個機械的交易系統,他們還肯定一小部分人正在使用著-------我在網上還見過售價24萬元的一個公式,據說可百戰百勝--------他們努力的想揭開這個魔術的秘密,從此而獲利。
正確答案是:有,且答案就在你自己身上。
我可明確的告訴你:成功交易的一個秘密就是找到一套適合你的交易系統。這交易系統是非機械的,適合你自己個性的,有完善的交易思想、細致的市場分析和整體操作方案的。
交易系統,或說系統的交易方法,才是你長期穩定獲利的正確方法。