導航:首頁 > 源碼編譯 > 演算法研究歡迎交流

演算法研究歡迎交流

發布時間:2022-10-17 11:32:29

① 如何做演算法研究

一、DSP與TI

為什麼提到電機控制很多人首先會聯想到DSP?而談到DSP控制總繞不過TI,首先DSP晶元是一種具有特殊結構的微處理器。該晶元的內部採用程序和數據分開的哈佛結構,具有專門的硬體乘法器,提供特殊的指令,可以用來快速地實現各種數字信號處理演算法。基於DSP晶元構成的控制系統事實上是一個單片系統,因此整個控制所需的各種功能都可由DSP晶元來實現。因此,可以減小目標系統的體積,減少外部元件的個數,增加系統的可靠性。優點是穩定性好、精度高、處理速度快,目前在變頻器、伺服行業有大量使用。主流的DSP廠家有美國德州儀器(Texas Instruments,TI)、ADI、motorola、傑爾等其他廠商,其中TI的TMS320系列以數字控制和運動控制為主,以價格低廉、簡單易用、功能強大很是受歡迎。

二、常見的電機控制演算法及研究方法

1、電機控制按工作電源種類劃分:可分為直流電機和交流電機。按結構和工作原理可劃分:可分為直流電動機、非同步電動機、同步電動機。不同的電機所採用的驅動方式也是不相同的,這次主要介紹伺服電機,伺服主要靠脈沖來定位,伺服電機接收到1個脈沖,就會旋轉1個脈沖對應的角度,從而實現位移,因此,伺服電機本身具備發出脈沖的功能,所以伺服電機每旋轉一個角度,都會發出對應數量的脈沖,同時又與伺服電機接受的脈沖形成了呼應,或者叫閉環,進而很精確的控制電機的轉動,從而實現精確的定位,可以達到0.001mm。伺服電機相比較普通電機優勢在於控制精度、低頻扭矩,過載能力,響應速度等方面,所以被廣泛使用於機器人,數控機床,注塑,紡織等行業
三、PWM控制及測試結果

脈沖寬度調制是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術,廣泛應用在從測量、通信到功率控制與變換的許多領域中,脈沖寬度調制是一種模擬控制方式,其根據相應載荷的變化來調制晶體管基極或MOS管柵極的偏置,來實現晶體管或MOS管導通時間的改變,從而實現開關穩壓電源輸出的改變

② 演算法的研究方法和技術有哪些

論文的研究方法與技術路線有哪些
1、研究背景 研究背景即提出問題,闡述研究該課題的原因。研究背景包括理論背景和現實需要。還要綜述國內外關於同類課題研究的現狀:①人家在研究什麼、研究到什麼程度?②找出你想研究而別人還沒有做的問題。③他人已做過,你認為做得不夠

③ 演算法設計的研究內容

嘿嘿 是昊哥的作業吧 O(∩_∩)O哈哈~

④ CCCF專欄 | 智能計算系統——一門人工智慧專業的系統課程

我國人工智慧底層研究能力缺失的現象嚴重,最根本的原因在於這方面人才教育培養的缺失。2018年中,作者陳雲霽在中國科學院大學開設了一門「智能計算系統」課程。這門課程受到了學生的歡迎,有很多選不上課的學生跟著旁聽了整個學期。

關鍵詞:智能計算系統 人工智慧 專業課程

編者按 :5年前,本文作者陳雲霽受邀在CCCF專欄上發表了一篇題為《體系結構研究者的人工智慧之夢》 1 的文章,第一次公開介紹他從通用處理器轉向深度學習處理器方向的心路歷程(那篇文章後來也被收錄進了《CCCF優秀文章精選》)。經過5年的努力,陳雲霽在深度學習處理器方向作出了國際公認的貢獻:他的學術論文被頂級會議ISCA』18超過四分之一的論文引用,他的技術成果被應用到華為、曙光、阿里等近億台智能手機和伺服器中。他因此被Science雜志評價為智能晶元的「先驅」和「領導者」。現在,當深度學習處理器已經成為學術界和工業界的熱點時,陳雲霽再次轉身,邁向人工智慧系統課程教學的新舞台。這篇文章將和大家分享他走向這個新舞台的心路歷程。

智能計算系統課程的開設

我是一名中國科學院計算技術研究所的青年科研人員,主要從事計算機系統結構和人工智慧交叉方向的基礎研究。看到本文的標題和作者單位,大家可能會覺得有一點奇怪:作者和人工智慧專業課程有什麼關系?因為傳統意義上,上課是高校教師的職責,中國科學院的員工除非是自願擔任了中國科學院大學(國科大)的崗位教授,否則並沒有上課的義務。

驅使我主動思考人工智慧專業課程設計的最主要的原因,是這樣一個眾所周知的現象:越是人工智慧上層(演算法層、應用層,見圖1)的研究,我國研究者對世界作出的貢獻越多;越是底層(系統層、晶元層),我國研究者的貢獻越少。在各種ImageNet比賽中,我國很多機構的演算法模型已經呈現「霸榜」的趨勢,可以說代表了世界前沿水平。但這些演算法模型絕大部分都是在CUDA 2 編程語言、Tensorflow編程框架以及GPU之上開發的。在這些底層「硬 科技 」中,我國研究者對世界的貢獻就相對少了很多。底層研究能力的缺失不僅會給我國人工智慧基礎研究拖後腿,更重要的是,將使得我國智能產業成為一個空中樓閣,走上信息產業受核心晶元和操作系統制約的老路。

