算法究竟是什么,有什么用?
時(shí)間:2021-10-12 15:38:36
手機(jī)看文章
掃描二維碼
隨時(shí)隨地手機(jī)看文章
[導(dǎo)讀]搞軟件的,經(jīng)常提到算法這個(gè)詞。而且大家都對算法推崇備至,今天簡單聊一下算法究竟是干嘛的?解決什么問題?首先從宏觀上了解下,這個(gè)最好理解。我從幾個(gè)案例來分析下,目的是讓你知道為什么搞軟件需要用到算法。思考下面案例時(shí),大家不妨把自己代入去替代CPU,或者說替代算法程序,去思考下如果是...
搞軟件的,經(jīng)常提到算法這個(gè)詞。而且大家都對算法推崇備至,今天簡單聊一下算法究竟是干嘛的?解決什么問題?
首先從宏觀上了解下,這個(gè)最好理解。我從幾個(gè)案例來分析下,目的是讓你知道為什么搞軟件需要用到算法。
思考下面案例時(shí),大家不妨把自己代入去替代CPU,或者說替代算法程序,去思考下如果是用你的腦子來思考決策,你會(huì)怎么做?實(shí)際上你的思考和決策的過程就是你大腦里的算法在運(yùn)行。
案例1 路徑規(guī)劃問題。
已知一張地圖,然后我們在A點(diǎn),要去B點(diǎn),應(yīng)該走哪一條路?
大家都用過高德或者百度地圖,對這種場景很熟悉的,這就是個(gè)典型的算法問題。這個(gè)問題的復(fù)雜之處就在于實(shí)際要考慮很多因素,譬如各路段的擁堵情況,譬如是否走高速,譬如我開車還是步行,這些條件都會(huì)作為算法要考慮的參數(shù)。
如果你要做一個(gè)導(dǎo)航產(chǎn)品,你能不研究路徑規(guī)劃算法嗎?不搞定這塊,你的產(chǎn)品怎么智能化起來?
案例2 手機(jī)手表計(jì)步功能問題。
現(xiàn)在智能手機(jī)和手表都帶了計(jì)步器功能,準(zhǔn)確度其實(shí)挺高的了,但是前幾年剛出來時(shí)實(shí)際上精確度參差不齊。
實(shí)際上計(jì)步器就是通過各種傳感器的數(shù)據(jù),來綜合處理判斷這個(gè)人究竟有沒有走步。可以使用到的傳感器主要是陀螺儀和加速度傳感器。大家可以理解為就是個(gè)MPU6050,玩過四軸的同學(xué)都熟悉。
陀螺儀能告訴你姿態(tài)變化,加速度傳感器能告訴你加速度變化,這兩個(gè)值本身對你的運(yùn)動(dòng)都很敏感,傳感器本身零度也很高。
但是問題是你怎么從這兩個(gè)值能得到人到底走沒走?走了幾步?這就需要算法。你的算法效果越好則測到的步數(shù)越準(zhǔn),不會(huì)遺漏,也不會(huì)多算。而且還要考慮算法本身的復(fù)雜度,計(jì)算所需要的運(yùn)算量,功耗等。
最好的算法的標(biāo)準(zhǔn)就是,消耗更少的輸入數(shù)據(jù)和功耗,運(yùn)算量,運(yùn)算時(shí)間,得到最精準(zhǔn)高效的結(jié)果。然而現(xiàn)實(shí)中不可能有各方面都最好的算法,總是要做一些取舍。
案例3 電動(dòng)汽車電機(jī)控制器
電動(dòng)汽車用電機(jī)驅(qū)動(dòng),這個(gè)和傳統(tǒng)的燃油車完全不同。大家如果開過兩種車,做個(gè)對比就會(huì)發(fā)現(xiàn)“手感”是不同的。
傳統(tǒng)燃油車的核心技術(shù)是發(fā)動(dòng)機(jī)和變速箱,這個(gè)大家都聽過。那為什么是這兩個(gè)?難在哪里?你想想,汽車那么重,路況又復(fù)雜,燃油發(fā)動(dòng)機(jī)產(chǎn)生的燃燒動(dòng)能在變速箱和一系列加減速齒輪的作用下,要輸出平穩(wěn)的動(dòng)力,讓汽車能正常運(yùn)行,這多難啊,這其實(shí)就是一套“機(jī)械實(shí)現(xiàn)的運(yùn)動(dòng)控制算法”。
而電動(dòng)車呢?也需要這一套算法,甚至需要考慮“動(dòng)能回收”等更復(fù)雜的功能。難不難?在計(jì)算機(jī)領(lǐng)域算挺難的,但是和燃油發(fā)動(dòng)機(jī)相比其實(shí)難度大大降低,這也是為什么汽車電動(dòng)化有助于國產(chǎn)汽車崛起的一大原因。
電機(jī)控制的應(yīng)用場景很多,譬如吹風(fēng)筒,各種機(jī)器設(shè)備等場景和具體要求完全不同,所以需要應(yīng)對的問題和算法策略也不同,這就是為什么需要很多開發(fā)電機(jī)控制算法的人。
還有很多案例,譬如電動(dòng)車的電池充電問題,手機(jī)的自動(dòng)鎖屏自動(dòng)檢測人臉驗(yàn)證開鎖問題,汽車的空氣懸架問題,甚至噴水馬桶怎么洗干凈屁股的問題,等等都是算法問題。
所以做算法有很大需求,可以說智能化的本質(zhì),就是玩轉(zhuǎn)傳感器和算法。
首先從宏觀上了解下,這個(gè)最好理解。我從幾個(gè)案例來分析下,目的是讓你知道為什么搞軟件需要用到算法。
思考下面案例時(shí),大家不妨把自己代入去替代CPU,或者說替代算法程序,去思考下如果是用你的腦子來思考決策,你會(huì)怎么做?實(shí)際上你的思考和決策的過程就是你大腦里的算法在運(yùn)行。
案例1 路徑規(guī)劃問題。
已知一張地圖,然后我們在A點(diǎn),要去B點(diǎn),應(yīng)該走哪一條路?
大家都用過高德或者百度地圖,對這種場景很熟悉的,這就是個(gè)典型的算法問題。這個(gè)問題的復(fù)雜之處就在于實(shí)際要考慮很多因素,譬如各路段的擁堵情況,譬如是否走高速,譬如我開車還是步行,這些條件都會(huì)作為算法要考慮的參數(shù)。
如果你要做一個(gè)導(dǎo)航產(chǎn)品,你能不研究路徑規(guī)劃算法嗎?不搞定這塊,你的產(chǎn)品怎么智能化起來?
案例2 手機(jī)手表計(jì)步功能問題。
現(xiàn)在智能手機(jī)和手表都帶了計(jì)步器功能,準(zhǔn)確度其實(shí)挺高的了,但是前幾年剛出來時(shí)實(shí)際上精確度參差不齊。
實(shí)際上計(jì)步器就是通過各種傳感器的數(shù)據(jù),來綜合處理判斷這個(gè)人究竟有沒有走步。可以使用到的傳感器主要是陀螺儀和加速度傳感器。大家可以理解為就是個(gè)MPU6050,玩過四軸的同學(xué)都熟悉。
陀螺儀能告訴你姿態(tài)變化,加速度傳感器能告訴你加速度變化,這兩個(gè)值本身對你的運(yùn)動(dòng)都很敏感,傳感器本身零度也很高。
但是問題是你怎么從這兩個(gè)值能得到人到底走沒走?走了幾步?這就需要算法。你的算法效果越好則測到的步數(shù)越準(zhǔn),不會(huì)遺漏,也不會(huì)多算。而且還要考慮算法本身的復(fù)雜度,計(jì)算所需要的運(yùn)算量,功耗等。
最好的算法的標(biāo)準(zhǔn)就是,消耗更少的輸入數(shù)據(jù)和功耗,運(yùn)算量,運(yùn)算時(shí)間,得到最精準(zhǔn)高效的結(jié)果。然而現(xiàn)實(shí)中不可能有各方面都最好的算法,總是要做一些取舍。
案例3 電動(dòng)汽車電機(jī)控制器
電動(dòng)汽車用電機(jī)驅(qū)動(dòng),這個(gè)和傳統(tǒng)的燃油車完全不同。大家如果開過兩種車,做個(gè)對比就會(huì)發(fā)現(xiàn)“手感”是不同的。
傳統(tǒng)燃油車的核心技術(shù)是發(fā)動(dòng)機(jī)和變速箱,這個(gè)大家都聽過。那為什么是這兩個(gè)?難在哪里?你想想,汽車那么重,路況又復(fù)雜,燃油發(fā)動(dòng)機(jī)產(chǎn)生的燃燒動(dòng)能在變速箱和一系列加減速齒輪的作用下,要輸出平穩(wěn)的動(dòng)力,讓汽車能正常運(yùn)行,這多難啊,這其實(shí)就是一套“機(jī)械實(shí)現(xiàn)的運(yùn)動(dòng)控制算法”。
而電動(dòng)車呢?也需要這一套算法,甚至需要考慮“動(dòng)能回收”等更復(fù)雜的功能。難不難?在計(jì)算機(jī)領(lǐng)域算挺難的,但是和燃油發(fā)動(dòng)機(jī)相比其實(shí)難度大大降低,這也是為什么汽車電動(dòng)化有助于國產(chǎn)汽車崛起的一大原因。
電機(jī)控制的應(yīng)用場景很多,譬如吹風(fēng)筒,各種機(jī)器設(shè)備等場景和具體要求完全不同,所以需要應(yīng)對的問題和算法策略也不同,這就是為什么需要很多開發(fā)電機(jī)控制算法的人。
還有很多案例,譬如電動(dòng)車的電池充電問題,手機(jī)的自動(dòng)鎖屏自動(dòng)檢測人臉驗(yàn)證開鎖問題,汽車的空氣懸架問題,甚至噴水馬桶怎么洗干凈屁股的問題,等等都是算法問題。
所以做算法有很大需求,可以說智能化的本質(zhì),就是玩轉(zhuǎn)傳感器和算法。