• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      結(jié)合Python的分析化學(xué)參數(shù)提取自動化

      2018-07-19 03:12:18王海燕崔文超馬海龍
      關(guān)鍵詞:線程實例人工

      王海燕, 崔文超, 李 闖, 馬海龍

      (1. 吉林師范大學(xué) 計算機(jī)學(xué)院, 吉林 四平 136000; 2. 吉林大學(xué) 理論化學(xué)研究所, 理論計算化學(xué)實驗室, 長春 130021;3. 銳曼智能裝備有限公司, 廣東 深圳 518057)

      Python[1]是一種面向?qū)ο蟮慕忉屝陀嬎銠C(jī)程序設(shè)計語言, 其源代碼和解釋器CPython遵循 GPL協(xié)議. 由于Python語言的語法簡潔清晰, 且具有豐富及強(qiáng)大的庫, 因此常被用于計算機(jī)相關(guān)的交叉學(xué)科研究中. Python也稱為膠水語言, 因其能把用其他語言制作的各種模塊(尤其是C/C++)輕松地聯(lián)結(jié)在一起. Python常見的一種應(yīng)用情形是快速生成程序的原型甚至是程序的最終界面.

      分析化學(xué)的主要任務(wù)是鑒定物質(zhì)的化學(xué)組成, 測定物質(zhì)有關(guān)組分的含量, 確定物質(zhì)的結(jié)構(gòu)和存在形態(tài)及其與物質(zhì)性質(zhì)間的關(guān)系等, 主要包括定性分析、定量分析及結(jié)構(gòu)和立體分析[2-3]. 在實現(xiàn)理論化學(xué)分析過程中, 經(jīng)常需要提取[4-5]一些必要的參數(shù)進(jìn)行輔助分析, 通常這些參數(shù)的獲取都是人工進(jìn)行干預(yù)的, 而實際情況下, 一些不確定因素會影響人工操作, 如人工輸入的誤差、人員脫離計算機(jī)的時間浪費(fèi)等, 導(dǎo)致參數(shù)提取效率低下. 此外, 理論化學(xué)中數(shù)據(jù)的分析有時是指數(shù)級的, 人工操作效率低下.

      針對上述問題, 本文將化學(xué)分析參數(shù)提取與Python實現(xiàn)自動化相結(jié)合, 提出一種自動化參數(shù)提取算法Wfnauto. 該算法借助Python中列表生成技術(shù)和線程模擬技術(shù), 依次自動化提取所需參數(shù), 規(guī)避了手工輸入的誤差以及人員脫離計算機(jī)的各種時間浪費(fèi). 為說明自動化Wfnauto算法的優(yōu)勢, 本文針對幾類代表性wfn文件進(jìn)行實驗測試. 為說明算法的效率提升作用, 實驗中將代表性wfn文件實例以不同數(shù)量為基數(shù)分成多個群組, 群組基數(shù)分別為1,5,10,20,40. 分別在手工狀態(tài)和自動化狀態(tài)下進(jìn)行參數(shù)提取操作, 選取的實例均真實有效. 將這兩種方法的求解效率進(jìn)行對比的實驗測試結(jié)果表明了自動化參數(shù)提取算法的優(yōu)勢, 進(jìn)而證明Wfnauto算法能有效提升理論化學(xué)中數(shù)據(jù)分析的效率.

      1 自動化參數(shù)提取算法

      在理論化學(xué)分析過程中, 有些計算數(shù)值是指數(shù)級的, 人工完成化學(xué)參數(shù)的提取, 會基于人工特性, 摻雜許多不確定的因素, 且各提取過程的銜接部分也會因人工的參與而浪費(fèi)大量時間. 如在執(zhí)行multiwfn的過程后, 會根據(jù)提示輸入選擇計算的內(nèi)容, 此時人員如脫離計算機(jī), 計算機(jī)將接收不到任何指令, 只能等待, 導(dǎo)致極大的時間浪費(fèi). 因此, 參數(shù)提取的自動化[7]成為亟待解決的問題. 一方面, 讓機(jī)器自動完成路徑及文件名的預(yù)處理; 另一方面, 實現(xiàn)參數(shù)提取及錄入的自動化.

      1.2 自動化參數(shù)提取算法設(shè)計 通常情況下, 理論化學(xué)問題中的人工參數(shù)提取過程為: 首先, 確定欲處理的wfn文件, 并對其進(jìn)行初始化; 然后, 依次在路徑中找到這些wfn文件, 通過執(zhí)行固定程序, 人工選擇欲提取的參數(shù). 如固體物質(zhì)的生成焓問題, 要提取總表面積、表面正電勢、表面負(fù)電勢等參數(shù). 常規(guī)的人工參數(shù)提取過程的框架描述如下, 循環(huán)n次執(zhí)行.

      1) 初始化wfn文件;

      2) 運(yùn)行multiwfn程序提取參數(shù)值;

      3) 手工輸入預(yù)處理文件路徑及文件名;

      4) 提取過程中手工輸入欲提取參數(shù);

      5) 將結(jié)果輸出到屏幕.

      顯然, 人工參數(shù)提取過程需要不斷地人為參與, 從路徑和文件名的確定到提取參數(shù)的指定, 都需要不斷與計算機(jī)交互. 假設(shè)操作人員無人為錯誤, 也不會疲倦, 則這種不斷交互提取的方式也亟待改變. 要實現(xiàn)去除銜接時間外更進(jìn)一步的效率提升, 必須實現(xiàn)過程的自動化. Python中的列表生成技術(shù)和線程模擬技術(shù)恰好可實現(xiàn)此目的. 基于該技術(shù)的自動化參數(shù)提取算法Wfnauto框架描述如下:

      1) 導(dǎo)入存放路徑配置文件;

      2) 運(yùn)行multiwfn程序提取參數(shù)值;

      3) 將結(jié)果輸出到文件.

      Wfnauto算法的執(zhí)行過程如圖1所示. 1) 首先確定相關(guān)實例文件路徑, 并引入存放在固定路徑下的配置文件; 其次獲得當(dāng)前目錄下所有后綴為wfn的實例文件; 2) 由于需要依次處理相關(guān)文件, 所以借助Python“列表生成式”生成預(yù)處理實例文件列表; 3) 循環(huán)遍歷所有文件, 依次提取欲處理參數(shù); 4) 在依次處理完相應(yīng)文件后, 打開存放輸出結(jié)果的輸出文件, 如果沒有此文件, 則算法會自動創(chuàng)建; 5) 借助調(diào)用線程模擬調(diào)用Multiwfn程序, 并把輸出結(jié)果存到剛打開的文件中; 6) 在線程結(jié)束后關(guān)閉相應(yīng)文件.

      圖1 Wfnauto算法過程Fig.1 Process of Wfnauto algorithm

      2 人工方法與自動化方法實驗比對

      為證明Wfnauto自動化參數(shù)提取方法的優(yōu)越性, 本文將其與人工參數(shù)提取方法進(jìn)行對比. 實驗環(huán)境如下: 在Pentium(R) Dual-Core處理器E6700的Lenovo機(jī)上完成, 主頻為3.20 GHz, 內(nèi)存為2.00 GB.

      將所有實例文件分成不同個數(shù)的組, 一方面觀察組內(nèi)相同數(shù)量時, 自動化參數(shù)提取方法Wfnauto較人工參數(shù)提取方法的優(yōu)勢; 另一方面觀察每組數(shù)量變化情況下, 自動化參數(shù)提取方法Wfnauto自身的變化規(guī)律. 實驗過程針對理論化學(xué)研究中常用的40個wfn實例文件對象進(jìn)行統(tǒng)計分析, 選擇下列典型實例: 2-pyridoxine_2-aminopyridine.wfn,Al.wfn,acetic_acid.wfn,acrolein.wfn和Ar.wfn等. 所有實驗均在同一臺機(jī)器上完成. 考察CPU運(yùn)行時間(單位ms)[8], 并對效率提升比例進(jìn)行分析.

      本文假設(shè)人工參數(shù)提取實驗是在操作人員不離開計算機(jī)的前提下, 即設(shè)定為“零間隔浪費(fèi)”的人工執(zhí)行提取操作, 實際情況下會有間隔浪費(fèi), 執(zhí)行時間遠(yuǎn)大于表中人工提取時間.

      2.1 組內(nèi)相同數(shù)量比較 本文實驗依次將40個問題實例劃分為不同個數(shù)的組, 在此基礎(chǔ)上, 觀察組內(nèi)數(shù)量相同時, 自動化參數(shù)提取方法Wfnauto較人工參數(shù)提取方法的優(yōu)勢. 首先選擇將問題實例5個一組進(jìn)行比較, 計算問題執(zhí)行的CPU運(yùn)行時間, 對比每組中5個實例人工方法運(yùn)行時間總和與自動化方法運(yùn)行時間總和的差別. 為降低誤差, 實驗選擇6次測試的平均值, 比較結(jié)果列于表1.

      表1 每組5個實例時兩種算法運(yùn)行時間(ms)的比較

      由表1可見, 每組實例的自動化參數(shù)提取方法均比人工參數(shù)提取方法在時間效率上有大幅度提升. 這主要是因為Wfnauto借助Python列表生成式羅列生成相關(guān)列表, 過程中通過isfile的判斷, 將listdir中的文件類型鎖定為wfn, 然后借助線程subprocess自動化模擬參數(shù)提取的過程, 這里線程處理的對象是join(Python中communicate的處理對象). 這些技術(shù)使參數(shù)的提取準(zhǔn)確而快速, 與人工參數(shù)提取方法相比顯然有更大優(yōu)勢.

      8組實例的效率提升百分?jǐn)?shù)如圖2所示. 由圖2可見, 每組實例的提升效率均在15%以上, 平均效率提升為24.09%. 表明引入自動化參數(shù)提取方法顯著提升了分析化學(xué)參數(shù)提取的效率, 且該提升值還未考慮人工參數(shù)提取方法人員浪費(fèi)的時間, 即假設(shè)操作人員在無縫時間銜接的方式下工作, 顯然這種浪費(fèi)是不可避免的, 實際的效率提升百分?jǐn)?shù)還要更高.

      為進(jìn)一步證明自動化參數(shù)提取過程的效率提升作用, 組內(nèi)繼續(xù)擴(kuò)大實驗數(shù)量, 選取10個實例一組進(jìn)行實驗, 兩種方法所用時間對比結(jié)果如圖3所示. 由圖3可見, 在每組10個實例的情況下, 自動化參數(shù)提取方法Wfnauto比人工參數(shù)提取方法用時顯著縮短, 再次證明了Wfnauto算法的優(yōu)勢.

      圖2 效率提升百分?jǐn)?shù)比較Fig.2 Comparison of percentage of efficiency promotion

      圖3 每組10個實例時兩種方法的運(yùn)行時間對比Fig.3 Comparison of running time of two algorithms in each group of 10 instances

      圖4 不同數(shù)量分組效率比較Fig.4 Efficiency comparison of different number of groups

      2.2 組內(nèi)不同數(shù)量比較 將每組10個實例文件的Wfnauto執(zhí)行結(jié)果與每組5個實例的Wfnauto執(zhí)行結(jié)果進(jìn)行對比, 結(jié)果如圖4所示. 由圖4可見, 每組10個實例高于每組5個實例的平均效率提升能力, 即在Wfnauto算法下, 隨著分組內(nèi)實例文件個數(shù)的增多, 自動化參數(shù)提取方法自身效率不斷提升. 這是由于組內(nèi)實例文件數(shù)量的增多, 促使線程內(nèi)單批處理能力增強(qiáng), 進(jìn)而使總體提取時間縮短、效率提升幅度更大.

      綜上所述, 本文提出了一種自動化參數(shù)提取算法Wfnauto, 算法借助Python的列表生成技術(shù)和線程模擬技術(shù), 顯著提高了參數(shù)的提取效率.

      猜你喜歡
      線程實例人工
      人工3D脊髓能幫助癱瘓者重新行走?
      軍事文摘(2022年8期)2022-11-03 14:22:01
      人工,天然,合成
      人工“美顏”
      哈哈畫報(2021年11期)2021-02-28 07:28:45
      淺談linux多線程協(xié)作
      新型多孔鉭人工種植牙
      完形填空Ⅱ
      完形填空Ⅰ
      Linux線程實現(xiàn)技術(shù)研究
      么移動中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
      JAVA多線程同步解決生產(chǎn)者—消費(fèi)者問題
      白水县| 舞阳县| 资中县| 凤城市| 甘南县| 曲松县| 凌海市| 长春市| 西华县| 开江县| 新源县| 井研县| 顺义区| 江油市| 阿图什市| 鄂尔多斯市| 自治县| 广河县| 乌拉特后旗| 淮阳县| 松滋市| 夹江县| 宽城| 文登市| 类乌齐县| 焉耆| 洛扎县| 漳平市| 竹北市| 比如县| 金秀| 泰宁县| 甘德县| 宜君县| 安新县| 绵阳市| 南澳县| 渭南市| 彰化县| 玉田县| 定日县|