圖1 人工智慧研究大致層次

我國人工智慧底層研究能力缺失的原因很多,我認為最根本的原因在於這方面的人才教育培養的缺失。沒有肥沃的土壤,就長不出參天大樹。沒有具備系統思維的人工智慧專業學生,我國就難以出現傑夫·迪恩(Jeff Dean)這樣的智能計算系統大師,也不會產生有國際競爭力的智能系統產品。因此,在人工智慧專業學生的培養上,我們應當主動作為去改變局面。

2018年我國有35個高校設立了人工智慧本科專業,這是重新思考和梳理人工智慧培養體系的一次重大機遇。就我目前的了解,大部分高校在考慮人工智慧課程體系時,採用的是純演算法、純應用的教學思路。這樣培養出來的學生,仍然是偏向上層應用開發,對智能計算系統缺乏融會貫通的理解。

事實上,各個高校不乏有識之士,在課程設計上繞開系統課程往往受制於三大客觀困難:一是國內還沒有太多人工智慧系統類的課程可供參考,二是國內缺乏人工智慧系統類課程的師資,三是國際上缺乏人工智慧系統課程的教材。

基於自己的研究背景,我對人工智慧的演算法和系統都有一些粗淺的涉獵。我是否能為解決人工智慧系統課程、師資、教材上的困難作一點微薄的貢獻?是否可以身體力行地培養一些具備系統思維和能力的人工智慧專業學生呢?

因此,2018年中,我向中國科學院大學申請開設一門人工智慧專業的系統課程,名為「智能計算系統」(曾名「智能計算機」),希望能培養學生對智能計算完整軟硬體技術棧(包括基礎智能演算法、智能計算編程框架、智能計算編程語言、智能晶元體系結構等)融會貫通的理解。這門課程受到了學生的歡迎,有很多選不上課的學生跟著旁聽了整個學期。讓我尤其感動的是,有其他研究所的學生慕名自發地從中關村跑到懷柔來聽課,上一次課來回車程就要三個小時,回到中關村都是深夜。這也許能說明這門課對學生來說有一定吸引力,大家在聽課中有真正的收獲。

人工智慧專業學生培養和課程體系

人工智慧專業的課程體系設計應該服務於學生培養目標。那麼高校人工智慧專業應該培養什麼樣的學生?

這個問題可能還沒有統一的答案。對比和人工智慧專業非常接近的計算機專業,高校的計算機專業培養的顯然不是計算機的使用者,而是計算機整機或者子系統的研究者、設計者和製造者。

我國計算機專業的前輩在六十多年前開始設立計算機專業時,就高瞻遠矚地設計了一個軟硬結合的方案來培養計算機整機或者子系統的研究者、設計者和製造者。這套方案經過六十年的演進,依然基本保持了當年的初衷。今天,各個高校的計算機專業,基本都開設了計算機組成原理、操作系統、編譯原理、計算機體系結構等系統類的必修課程(見圖2)。也就是說,雖然計算機專業的學生畢業後大多從事軟體開發工作,但是他們對計算機硬體系統還是有基礎的了解的。

圖2 網易雲課堂上的計算機專業培養方案 3

人工智慧專業學生的培養目標應當是人工智慧系統或者子系統的研究者、設計者和製造者。只有實現這個目標,高校培養的人才才能源源不斷地全面支撐我國人工智慧的產業和研究。為了實現這個目標,人工智慧專業的課程設計應當包括軟硬兩條線(就像計算機專業)。如果人工智慧專業只開設機器學習演算法、視聽覺應用等課程,那充其量只能算是「人工智慧應用專業」或者「人工智慧演算法專業」。畢竟演算法只是冰山露出水面的一角,冰山底下90%還是硬體和系統。

就拿擁有世界上最大的AI演算法研究團隊的公司谷歌來說,谷歌董事長約翰·軒尼詩(John Hennessy)是計算機體系結構科學家,圖靈獎得主;谷歌AI的總負責人傑夫·迪恩(Jeff Dean)是計算機系統研究者;谷歌AI最令人矚目的三個進展(Tensorflow, AlphaGo, TPU)都是系統,而不僅僅是某個特定演算法,演算法只是系統的一個環節。因此,從人工智慧國際學術主流來看,系統的重要性是不亞於演算法的。

只學過演算法的學生或許對於調模型參數很在行,但是對一個演算法的耗時、耗電毫無感覺。這樣的學生不具備把一個演算法在工業系統上應用起來的基本功(因為一個演算法真正要用起來必須滿足延遲和能耗的限制)。

