陳超 閆逸群 邢雪
(西安近代化學(xué)研究所,陜西 西安 710065)
通過對(duì)一些問題的基本條件,來確定這個(gè)問題的答案的大致范圍,然后再在這范圍里的所有可能情況進(jìn)行一一驗(yàn)證,一直驗(yàn)證完所有的情況,這就是窮舉法的基本思想。如果一個(gè)案例證明它滿足問題的所有條件,它就是問題的一個(gè)解決方案,如果所有的情況都不符合問題的所有條件,那么就沒有解決問題的辦法。窮舉法又稱為枚舉法。窮盡法解決問題,就是把問題的答案以某種方式列舉出來的過程。根據(jù)的數(shù)據(jù)類型問題,有三種常用的列舉方法:
(一)順序清單指的是各種情況下答案的范圍可以很容易地對(duì)應(yīng)于自然數(shù)甚至就是自然數(shù),并且可以列出的順序自然數(shù)量變化。
(二)有時(shí)候,答案的數(shù)據(jù)形式是組數(shù)的排列,枚舉所有答案范圍內(nèi)的排列,并將其排列列舉。
(三)組合枚舉。當(dāng)答案的數(shù)據(jù)形式是一個(gè)或多個(gè)元素的組合時(shí),通常需要用組合枚舉它。而且組合是無序的。
窮舉法其實(shí)就是一種破譯密碼的方法。這種方法與數(shù)學(xué)上的“完全歸納法”非常相似,廣泛地應(yīng)用在密碼破譯中。簡(jiǎn)單來說,密碼是一個(gè)一個(gè)推算出來的,直到找到真正的密碼。例如,由四個(gè)數(shù)字組成的密碼組合一共有一萬種組合,也就是說,我們最多將嘗試九千九百九十九次才能找到真正的密碼。這樣,我們就可以用電腦一個(gè)一個(gè)地進(jìn)行計(jì)算,也就是說,我們破解任何密碼只是時(shí)間問題。
當(dāng)前,窮舉法主要被應(yīng)用在計(jì)算機(jī)的編程上,逐一對(duì)問題存在的可能的解進(jìn)行測(cè)試驗(yàn)證,知道驗(yàn)證完所有可能解,找到最滿足問題的解為止。在所有的傳統(tǒng)的最優(yōu)解的方法中,怎樣篩選模型中生成的大量數(shù)據(jù)是我們最應(yīng)該要解決的問題,以獲得有效的數(shù)據(jù)區(qū)域根據(jù)限定條件,最佳的區(qū)域或最優(yōu)解就是數(shù)據(jù)區(qū)域或數(shù)據(jù),這個(gè)最優(yōu)解的解法一直在運(yùn)籌學(xué)方法上停滯。這個(gè)方法的主要缺點(diǎn)最優(yōu)解是目標(biāo)函數(shù)中的解,但是這個(gè)解的可控性非常不好。在電腦上,只需要一個(gè)接一個(gè)地輸出數(shù)千個(gè)解決方案,問題的關(guān)鍵就是有效控制輸出的數(shù)據(jù)。
在企業(yè)的經(jīng)濟(jì)管理中,窮舉法具有非常廣泛的應(yīng)用,但是這些方法中大多數(shù)都只是在手工操作上停留,而且,它并沒有和計(jì)算機(jī)技術(shù)結(jié)合在一起,例如全面預(yù)算體系,通過實(shí)際的經(jīng)濟(jì)狀況來對(duì)預(yù)算指標(biāo)的價(jià)值進(jìn)行預(yù)測(cè),數(shù)據(jù)的有效性主要通過企業(yè)預(yù)算部門的經(jīng)驗(yàn)來確定,然后列表下面的數(shù)據(jù)有效性,并分別分析它們根據(jù)各種數(shù)據(jù)條件下,這就是窮舉。不過,由于受限于人力,彈性預(yù)算下的數(shù)據(jù)一般只是局限于少量的數(shù)據(jù),根本不能滿足企業(yè)的需求。在現(xiàn)實(shí)中的企業(yè)生產(chǎn)管理中,要實(shí)施一個(gè)控制項(xiàng)目或者做出一項(xiàng)目管理決策,通常都會(huì)遇到事件發(fā)生和不可知決策的盲目性。可以通過窮舉的思考來解決這些問題,并借助計(jì)算機(jī)中強(qiáng)大的數(shù)據(jù)埋藏功能,通過模塊中的數(shù)據(jù)鏈接同步反映決策過程中的預(yù)算-決策-控制差異分析。
本文所設(shè)計(jì)的窮舉法應(yīng)用模型的基本處理方法如下,一開始我們需要對(duì)數(shù)據(jù)模型提出假設(shè),同時(shí)還需要科學(xué)設(shè)計(jì)出目標(biāo)參數(shù),建立詳盡的變量和控制參數(shù)變量,然后根據(jù)數(shù)據(jù)對(duì)模型鏈接關(guān)系進(jìn)行描述,數(shù)據(jù)輸出的區(qū)域是根據(jù)計(jì)算機(jī)程序的編寫來確定的。最后,建立出一個(gè)科學(xué)合理的窮舉變量與目標(biāo)參數(shù)之間的數(shù)據(jù)關(guān)系,對(duì)控制參數(shù)進(jìn)行有效控制,制定出一個(gè)合理的數(shù)據(jù)的有效性規(guī)則,窮舉數(shù)據(jù)輸出的前提就是有效性規(guī)則。窮舉法應(yīng)用模型我們根據(jù)功能可以分為一下三個(gè)模塊:
第一個(gè)模塊:數(shù)據(jù)錄入模塊,這個(gè)模塊的主要功能就是把這個(gè)模塊中的窮舉法應(yīng)用模型的常量和變量的初值進(jìn)行準(zhǔn)確的輸入,同時(shí)還要在Excel表格中將指定的列和行進(jìn)行選中標(biāo)記。首先,我們需要選擇窮舉變量控制的循環(huán)次數(shù);其次,設(shè)定控制參數(shù),在數(shù)據(jù)的輸出上我們消耗了大量的時(shí)間來對(duì)模型進(jìn)行處理,如果我們的控制參數(shù)非常有效果,那么模型中的輸出數(shù)據(jù)就會(huì)隨之變少,從而在很大程度上提高整個(gè)模型的運(yùn)行效率。例如,在模型用來預(yù)測(cè)年度廣告費(fèi)用,所需的變量是窮舉出市場(chǎng)有可能需要的需求量,我們所設(shè)置的控制參數(shù)為成本和運(yùn)營費(fèi)用的比例,刪除超過這個(gè)參數(shù)的變量值,從而將程序的工作量進(jìn)行有效地降低。第二個(gè)模塊:變量與目標(biāo)參數(shù)之間的數(shù)據(jù)鏈接關(guān)系是數(shù)據(jù)處理模塊通過編程來實(shí)現(xiàn)的。優(yōu)化數(shù)據(jù)結(jié)構(gòu)是模型程序化編碼模塊編程的關(guān)鍵,這在很大程度上會(huì)將模塊的可用、可維護(hù)性進(jìn)行一個(gè)確定。第三個(gè)模塊:數(shù)據(jù)輸出模塊。這個(gè)模塊最終確定的信息使用界面是通過用戶對(duì)信息的需求來決定的,如果有大范圍的窮舉范圍,那么則產(chǎn)生的數(shù)據(jù)區(qū)域就非常大,這就需要一個(gè)有效的界面來提取和篩選數(shù)據(jù)。
隨著計(jì)算機(jī)處理技術(shù)的發(fā)展,在制造業(yè)生產(chǎn)管理中應(yīng)用窮舉法求解離散決策變量的最優(yōu)解問題具有十分重要的作用,它能夠幫助管理者做出科學(xué)、合理、準(zhǔn)確的決策,能夠?qū)⑹种鞋F(xiàn)有資源得到最大發(fā)揮,從而推動(dòng)制造業(yè)的健康穩(wěn)定的發(fā)展。