亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        含無人駕駛汽車的交通出行選擇行為實(shí)驗(yàn)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

        2020-06-15 12:04:50李文韜謝小紅孫曉燕
        現(xiàn)代計(jì)算機(jī) 2020年13期
        關(guān)鍵詞:進(jìn)程數(shù)據(jù)庫實(shí)驗(yàn)

        李文韜,謝小紅,孫曉燕

        (1.南寧師范大學(xué)計(jì)算機(jī)與信息工程學(xué)院,南寧 530299;2.廣西財(cái)經(jīng)學(xué)院管理科學(xué)與工程學(xué)院,南寧 530003)

        0 引言

        隨著5G 時(shí)代到來和自動(dòng)化水平的提高,無人駕駛汽車得到了越來越多的關(guān)注。研究人員認(rèn)為無人駕駛汽車的使用是解決交通擁堵的關(guān)鍵[1]。但是,無人駕駛汽車上路后,交通路網(wǎng)的特性是否有顯著變化?整個(gè)路網(wǎng)的交通流量是否會(huì)提高?這些問題尚不十分明確,雖然目前已有大量的理論模型討論無人駕駛汽車對(duì)交通路網(wǎng)的影響[2],但是僅有少數(shù)的數(shù)據(jù)支持[3]。因?yàn)槟壳盁o人駕駛汽車還處于實(shí)驗(yàn)階段,采集實(shí)際的數(shù)據(jù)是不現(xiàn)實(shí)的,但是可以采用實(shí)驗(yàn)室實(shí)驗(yàn)的方法[4]分析無人駕駛汽車上路后的交通路網(wǎng)特性的改變,為今后出臺(tái)更合理的含無人駕駛汽車的交通管理政策提供有力的科學(xué)依據(jù)。

        交通出行選擇行為的實(shí)驗(yàn)室實(shí)驗(yàn)經(jīng)常用于驗(yàn)證交通流經(jīng)典理論和悖論[5],評(píng)估尚未實(shí)施的交通管理政策[6]。開展實(shí)驗(yàn)前,構(gòu)建穩(wěn)定高效的實(shí)驗(yàn)平臺(tái)是必不可少的先決條件。目前已有一些經(jīng)典的選擇行為實(shí)驗(yàn)平臺(tái),例如z-Tree[7],其最大的功能是能夠提供一個(gè)免費(fèi)的開放式實(shí)驗(yàn)平臺(tái),在實(shí)驗(yàn)過程中數(shù)據(jù)會(huì)自動(dòng)備份即使主機(jī)崩潰,重新連接服務(wù)器即可繼續(xù)實(shí)驗(yàn),該實(shí)驗(yàn)平臺(tái)允許內(nèi)嵌其他編程語言,開發(fā)者可以根據(jù)需求進(jìn)行二次開發(fā)。但是,對(duì)于比較復(fù)雜的實(shí)驗(yàn)場(chǎng)景,開發(fā)者需要耗費(fèi)大量的時(shí)間對(duì)z-Tree 功能模塊進(jìn)行修改且移植性不強(qiáng),因此許多科研人員開始借鑒z-Tree 的功能開發(fā)合適自己實(shí)驗(yàn)的平臺(tái)軟件。

        本文采用 Web 應(yīng)用框架[8]中的 Django[9]、MySQL 數(shù)據(jù)庫[10]技術(shù)、Nginx 反向代理服務(wù)器[11]以及 AJAX 交互技術(shù)[12]加上多并發(fā)和多線程對(duì)前端數(shù)據(jù)的處理構(gòu)建了含無人駕駛汽車的交通出行選擇行為實(shí)驗(yàn)平臺(tái)。使用Django 框架無需獨(dú)立SQL 語句,框架本身提供完善ORM 數(shù)據(jù)交互模型,任何計(jì)算機(jī)都可以安裝此實(shí)驗(yàn)平臺(tái)作為實(shí)驗(yàn)服務(wù)器。該實(shí)驗(yàn)平臺(tái)主要特點(diǎn)是安全系數(shù)高、數(shù)據(jù)高并發(fā)處理、交互友好且易于二次開發(fā),有助于研究者便捷使用并對(duì)無人駕駛汽車的交通出行選擇行為做進(jìn)一步的研究。

        1 系統(tǒng)架構(gòu)設(shè)計(jì)

        系統(tǒng)架構(gòu)如圖1 所示,實(shí)驗(yàn)被試者通過管理員提供的用戶名及密碼在瀏覽器上登錄實(shí)驗(yàn)界面。實(shí)驗(yàn)過程中每一輪實(shí)驗(yàn)被試者提交出行行為選擇后頁面會(huì)向服務(wù)器發(fā)送AJAX 請(qǐng)求,后臺(tái)通過處理并反饋給被試者上一輪數(shù)據(jù)。由于多名被試者同時(shí)進(jìn)行,已完成出行行為選擇的被試者需等待尚未提交選擇的被試者才可進(jìn)行下一輪的選擇,實(shí)驗(yàn)數(shù)據(jù)需以隊(duì)列形式交由服務(wù)器處理,并接收所有被試者處理和請(qǐng)求,計(jì)算數(shù)據(jù)信息反饋給被試者,使其進(jìn)行下一輪的實(shí)驗(yàn)。因此,為了充分利用服務(wù)器應(yīng)用的計(jì)算機(jī)上所有資源,在服務(wù)器部的署上應(yīng)采用多線程并發(fā)服務(wù)器,從而提高執(zhí)行效率和降低資源占用,使服務(wù)器性能得到提高。本文主要借鑒了z-Tree 的優(yōu)點(diǎn)并補(bǔ)足缺點(diǎn),實(shí)現(xiàn)Web 端的無人駕駛汽車的交通出行選擇行為實(shí)驗(yàn)平臺(tái)的設(shè)計(jì),主要功能是采集科學(xué)實(shí)驗(yàn)數(shù)據(jù)為今后構(gòu)建數(shù)學(xué)模型提供有利的科學(xué)依據(jù)。

        圖1 系統(tǒng)架構(gòu)圖

        1.1 界面介紹

        管理員界面設(shè)計(jì)使用EasyUI+Jquery,主要是管理前臺(tái)數(shù)據(jù)與后臺(tái)數(shù)據(jù)庫的交互。界面可以在實(shí)驗(yàn)開始前設(shè)置參數(shù)和被試者人數(shù),并監(jiān)控整個(gè)實(shí)驗(yàn)過程,且每3 秒通過AJAX 請(qǐng)求對(duì)后臺(tái)人員信息、完成輪數(shù)和提交情況更新至前端。管理員界面的實(shí)驗(yàn)狀態(tài)框中有實(shí)驗(yàn)進(jìn)度總覽、登錄情況列表、提交情況列表三個(gè)選項(xiàng)卡,分別可以查看實(shí)驗(yàn)的進(jìn)度情況,其中登錄情況列表選項(xiàng)卡和提交情況列表選項(xiàng)卡可以更為詳細(xì)地看到人員信息。實(shí)驗(yàn)結(jié)束后,實(shí)驗(yàn)研究者在實(shí)驗(yàn)數(shù)據(jù)欄中的數(shù)據(jù)導(dǎo)出將本次實(shí)驗(yàn)的數(shù)據(jù)以Excel 形式或文本形式導(dǎo)出。

        被試者界面主要是根據(jù)研究者的需求對(duì)實(shí)驗(yàn)參數(shù)等進(jìn)行設(shè)置包括出行時(shí)間及自動(dòng)駕駛車輛選擇行為等的交通實(shí)驗(yàn),被試者通過用戶界面可以接受不同的交通實(shí)驗(yàn)。同時(shí),研究者也可以對(duì)被試者界面靈活修改選擇內(nèi)容和反饋信息,例如每個(gè)被試者上一輪選擇、出行時(shí)間以及得分(報(bào)酬);或者顯示所有被試者的選擇結(jié)果等信息。

        1.2 實(shí)驗(yàn)流程

        后臺(tái)框架基于Django,使用MTV 架構(gòu)進(jìn)行平臺(tái)搭建,為保證數(shù)據(jù)安全傳輸,使用JSON 數(shù)據(jù)格式對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行傳輸,首先通過Nginx 定位服務(wù)器集群,然后根據(jù)Uwsgi 進(jìn)行地址轉(zhuǎn)發(fā),Django 對(duì)收到請(qǐng)求進(jìn)行Urls 匹配找到對(duì)應(yīng)視圖函數(shù),視圖函數(shù)調(diào)用無人駕駛出行選擇算法,待數(shù)據(jù)進(jìn)行處理后放入MySQL 數(shù)據(jù)庫。算法執(zhí)行完畢后,視圖會(huì)返回模板信息和計(jì)算結(jié)果一并反饋到被試者界面使其查看相關(guān)信息,被試者再根據(jù)反饋的信息進(jìn)行下一輪實(shí)驗(yàn)選擇。實(shí)驗(yàn)流程圖如圖2 所示。

        圖2 實(shí)驗(yàn)流程圖

        2 應(yīng)用程序?qū)哟谓Y(jié)構(gòu)

        2.1 Web框架設(shè)計(jì)

        Web 應(yīng)用框架(Web Application Framework)是一種支持多語言相結(jié)合的開發(fā)框架,常用來支持網(wǎng)絡(luò)應(yīng)用程序、動(dòng)靜態(tài)網(wǎng)站及網(wǎng)絡(luò)服務(wù)等的開發(fā)。實(shí)驗(yàn)平臺(tái)之所以采用Web 框架是是為了打破傳統(tǒng)的面對(duì)面的數(shù)據(jù)收集,更為方便實(shí)驗(yàn)研究者和被試者。本文采用的Django 框架是由Python 語言編寫而成,其采用了MTV 架構(gòu)模式,即模型M、模板T 以及視圖V,該模式既可以降低應(yīng)用系統(tǒng)各部分之間的耦合程度,也有利于各開發(fā)人員的分工合作,增強(qiáng)應(yīng)用系統(tǒng)的可維護(hù)性及可擴(kuò)展性。MTV 結(jié)構(gòu)如圖3 所示。

        其中模型Model:主要負(fù)責(zé)業(yè)務(wù)對(duì)象和數(shù)據(jù)庫對(duì)象,處理與數(shù)據(jù)相關(guān)的所有事務(wù),包括如何存取以及如何驗(yàn)證有效。Model 是數(shù)據(jù)庫中的唯一標(biāo)識(shí)以及最權(quán)威的信息源,并包括實(shí)驗(yàn)中所有需要儲(chǔ)存的數(shù)據(jù)字段。為了創(chuàng)建模型,Djang 會(huì)根據(jù)Model 在數(shù)據(jù)庫中創(chuàng)建相對(duì)應(yīng)表,通常每個(gè)Model 與數(shù)據(jù)庫中的表示一一對(duì)應(yīng)的,再通過python manage.py makemigrations 和py?thon manage.py migrate 兩個(gè)語句進(jìn)行數(shù)據(jù)遷移,這就實(shí)現(xiàn)了不需要SQL 語言就可以創(chuàng)建數(shù)據(jù)庫的ORM 操作。模版Template:主要負(fù)責(zé)把實(shí)驗(yàn)頁面呈現(xiàn)給被試者,模板的設(shè)計(jì)方式實(shí)現(xiàn)MVT 中VT 的解耦,VT 有著N:M 的關(guān)系,一個(gè)V 可以調(diào)用任意T,一個(gè)T 可以供任意V 使用,使用Template 方法可以動(dòng)態(tài)地生成HTML并包含所需HTML 輸出的動(dòng)靜態(tài)部分內(nèi)容插入的模板特殊語法。視圖View:主要負(fù)責(zé)業(yè)務(wù)邏輯,View 往往可以看作是Model 和Template 之間的橋梁,在需要的時(shí)候調(diào)用適當(dāng)Model 和Template 的相關(guān)邏輯,用于封裝請(qǐng)求和響應(yīng)的邏輯,從數(shù)據(jù)庫中將數(shù)據(jù)處理后反饋給前端,也會(huì)將用戶的實(shí)驗(yàn)數(shù)據(jù)寫到數(shù)據(jù)庫中。

        圖3 MTV框架結(jié)構(gòu)圖

        此外,Django 還有一個(gè)urls 路由分發(fā)器,其作用是將每一個(gè)被試者的頁面請(qǐng)求分發(fā)給各個(gè)不同的View處理,View 再根據(jù)需求調(diào)用對(duì)應(yīng)的Model 和Template呈現(xiàn)給被試者。

        2.2 交互技術(shù)

        AJAX 是一種用于快速創(chuàng)建動(dòng)態(tài)交互網(wǎng)站的異步技術(shù)。其技術(shù)可以使頁面動(dòng)態(tài)完成異步更新,頁面效果比較友好不會(huì)出現(xiàn)卡頓現(xiàn)象,換而言之就是在不刷新頁面情況下,通過后臺(tái)與服務(wù)器進(jìn)行少量的數(shù)據(jù)傳輸,從而實(shí)現(xiàn)對(duì)網(wǎng)頁的部分?jǐn)?shù)據(jù)異步更新。

        在本文中采用AJAX 技術(shù)主要是為了在不刷新整個(gè)頁面的同時(shí)動(dòng)態(tài)獲取實(shí)驗(yàn)被試者登錄情況、提交情況以及被試者的實(shí)驗(yàn)界面能夠有良好的交互環(huán)境。當(dāng)所有的被試者在每一個(gè)輪中都提交本輪的出行行為選擇后,通過AJAX 的異步技術(shù)向后臺(tái)傳輸數(shù)據(jù),后臺(tái)計(jì)算完本輪的所有數(shù)據(jù)并存入數(shù)據(jù)庫后才會(huì)將上一輪的反饋信息呈現(xiàn)給用戶并進(jìn)行下一輪的出行行為選擇。平臺(tái)交互如圖4 所示。

        圖4 平臺(tái)交互圖

        在交互的過程中由于數(shù)據(jù)傳輸格式不同,JSON 數(shù)據(jù)格式在編碼難度、解碼難度、運(yùn)行速度、數(shù)據(jù)體積、描述性等方面優(yōu)于XML 數(shù)據(jù)格式,因此選用JSON 格式作為實(shí)驗(yàn)應(yīng)用平臺(tái)與被試者客戶端的數(shù)據(jù)傳輸格式比較合適。

        2.3 Nginx+uWSGI的高并發(fā)處理

        Nginx 是異步框架的網(wǎng)頁服務(wù)器,其功能豐富可作為HTTP 服務(wù)器和反向代理服務(wù)器,負(fù)責(zé)接被請(qǐng)求,主要特點(diǎn)是并發(fā)能力強(qiáng)、內(nèi)存占用少和處理異步請(qǐng)求等優(yōu)點(diǎn),支持高達(dá)50000 并發(fā)連續(xù)響應(yīng)。在服務(wù)器硬件配置同等,并發(fā)處理需求較高的情況下,與Apache 相比,Nginx 是本實(shí)驗(yàn)服務(wù)器的最佳選擇。

        uWSGI 是一種Python 通訊協(xié)議,也是對(duì)開發(fā)人員比較友好的服務(wù)器,其主要特點(diǎn)是超快的性能、低內(nèi)存占用、可多App 管理,與Nginx 搭配使用,其遵循網(wǎng)絡(luò)層傳輸協(xié)議并對(duì)網(wǎng)絡(luò)端口進(jìn)行以及收發(fā)HTTP 協(xié)議數(shù)據(jù)。通訊過程是客戶端發(fā)送的HTTP 請(qǐng)求被Nginx 服務(wù)器接收后將請(qǐng)求轉(zhuǎn)發(fā)給uWSGI,然后uWSGI 再將請(qǐng)求轉(zhuǎn)發(fā)給實(shí)現(xiàn)uWSGI 協(xié)議的應(yīng)用程序,即Django。本文使用Nginx+uWSGI 處理高并發(fā),可以大大地?cái)U(kuò)展實(shí)驗(yàn)被試者的人數(shù),緩解服務(wù)器的承載問題。

        3 數(shù)據(jù)處理

        3.1 多并發(fā)處理

        在本實(shí)驗(yàn)平臺(tái)我們將采用多并發(fā)處理,主要是因?yàn)樵诙鄠€(gè)被試者同時(shí)發(fā)出請(qǐng)求時(shí),會(huì)出現(xiàn)資源競(jìng)爭問題,那么為了解決該問題,平臺(tái)使用到了多并發(fā)處理,其處理時(shí)具有各個(gè)進(jìn)程間相互獨(dú)立的特點(diǎn),多進(jìn)程也可以充分利用CPU 多核服務(wù)對(duì)多數(shù)據(jù)進(jìn)行處理,這符合被試者之間數(shù)據(jù)不相通、多并發(fā)處理的需求。進(jìn)程的主要優(yōu)點(diǎn)是占用資源少、速度快,各進(jìn)程排隊(duì)進(jìn)行處理,有效地避免了資源競(jìng)爭問題。多并發(fā)處理流程如圖5 所示。

        圖5 多并發(fā)處理流程圖

        進(jìn)程池可一次性開辟多個(gè),被試者的請(qǐng)求按先后順序進(jìn)入隊(duì)列中排隊(duì)等待處理,由于最優(yōu)處理數(shù)量與硬件相關(guān),所以研究者盡可能使用配置較高的計(jì)算機(jī)。在并發(fā)處理進(jìn)程時(shí),當(dāng)一個(gè)被試者的請(qǐng)求處理完成后程序會(huì)把相應(yīng)數(shù)據(jù)存入MySQL 數(shù)據(jù)庫內(nèi),同時(shí)釋放資源等待處理下一個(gè)被試者的數(shù)據(jù)。

        3.2 多線程處理

        由于在實(shí)驗(yàn)的進(jìn)行過程中,被試者提交請(qǐng)求的順序是亂序,所以平臺(tái)采用多線程處理。而線程在程序中是獨(dú)立的、并發(fā)的執(zhí)行流,與分隔的進(jìn)程相比,進(jìn)程中線程之間的隔離程度要小,它們共享內(nèi)存、文件句柄和其他進(jìn)程應(yīng)有的狀態(tài)。其主要特點(diǎn)是進(jìn)程之間是不可以共享內(nèi)存的,但線程之間共享內(nèi)存卻非常容易;在操作系統(tǒng)創(chuàng)建進(jìn)程時(shí),需要為該進(jìn)程重新分配系統(tǒng)資源,但創(chuàng)建線程的代價(jià)則小得多;實(shí)現(xiàn)多任務(wù)處理的線程之間資源共享與Python 多線程利用CPU 進(jìn)行數(shù)據(jù)處理,多線程處理I/O 流較為密集的任務(wù)時(shí)效率頗高。因此,使用多線程來實(shí)現(xiàn)多任務(wù)并發(fā)執(zhí)行比使用多進(jìn)程的效率要高。Python 語言內(nèi)置了多線程功能支持,而不是單純地作為底層操作系統(tǒng)的調(diào)度方式。而被試者請(qǐng)求會(huì)隊(duì)列中進(jìn)行排隊(duì),各個(gè)線程的任務(wù)都將源源不斷地從等待處理隊(duì)列中提取請(qǐng)求并進(jìn)行數(shù)據(jù)處理,再將處理的結(jié)果逐個(gè)存放到已完成隊(duì)列中,最后從該隊(duì)列提取數(shù)據(jù)一并存入MySQL 數(shù)據(jù)庫中。這樣既提升了實(shí)驗(yàn)整體速率,被試者的等待時(shí)間也可以減少,多線程模型如圖6 所示。

        4 結(jié)語

        本文采用Django 和Nginx 框架構(gòu)建了含無人駕駛汽車的交通出行選擇行為實(shí)驗(yàn)平臺(tái),此平臺(tái)具有耦合性低、可擴(kuò)展性強(qiáng)等優(yōu)點(diǎn),為實(shí)驗(yàn)研究者提供友好的管理環(huán)境,也易于二次開發(fā)。經(jīng)過測(cè)驗(yàn),未發(fā)生異常,表明平臺(tái)魯棒性較好,為后續(xù)開展實(shí)驗(yàn)提供先決條件。

        猜你喜歡
        進(jìn)程數(shù)據(jù)庫實(shí)驗(yàn)
        記一次有趣的實(shí)驗(yàn)
        債券市場(chǎng)對(duì)外開放的進(jìn)程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        做個(gè)怪怪長實(shí)驗(yàn)
        數(shù)據(jù)庫
        NO與NO2相互轉(zhuǎn)化實(shí)驗(yàn)的改進(jìn)
        實(shí)踐十號(hào)上的19項(xiàng)實(shí)驗(yàn)
        太空探索(2016年5期)2016-07-12 15:17:55
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        社會(huì)進(jìn)程中的新聞學(xué)探尋
        av中文字幕性女高清在线| 天天做天天爱天天综合网| 国产极品美女高潮抽搐免费网站 | 日韩女人毛片在线播放| 日本在线观看一区二区视频| 极品人妻少妇av免费久久| 国产午夜鲁丝片av无码| 国产欧美成人| 国产av一区二区三区在线| 草逼短视频免费看m3u8| 4399理论片午午伦夜理片| 免费毛片在线视频| 国产精品av网站在线| 青青手机在线观看视频| 最近最新中文字幕| 亚洲欧美日韩中文字幕网址| 国产激情视频高清在线免费观看| 无码国产精品一区二区免费式芒果| 国产成人精品999在线观看| 中文字幕亚洲无线码高清| 亚洲国产综合精品一区| 免费网站内射红桃视频| 欧美成人一区二区三区在线观看| 第九色区Aⅴ天堂| 嫩呦国产一区二区三区av| 久久精品国产亚洲av高清热| 色丁香在线观看| 一区二区三区视频偷拍| 国产精品视频永久免费播放| 成熟人妻av无码专区| 毛片一级精油按摩无码| 美艳善良的丝袜高跟美腿| 免费无遮挡禁18污污网站| 亚洲性啪啪无码AV天堂| 国产91久久精品成人看网站 | 亚洲丰满熟女乱一区二区三区 | 精品欧洲av无码一区二区三区| 国产96在线 | 免费| 区一区二区三区四视频在线观看 | 亚洲中文有码字幕青青| 日本草逼视频免费观看|