只有加入了系統線的課程,學生才能真正理解人工智慧是怎樣工作的,包括一個人工智慧演算法到底如何調用編程框架,編程框架又是怎麼和操作系統打交道,編程框架里的運算元又是怎樣一步步在晶元上運行起來。這樣的學生能親手構建出復雜的系統或者子系統,在科研上會有更大的潛力,在產業里也會有更強的競爭力。正如業界所雲:「會用Tensorflow每年賺30萬人民幣,會設計Tensorflow每年賺30萬美元。」

有很多老師和我說:「人工智慧專業確實應當有一些系統類的課程。但國內從來沒有開過這樣的課,也沒有合適的教材,我們學院也缺乏相應的老師來教這樣的課程。」這是很實際的三個客觀困難,但不應當影響我們對人工智慧專業的課程設計。

從學生角度講,人工智慧專業開設什麼課程,應該是看國家和企業需要學生會什麼,而不完全是看老師現在會什麼。六十年前,我國沒有幾個人見過計算機,更別說開課了。但為了兩彈一星等科學和工程計算任務,我國依然成立了中科院計算所,並在計算所辦計算機教師培訓班,在清華大學、中國科學技術大學等高校(此處恕不能一一列全)開設計算機專業,這才有了今天我國巨大的計算機產業。

從教師角度講,人工智慧的系統研究已經成為國際學術熱點,講授這類課程是一個教學相長的過程,能幫助教師走到國際學術前沿。今年美國計算機方向Top4高校(斯坦福大學、卡耐基梅隆大學、加州大學伯克利分校和麻省理工學院)以及其他多個國際單位的研究者聯合發布了一份名為「Machine Learning System(機器學習系統)」的白皮書。在這樣的新興熱門方向布局培育一批青年教師,無疑對提升所在高校乃至我國在人工智慧學術界的影響力有巨大幫助。

因此,不論是對於人工智慧專業的學生還是教師來說,把系統類課程開起來,都是有必要,也是有實際意義的。

什麼是智能計算系統

簡單來說,智能計算系統就是人工智慧的物質載體。現階段的智能計算系統通常是集成通用CPU和智能晶元(英偉達GPU或寒武紀MLU等)的異構系統,並向開發者提供智能計算編程框架和編程語言等。之所以要在通用CPU之外加上智能晶元,主要是因為通用CPU難以滿足人工智慧計算不斷增長的速度和能耗需求。例如,2012年穀歌大腦用了1.6萬個CPU核運行了數天來訓練怎麼識別貓臉,這對於工業應用來說是很難接受的。顯然,要想真正把人工智慧技術用起來,必須使用異構的智能計算系統。而為了降低異構智能計算系統的編程難度,就需要有面向智能計算的編程框架和編程語言。

事實上,智能計算系統已經以種種形態廣泛滲透到我們的生活中了。IBM的超級計算機Summit用機器學習方法做天氣預報,BAT的數據中心上運行著大量的廣告推薦任務,華為的手機上集成寒武紀深度學習處理器來處理圖像分析和語音識別,特斯拉的自動駕駛系統……都可以看成是智能計算系統。在智能時代,中國乃至全世界都需要大批的智能計算系統的開發者、設計者、應用者。

智能計算系統的發展並不是一蹴而就的事情。20世紀80年代面向符號主義智能處理的專用計算機(Prolog機和LISP機)可以被看成是第一代智能計算系統。但是當時人工智慧缺乏實際應用,演算法也不成熟,而且當時摩爾定律還處於飛速發展階段,專用計算機相對每18個月性能就能翻番的通用CPU並沒有太大優勢。因此,第一代智能計算系統逐漸退出了 歷史 舞台。

「智能計算系統」課程重點關注的是第二代智能計算系統,主要是面向深度學習等機器學習任務的計算機。相對於30年前的第一代智能計算系統,當今的第二代深度學習智能計算系統可謂是碰到了天時地利人和。當前圖像識別、語音識別、自然語言理解、 游戲 、廣告推薦等人工智慧應用已開始落地,深度學習演算法發展速度令人應接不暇。尤其重要的是,通用CPU性能發展已經趨停,要支撐不斷發展的深度學習演算法,必須要靠智能計算系統。因此,深度學習智能計算系統會在很長一個階段里都是學術界和產業界關注的焦點。「智能計算系統」課程將能幫助學生深刻理解深度學習智能計算系統。

第二代智能計算系統主要支持深度學習等機器學習任務。未來如果人類真的要在通用人工智慧道路上再往前走一步,那未來的第三代智能計算系統需要支持的演算法將遠遠超出機器學習的范疇,必須包括聯想、推理、涌現等高級認知智能演算法。我個人猜測,第三代智能計算系統可能會是孵化通用人工智慧的虛擬世界環境。「智能計算系統」課程或許能激發學生的好奇心,吸引學生投身於未來的第三代智能計算系統的研究中。

智能計算系統課程概況

「智能計算系統」這門課程主要是面向人工智慧、計算機和軟體工程專業的高年級本科生或研究生。課程目標是培養學生對智能計算完整軟硬體技術棧(包括基礎智能演算法、智能計算編程框架、智能計算編程語言、智能晶元體系結構等)融會貫通的理解,成為智能計算系統(子系統)的設計者和開發者。

課程的前序課程包括C/C++編程語言、計算機組成原理和演算法導論(或機器學習)。課程的課時相對比較靈活,可以是大學期上一個學期(40學時,課程提綱見表1),可以是小學期集中上一周(20學時),也可以嵌入到其他機器學習課程中作為一個補充。對於20學時的短期學習,課程希望學生能對智能計算系統「知其然」,主要是面向實際操作;對於40學時的長期學習,課程希望學生能對智能計算系統「知其所以然」,因此要把機理講透。

表1 智能計算系統課程提綱(40學時)

在課程講授上,應該秉承兩個原則。一是應用驅動。一門好的工程學科的課程應當是學以致用的,尤其是「智能計算系統」這樣的課程,如果上完之後只學會了一些定理和公式,那基本沒效果。另外一個原則是全棧貫通。過去計算機專業課程設計有個問題,就是條塊分割明顯,比如操作系統和計算機體系結構是割裂的,操作系統對計算機體系結構提出了什麼要求,計算機體系結構對操作系統有哪些支持,沒有一門課把這些串起來。「智能計算系統」作為高年級本科生(或研究生)課程,有義務幫助學生把過去所有的人工智慧軟硬體知識都串起來,形成整體理解。

對於「智能計算系統」課程,驅動範例是一個抓手。在國科大上課時,我們選擇了視頻風格遷移作為驅動範例。簡單來說,風格遷移可以保留一個視頻中每幀圖片的基本內容,但是把圖片的繪畫風格改掉(比如從普通照片遷移成畢加索風格或者中國水墨畫風格等,見圖3)。對於學生來說,這是很有意思又在能力范圍之內的一個驅動範例。

圖3 從普通照片到畢加索風格遷移的驅動範例

我們圍繞如何實現視頻實時風格遷移,一步步帶著學生寫出演算法,移植到編程框架上,為編程框架編寫運算元,再為運算元設計晶元,構建多晶元系統,並測評這個系統的速度、能效和精度上的優勢和劣勢,然後進行系統的閉環迭代優化。最後再給大家一個智能計算系統的實驗環境,包括攝像頭和智能晶元開發板,學生就可以實現一個對攝像頭拍攝的視頻進行畫風實時轉換的「半產品」應用了。

結語

我的母親是一位中學教師。我自己成長過程中,對我幫助非常大的幾位前輩恩師陳國良、胡偉武和徐志偉,也都是常年浸淫在教學第一線,有著極大教學熱情的名師。從小到大,這些長輩的言傳身教,讓我深刻地感受到,教育是一項偉大的事業,能深刻地改變學生、改變行業、改變 社會 、改變國家、改變人類。今天我們教給學生的那些人工智慧知識,可能會影響明天我國在智能時代的競爭力。因此,雖然手頭有不少基礎研究任務,但我還是情願把培養人工智慧的系統人才當成自己未來最重要的使命,把自己絕大部分時間精力花在「智能計算系統」這門課程在各個高校的講授和推廣上。

非常欣慰的是,「智能計算系統」這樣新生的一門課程,雖然還有很多缺陷,但還是得到了很多師生的支持和鼓勵。我們已在或將在中國科學院大學、北京大學、北京航空航天大學、天津大學、中國科學技術大學、南開大學、北京理工大學、華中 科技 大學等多個高校聯合開設這門課程。今年我們還會開放這門課程的所有PPT、講義、教材、錄像、代碼、雲平台和開發板,供老師們批評指正。非常歡迎大家給我發郵件,提出寶貴意見。

未來,我們希望和更多培養人工智慧專業學生的高校合作,廣泛參與人工智慧系統課程的交流研討,共同提高人工智慧系統課程的教學水平。相信通過大家的共同努力,一定能解決人工智慧系統課程開設中的實際困難,使得我國未來培養出來的人工智慧人才沒有技術上的短板。

作為一名青年教師,我在教學能力和經驗上與很多教育領域的前輩有著巨大的差距,還需要更多地學習。這門「智能計算系統」課程,對於我國的人工智慧系統能力培養來說,也頂多是起到拋磚引玉的作用。正如魯迅先生在《熱風·隨感錄四十一》中寫給青年的一段話所言:「有一分熱,發一分光,就令螢火一般,也可以在黑暗裡發一點光……倘若有了炬火,出了太陽,我們自然……隨喜贊美這炬火或太陽;因為他照了人類,連我都在內。」

腳註:

1 此文發表在《中國計算機學會通訊》(CCCF) 2014年第5期,https://dl.ccf.org.cn/institude/institudeDetail?id=3738875863074816&_ack=1。

2 CUDA:Compute Unified Device Architecture,計算統一設備架構。

3 參見https://study.163.com/curricula/cs.htm。

作者介紹:

陳雲霽

CCF傑出會員、CCF青年科學家獎獲得者、CCCF編委。中科院計算所研究員。曾獲首屆國家自然科學基金「優秀青年基金」、首屆國家萬人計劃「青年拔尖人才」以及中科院青年人才獎等獎項。主要研究方向為計算機體系結構。[email protected]

點擊 「閱讀原文」 ,加入CCF。

⑤ 異構網路的網路選擇演算法的研究

異構網路中無線資源管理的一個重要研究方向就是網路選擇演算法,網路選擇演算法的研究很廣泛,這里給出了幾個典型的無線網路選擇演算法的類別。 預切換可以有效的減少不必要的切換,並為是否需要執行切換做好准備。通常情況下可以通過當前接收信號強度來預測將來接收信號強度的變化趨勢,來判斷是否需要執行切換。
文獻 中利用多項式回歸演算法對接收信號的強度進行預測,這種方法的計算復雜度較大。文獻 中,利用模糊神經網路來對接收信號強度進行預測,模糊神經網路的演算法最大的問題,收斂較慢,而且計算的復雜度高。文獻 中,利用的是最小二乘演算法(LMS)來預測接收的信號強度,通過迭代的方法,能夠達到快收斂,得到較好的預測。還有在文獻 中,直接採用接收信號強度的斜率來預測接收信號強度,用來估計終端在該網路中的生存時間,但是這種方法太簡單,精度不是很高。 在垂直切換的過程中,對於相同的切換場景,通常會出現現在的已出現過的切換條件,對於其垂直切換的結果,可以應用到當前條件下,這樣可以有效避免的重新執行切換決策所帶來的時延。
文獻[33]中,提出利用用戶連接信息(User Connection Profile,UCP)資料庫用來存儲以前的網路選擇事件。在終端需要執行垂直切換時,首先檢查資料庫中是否存在相同的網路選擇記錄,如果存在可以直接接入最合適的網路。在文獻[34]中,提出了將切換到該網路的持續服務時間和距離該網路的最後一次阻塞時間間隔作為歷史信息記錄下來,根據這些信息,選擇是否有必要進行切換。 由於用戶對網路參數的判斷往往是模糊的,而不是確切的概念,所以通常採用模糊邏輯對參數進行定量分析,將其應用到網路選擇中顯得更加合理。模糊系統組成通常有3個部分組成,分別是模糊化、模糊推理和去模糊化。對於去模糊化的方法通常採用中心平均去模糊化,最後得到網路性能的評價值,根據模糊系統所輸出的結果,選擇最適合的網路。
通常情況下,模糊邏輯與神經網路是相互結合起來應用的,通過模糊邏輯系統的推理規則,對神經網路進行訓練,得到訓練好的神經網路。在垂直切換的判決的時候,利用訓練好的神經網路,輸入相應網路的屬性參數,選擇最適合的網路接入。
基於模糊邏輯和神經網路的策略,可以對多種因素(尤其動態因素)進行動態地控制,並做出自適應的決策,可以有效提高網路選擇的合理性,但該策略最大的缺點是,演算法的實現較為復雜,在電池容量和處理能力均受限的移動設備上是不合適的。 在異構網路選擇中,博弈論是一個重要的研究方向。在博弈論的模型中,博弈中的參與者在追求自身利益最大化的同時,保證自身付出的代價盡量小。參與者的這兩種策略可以通過效用函數和代價函數來衡量。因此通過最大化效用函數和最小化代價函數,來追求利益的最大化。
文獻[36]中提出一種基於博弈論的定價策略和網路選擇方案,該方案中服務提供商(Service Providers,SPs)為了提高自己的利潤需要面臨競爭,它是通過用戶間的合作或者非合作博弈來獲得,在實際的異構網路場景下,用戶和服務提供商SPs之間可以利用博弈模型來表示。Dusit Niyato在文獻[37]中,通過競價機制來進行異構網路資源的管理,這里將業務分成兩種類型,一種是基本業務,另一種類似高質量業務,基本業務的價格是固定的,而高質量業務的價格是動態變化的,它是隨著服務提供商的競爭和合作而變化的。因此這里從合作博弈和非合作博弈兩方面來討論定價機制。Dusit Niyato在文獻[38]中基於進化博弈理論,來解決在帶寬受限情況下,用戶如何在重疊區域進行網路選擇。 網路選擇的目標通常是通過合理分配無線資源來最大化系統的吞吐量,或者最小化接入阻塞概率等,這樣就會涉及網路優化問題。
網路選擇演算法往往是一種多目標決策,用戶希望得到好的服務質量、價格便宜的網路、低的電池功率消耗等。對於多目標決策演算法,通常是不可能使得每個目標同時達到最優,通常的有三種做法:其一,把一些目標函數轉化為限制條件,從而減少目標函數數目;其二,將不同的目標函數規范化後,將規范化後的目標函數相加,得到一個目標函數,這樣就可以利用最優化的方法,得到最優問題的解;其三,將兩者結合起來使用。例如文獻[39]中,採用的是讓系統的帶寬受限,最大化網路內的所有用戶的手機使用時間,即將部分目標函數轉化為限制條件。文獻[40]中,採用的是讓用戶的使用的費用受限,最大化用戶的利益和最小化用戶的代價,這里採用的是上面介紹的第三種方法。 基於策略的網路選擇指的是按照預先規定好的策略進行相應的網路操作。在網路選擇中,通常需要考慮網路負荷、終端的移動性和業務特性等因素。如對於車載用戶通常選擇覆蓋范圍大的無線網路,如WCDMA、WiMAX等;對於實時性要求不高的業務,並且非車載用戶通常選擇WLAN接入。這些均是通過策略來進行網路選擇。
文獻[41, 42]提出了基於業務類型的網路選擇演算法,根據用戶的業務類型為用戶選擇合適的網路。文獻[35]提出基於負載均衡的網路選擇演算法,用戶選擇接入或切換到最小負載因子的網路。[43]提出了一種考慮用戶移動性和業務類型的網路選擇演算法。 多屬性判決策略(Multiple Attribute Decision Making,MADM)是目前垂直切換方面研究最多的領域。多屬性判決策略主要分為基於代價函數的方法和其他方法。
基於代價函數的方法
代價函數一般有兩種構造形式,一種是多屬性參數值的線性組合,如(2.1)式所示;另一種是多屬性參數值的權重指數乘積或者是屬性參數值的對數線性組合,如(2.2)式所示。
(2.1)
(2.2)
其中代表規范化的第個網路的第個屬性值,代表第個屬性的權值。對於屬性的規范化,首先對屬性進行分類,分為效益型、成本型等,然後根據不同的類型的,對參數進行歸一化,採用最多的是線性規范化、極差規范化和向量變換法。關於權值的確定可以分為簡單賦權法(Simple Additive Weighting,SAW)、層次分析法(Analytic Hierarchy Process,AHP)、熵權法、基於方差和均值賦權法。
(1) SAW:用戶根據自己的偏好,確定每個屬性的重要性,通常給出每個參數取值的具體參數值。
(2) AHP:首先分析評價系統中各要素之間關系,建立遞階層次結構;其次對同一層次的各要素之間的重要性進行兩兩比較,構造判斷矩陣;接著由每層判斷矩陣計算相對權重;最後計算系統總目標的合成總權重。
(3) 熵權法:通過求解候選網路中的同一屬性的熵值,熵值的大小表明網路同一屬性的參數值的差異,差別越大,說明該屬性對決策影響越大,相應權值的取值就越大。
(4) 基於方差和均值賦權法:通過求解候選網路中同一屬性參數的均值和方差,結合這兩個參數確定該屬性的重要性程度值,然後再對其進行歸一化,得到每個屬性的參數值。
其他方法
(1) 基於方差和均值賦權法:通過求解候選網路中同一屬性參數的均值和方差,結合這兩個參數確定該屬性的重要性程度值,然後再對其進行歸一化,得到每個屬性的參數值。
(2) 逼近理想解排序法(TOPSIS):首先對參數進行歸一化,從網路的每組屬性參數值里選擇最好的參數組成最優的一組屬性參數,同樣也可以得到最差的一組屬性參數。將每個網路與這兩組參數比較,距離最優參數組越近,並且與最差組越遠,該網路為最合適的網路。
(3) 灰度關聯分析法(GRA):首先對參數進行歸一化,再利用GRA方法,求得每個網路的每個屬性的關聯系數,然後求出每個網路總的關聯系數。根據每個網路總的關聯系數,選擇最適合的網路。
(4) 消去和選擇轉換法(ELECTRE):首先對參數進行歸一化,構造加權的規范化矩陣,確定屬性一致集和不一致集。然後計算一致指數矩陣和劣勢矩陣,最後得到一致指數矩陣和不一致指數矩陣。根據這兩個矩陣,確定網路的優劣關系,選擇最適合的網路。
VIKOR:首先對參數進行歸一化,首先確定最優和最差屬性參數組,然後計算得到每個網路屬性的加權和屬性中最大的參數值,然後利用極差規范化對網路的加權和以及最大屬性值進行歸一化,最後利用歸一化的參數進行加權求和,依據這個值,選擇最合適的網路。

⑥ 最優化理論與演算法貼吧開通了大家一起加入交流吧!

你好,交個朋友,謝謝採納為最佳答案

⑦ 數據挖掘十大經典演算法(1)——樸素貝葉斯(Naive Bayes)

在此推出一個演算法系列的科普文章。我們大家在平時埋頭工程類工作之餘,也可以抽身對一些常見演算法進行了解,這不僅可以幫助我們拓寬思路,從另一個維度加深對計算機技術領域的理解,做到觸類旁通,同時也可以讓我們搞清楚一些既熟悉又陌生的領域——比如數據挖掘、大數據、機器學習——的基本原理,揭開它們的神秘面紗,了解到其實很多看似高深的領域,其實背後依據的基礎和原理也並不復雜。而且,掌握各類演算法的特點、優劣和適用場景,是真正從事數據挖掘工作的重中之重。只有熟悉演算法,才可能對紛繁復雜的現實問題合理建模,達到最佳預期效果。

本系列文章的目的是力求用最干練而生動的講述方式,為大家講解由國際權威的學術組織the IEEE International Conference on Data Mining (ICDM) 於2006年12月評選出的數據挖掘領域的十大經典演算法。它們包括:

本文作為本系列的第一篇,在介紹具體演算法之前,先簡單為大家鋪墊幾個數據挖掘領域的常見概念:

在數據挖掘領域,按照演算法本身的行為模式和使用目的,主要可以分為分類(classification),聚類(clustering)和回歸(regression)幾種,其中:

打幾個不恰當的比方

另外,還有一個經常有人問起的問題,就是 數據挖掘 機器學習 這兩個概念的區別,這里一句話闡明我自己的認識:機器學習是基礎,數據挖掘是應用。機器學習研製出各種各樣的演算法,數據挖掘根據應用場景把這些演算法合理運用起來,目的是達到最好的挖掘效果。

當然,以上的簡單總結一定不夠准確和嚴謹,更多的是為了方便大家理解打的比方。如果大家有更精當的理解,歡迎補充和交流。

好了,鋪墊了這么多,現在終於進入正題!
作為本系列入門的第一篇,先為大家介紹一個容易理解又很有趣的演算法—— 樸素貝葉斯

先站好隊,樸素貝葉斯是一個典型的 有監督的分類演算法

光從名字也可以想到,要想了解樸素貝葉斯,先要從 貝葉斯定理 說起。
貝葉斯定理是我們高中時代學過的一條概率學基礎定理,它描述了條件概率的計算方式。不要怕已經把這些知識還給了體育老師,相信你一看公式就能想起來。

P(A|B)表示事件B已經發生的前提下,事件A發生的概率,叫做事件B發生下事件A的條件概率。其基本求解公式為:

其中,P(AB)表示A和B同時發生的概率,P(B)標識B事件本身的概率。

貝葉斯定理之所以有用,是因為我們在生活中經常遇到這種情況:我們可以很容易直接得出P(A|B),P(B|A)則很難直接得出,但我們更關心P(B|A)。

而貝葉斯定理就為我們打通從P(A|B)獲得P(B|A)的道路。
下面不加證明地直接給出貝葉斯定理:

有了貝葉斯定理這個基礎,下面來看看樸素貝葉斯演算法的基本思路。

你看,其思想就是這么的樸素。那麼,屬於每個分類的概率該怎麼計算呢?下面我們先祭出形式化語言!

那麼現在的關鍵就是如何計算第3步中的各個條件概率。我們可以這么做:

因為分母對於所有類別為常數,因為我們只要將分子最大化皆可。又因為各特徵屬性是條件獨立的,所以有:

如果你也跟我一樣,對形式化語言有嚴重生理反應,不要怕,直接跳過前面這一坨,我們通過一個鮮活的例子,用人類的語言再解釋一遍這個過程。

某個醫院早上收了六個門診病人,如下表。

現在又來了第七個病人,是一個打噴嚏的建築工人。請問他最有可能患有何種疾病?

本質上,這就是一個典型的分類問題, 症狀 職業 是特徵屬性, 疾病種類 是目標類別

根據 貝葉斯定理

可得

假定"打噴嚏"和"建築工人"這兩個特徵是獨立的,因此,上面的等式就變成了

這是可以計算的。

因此,這個打噴嚏的建築工人,有66%的概率是得了感冒。同理,可以計算這個病人患上過敏或腦震盪的概率。比較這幾個概率,就可以知道他最可能得什麼病。

接下來,我們再舉一個樸素貝葉斯演算法在實際中經常被使用的場景的例子—— 文本分類器 ,通常會用來識別垃圾郵件。
首先,我們可以把一封郵件的內容抽象為由若干關鍵片語成的集合,這樣是否包含每種關鍵詞就成了一封郵件的特徵值,而目標類別就是 屬於垃圾郵件 不屬於垃圾郵件

假設每個關鍵詞在一封郵件里出現與否的概率相互之間是獨立的,那麼只要我們有若干已經標記為垃圾郵件和非垃圾郵件的樣本作為訓練集,那麼就可以得出,在全部垃圾郵件(記為Trash)出現某個關鍵詞Wi的概率,即 P(Wi|Trash)

而我們最重要回答的問題是,給定一封郵件內容M,它屬於垃圾郵件的概率是多大,即 P(Trash|M)

根據貝葉斯定理,有

我們先來看分子:
P(M|Trash) 可以理解為在垃圾郵件這個范疇中遇見郵件M的概率,而一封郵件M是由若干單詞Wi獨立匯聚組成的,只要我們所掌握的單詞樣本足夠多,因此就可以得到

這些值我們之前已經可以得到了。

再來看分子里的另一部分 P(Trash) ,這個值也就是垃圾郵件的總體概率,這個值顯然很容易得到,用訓練集中垃圾郵件數除以總數即可。

而對於分母來說,我們雖然也可以去計算它,但實際上已經沒有必要了,因為我們要比較的 P(Trash|M) 和 P(non-Trash|M) 的分母都是一樣的,因此只需要比較分子大小即可。

這樣一來,我們就可以通過簡單的計算,比較郵件M屬於垃圾還是非垃圾二者誰的概率更大了。

樸素貝葉斯的英文叫做 Naive Bayes ,直譯過來其實是 天真的貝葉斯 ,那麼他到底天真在哪了呢?

這主要是因為樸素貝葉斯的基本假設是所有特徵值之間都是相互獨立的,這才使得概率直接相乘這種簡單計算方式得以實現。然而在現實生活中,各個特徵值之間往往存在一些關聯,比如上面的例子,一篇文章中不同單詞之間一定是有關聯的,比如有些詞總是容易同時出現。

因此,在經典樸素貝葉斯的基礎上,還有更為靈活的建模方式—— 貝葉斯網路(Bayesian Belief Networks, BBN) ,可以單獨指定特徵值之間的是否獨立。這里就不展開了,有興趣的同學們可以做進一步了解。

最後我們來對這個經典演算法做個點評:

優點:

缺點:

好了,對於 樸素貝葉斯 的介紹就到這里,不知道各位看完之後是否會對數據挖掘這個領域產生了一點興趣了呢?

⑧ 祖沖之演算法集的介紹

祖沖之演算法集(ZUC演算法)是由我國學者自主設計的加密和完整性演算法,包括祖沖之演算法、加密演算法128-EEA3和完整性演算法128-EIA3,已經被國際組織3GPP推薦為4G無線通信的第三套國際加密和完整性標準的侯選演算法。由中國科學院信息工程研究所信息安全國家重點實驗室和中國科學院數據與通信保護研究教育中心(DCS中心)聯合主辦的《第一屆祖沖之演算法國際研討會》將於2010年12月2至3在北京召開。本次國際研討會對於加強祖沖之演算法研究分析成果的國內和國際交流,擴大祖沖之演算法的公開平評估范圍,加強祖沖之演算法的安全性評估力度,進而推進祖沖之演算法4G通信國際加密標準的進度具有重要的現實意義。

⑨ 為什麼要研究演算法

01 演算法的優劣是程序質量的重要標志。當我們遇到難題時,總是要求計算機在較短時間內解決難題,這樣我們就得深入研究演算法,挑選出好的演算法,以編出高效、實用的軟體,使計算機更快、更出色地完成任務。

通俗地說,演算法就是解決問題的具體辦法。在《三國演義》中,周瑜與諸葛亮為了打破曹操強大的80萬大軍的進攻,先設法除去曹軍中諳熟水戰的水軍將領蔡瑁、張允,於是就有了“群英會蔣干中計”;曹軍中沒有了真正懂得水戰規律的將領,加上北方軍人不適應艦船上生活,於是龐統的連環計獲得成功;由於是隆冬季節在大江之上作戰,所以就要有黃蓋使苦肉計和草船借箭,然後,東吳水軍才能在東南風起時火燒赤壁,取得破曹的決定性勝利。這也是周瑜、諸葛亮的破曹演算法。以上環節中如果有一個環節失誤,後果不堪設想。

在日常生活中,要解決一個問題,也總要先找出解決這個問題的步驟或辦法。問題簡單,解決問題的步驟就少些;問題復雜,解決問題的步驟就多。

許多著名的問題能得到解決,都是因為有人提出了巧妙的演算法。舉一個簡單的例子:9枚外表相同的硬幣中混進了一枚假幣,知道它與真幣重量不同,如果給你一架天平,至少需要稱幾次才能找到那枚假幣?這個演算法你可能很快就會設計出來。但如果999枚硬幣中混進一枚假幣,你又怎樣用天平將它稱出來呢?再舉一個例子:有幾個公路互通的城市,售貨員從一個城市出發,要乘車走遍所有幾個城市,最後回到出發點,該怎樣找出售貨員可以走的最短線路?用計算機與人下棋,如果是下五子棋,走棋的演算法較簡單,可能很多人都能設計出來,若是走圍棋呢?恐怕就很難設計演算法了!

在計算機領域,演算法是指計算機用來解決某一問題的精確的方法。它是計算機程序的重要組成部分,演算法的優劣是程序質量的重要標志。當我們遇到難題時,總是要求計算機在較短時間內解決難題,這樣我們就得深入研究演算法,挑選出好的演算法,以編出高效、實用的軟體,使計算機更快、更出色地完成任務。

⑩ 如何用演算法解決現實世界裡的問題

您好,請問您是想知道如何用演算法解決現實世界裡的問題嗎?

閱讀全文

與演算法研究歡迎交流相關的資料

熱點內容
平板的訪客模式如何加密 瀏覽:139
釘釘加密有用嗎 瀏覽:112
加密u盤好還是不加密的 瀏覽:349
微觀經濟學平狄克第八版pdf 瀏覽:404
linux查看實時流量 瀏覽:557
如何存檔到伺服器 瀏覽:548
flash編程書籍推薦 瀏覽:835
php獲得數組鍵值 瀏覽:401
香港雲伺服器操作 瀏覽:303
wpe最新源碼 瀏覽:857
自己購買雲主伺服器推薦 瀏覽:422
個人所得稅java 瀏覽:761
多餘的伺服器滑道還有什麼用 瀏覽:192
pdf劈開合並 瀏覽:29
不能修改的pdf 瀏覽:752
同城公眾源碼 瀏覽:489
一個伺服器2個埠怎麼映射 瀏覽:298
java字元串ascii碼 瀏覽:79
台灣雲伺服器怎麼租伺服器 瀏覽:475
旅遊手機網站源碼 瀏覽:332