動態(tài)規(guī)劃思想范文

時間:2023-09-25 18:14:43

導語:如何才能寫好一篇動態(tài)規(guī)劃思想,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

動態(tài)規(guī)劃思想

篇1

關(guān)鍵詞:萬州、生態(tài)涵養(yǎng)規(guī)劃、多規(guī)協(xié)同

中圖分類號: G322 文獻標識碼: A

0 引言

2013年9月13日至14日,重慶市委四屆三次全會召開。會議審議通過了《關(guān)于科學劃分功能區(qū)域、加快建設(shè)五大功能區(qū)的意見》。渝東北地區(qū)被劃為生態(tài)涵養(yǎng)發(fā)展區(qū),這個以三峽庫區(qū)為主的區(qū)域,面臨著新的發(fā)展要求。除了要實現(xiàn)生態(tài)涵養(yǎng)的要求,更有要實現(xiàn)社會經(jīng)濟迅速發(fā)展,庫區(qū)社會和諧穩(wěn)定的要求。渝東北生態(tài)涵養(yǎng)區(qū)各區(qū)縣都迅速提出了各自的生態(tài)涵養(yǎng)發(fā)展的思路與規(guī)劃,但是總體仍然是發(fā)展戰(zhàn)略性規(guī)劃,產(chǎn)業(yè)和社會經(jīng)濟發(fā)展與環(huán)保要求居多。而區(qū)縣相對較小的地理空間,需要更具體的空間落地規(guī)劃和實施指導,不能夠簡單照搬重慶直轄市全域主體功能區(qū)劃分的方式來落實規(guī)劃意圖,而要探索以實施導向的區(qū)縣生態(tài)涵養(yǎng)規(guī)劃編制思路,引導規(guī)劃有效實施。本文結(jié)合萬州區(qū)生態(tài)涵養(yǎng)發(fā)展規(guī)劃編制的探索來進行分析。

1、渝東北生態(tài)涵養(yǎng)區(qū)的背景與要求

1.1背景

重慶首次將全域劃分為都市功能核心區(qū)、都市功能拓展區(qū)、城市發(fā)展新區(qū)、渝東北生態(tài)涵養(yǎng)發(fā)展區(qū)、渝東南生態(tài)保護發(fā)展區(qū)“五大功能區(qū)”,并根據(jù)各自定位,在產(chǎn)業(yè)布局、人口分布、生態(tài)建設(shè)等方面作出了調(diào)整。五個功能區(qū)域在更大的空間格局和區(qū)域范圍內(nèi)優(yōu)化資源配置,以更好地推動重慶大都市區(qū)的發(fā)展和建設(shè);劃分生態(tài)涵養(yǎng)發(fā)展區(qū)和生態(tài)保護發(fā)展區(qū),是為了正確處理加快發(fā)展與保護生態(tài)的關(guān)系;明確各區(qū)域功能定位、發(fā)展重點和發(fā)展方向,目的是強化五大區(qū)域聯(lián)動,更好地突出整體性、互補性和聯(lián)動性,實現(xiàn)全市一盤棋發(fā)展,引導形成主體功能明確、板塊之間聯(lián)動、資源配置優(yōu)化、整體效能提升的區(qū)域一體化發(fā)展格局。在五個功能區(qū)域劃分基礎(chǔ)上,進一步完善考核機制,充分發(fā)揮考核評價的引導和激勵作用。

渝東北生態(tài)涵養(yǎng)發(fā)展區(qū)包含11個區(qū)縣,以萬州為核心,包括1個大城市(萬州),10個中小城市,196個小城鎮(zhèn),面積約3.39萬平方公里。截止2011年底,該區(qū)域戶籍人口為1096萬人,常住人口為833萬人,城鎮(zhèn)人口為325萬人,城鎮(zhèn)化率為39.02%,城鎮(zhèn)人口占全市比重20.24%。該區(qū)域地區(qū)生產(chǎn)總值為1723.56億元,占全市域比重17.03%。該區(qū)域是國家重點生態(tài)功能區(qū)和農(nóng)產(chǎn)品主產(chǎn)區(qū),長江流域重要生態(tài)屏障和長江上游特色經(jīng)濟走廊,長江三峽國際黃金旅游帶和特色資源加工基地。需要把生態(tài)文明建設(shè)放在更加突出的地位,引導人口相對聚集和超載人口梯度轉(zhuǎn)移,著力涵養(yǎng)保護好三峽庫區(qū)的青山綠水,提高基本公共服務水平。

1.2要求

在五大功能區(qū)的劃分中,也對渝東北生態(tài)涵養(yǎng)區(qū)提出了以下重點要求:

一是把萬州作為重點開發(fā)區(qū)加快建設(shè),發(fā)展特色產(chǎn)業(yè)集群,承接周邊地區(qū)人口轉(zhuǎn)移,建成三峽庫區(qū)經(jīng)濟中心,帶動形成萬(州)開(縣)云(陽)特色產(chǎn)業(yè)板塊。

二是增強梁平縣、豐都縣、墊江縣、忠縣、開縣等國家農(nóng)產(chǎn)品主產(chǎn)縣農(nóng)業(yè)綜合生產(chǎn)能力,推進縣城及市級特色工業(yè)園區(qū)開發(fā),構(gòu)建農(nóng)產(chǎn)品特色經(jīng)濟板塊。

三是增強城口縣、云陽縣、奉節(jié)縣、巫山縣、巫溪縣等國家重點生態(tài)功能縣生態(tài)產(chǎn)品供給能力,因地制宜發(fā)展資源環(huán)境可承載的特色產(chǎn)業(yè),構(gòu)建特色旅游經(jīng)濟帶。

四是根據(jù)資源環(huán)境承載能力,培育壯大有資源依托、環(huán)保水平高、吸納就業(yè)多的特色優(yōu)勢產(chǎn)業(yè),重點發(fā)展特色資源加工、機械加工、輕紡食品、生物醫(yī)藥、清潔能源、商貿(mào)物流等。嚴格控制并逐步淘汰落后產(chǎn)業(yè)。大力發(fā)展特色效益農(nóng)業(yè)。大力發(fā)展生態(tài)旅游、人文旅游,加快建成長江三峽國際黃金旅游帶,把旅游業(yè)打造成為支柱產(chǎn)業(yè)。

2 萬州生態(tài)涵養(yǎng)發(fā)展規(guī)劃編制的探索

2.1萬州生態(tài)涵養(yǎng)發(fā)展的基礎(chǔ)

萬州是重慶第二大城市,地處三峽庫區(qū)腹心。目前該流域內(nèi)蘊藏著全國1/3的水資源和3/5的水能資源,擁有全國1/2的內(nèi)河通航里程,是我國水資源配置的戰(zhàn)略水源地、實施能源戰(zhàn)略的主要基地、珍稀水生生物的天然寶庫、連接東中西部的“黃金水道”和改善我國北方生態(tài)與環(huán)境的重要支撐點,具有十分重要的戰(zhàn)略地位。萬州區(qū)幅員面積3457平方公里,境內(nèi)山丘起伏,最高點海拔1760米,最低點海拔120米,中山、低山、丘陵面積占90%以上,少平壩和臺地,且零星散布。境內(nèi)河流、溪澗切割深,落差大,呈枝狀分布,均屬長江水系。境內(nèi)流域面積100平方公里以上的河流有共13條,溪溝93條,總水域面積為108.66平方公里。在不計基本農(nóng)田的因素下,萬州全區(qū)適宜建設(shè)用地約為 71.1平方公里,較適宜建設(shè)用地約為 475.1 平方公里。萬州適合進行城市建設(shè)用地的承載力約為190萬人左右。通過GIS分析,得出鐵峰山、方斗山、七曜山以及長江沿線是低安全格局區(qū)域,是保障生態(tài)安全的最基本保障,是城市發(fā)展建設(shè)中不可逾越的生態(tài)底線,需要重點保護和嚴格限制。

2.2萬州生態(tài)涵養(yǎng)發(fā)展的總體思路與空間布局

規(guī)劃到2020年基本形成生態(tài)涵養(yǎng)發(fā)展的總體格局,功能區(qū)劃清晰,發(fā)展重點突出,特色鮮明,生態(tài)環(huán)境明顯好轉(zhuǎn),對主要森林、水源、景區(qū)、生物多樣性保護較好,形成重點生態(tài)涵養(yǎng)保護區(qū)域的新發(fā)展態(tài)勢。形成以中心城區(qū)及各鎮(zhèn)鄉(xiāng)的合理城鎮(zhèn)體系結(jié)構(gòu),新農(nóng)村聚居點為主的鄉(xiāng)村居住空間體系,人口分布更加科學,城鄉(xiāng)低碳綠色建設(shè)和宜居水平大幅提升?;窘ǔ沙青l(xiāng)一體化的公共服務設(shè)施和基礎(chǔ)設(shè)施體系。社會事業(yè)更加發(fā)展,文化內(nèi)涵更加濃郁,實現(xiàn)“看得見山,望得見水,記得住鄉(xiāng)愁?!?/p>

全區(qū)生態(tài)涵養(yǎng)發(fā)展形成“一核、兩軸、多點”的重點開發(fā)空間格局,形成四帶五片保育與涵養(yǎng)的生態(tài)保護空間格局,總體形成開發(fā)與保護有機結(jié)合,城鄉(xiāng)空間一體的生態(tài)涵養(yǎng)發(fā)展的新空間結(jié)構(gòu)。

一核 ―― 中心城區(qū)

兩軸 ――長江和318國道兩條重點發(fā)展軸線

多點 ―― 41個鎮(zhèn)鄉(xiāng)小城鎮(zhèn)和若干鄉(xiāng)村聚居區(qū)、特色產(chǎn)業(yè)項目、旅游、能源基地,圍繞各中心,與生態(tài)環(huán)境有機融合的點狀網(wǎng)絡結(jié)構(gòu)

生態(tài)保護空間格局:

四帶――長江及沿線、鐵峰山脈、方斗山脈、七曜山脈等四片重點生態(tài)保障區(qū)

五片――甘寧龍沙武陵片、分水李河片、白羊太安片、龍駒羅田白土片、余家后山片等五片主要集中生態(tài)保育發(fā)展片區(qū)

圖1開發(fā)空間格局規(guī)劃圖

2.3萬州生態(tài)涵養(yǎng)發(fā)展功能區(qū)類型與空間布局

在全區(qū)生態(tài)安全格局分析基礎(chǔ)上,按照不同國土空間所承擔發(fā)展與涵養(yǎng)方面的不同特點與職責,宜建則建,宜養(yǎng)則養(yǎng),將全區(qū)國土空間劃定為城市建設(shè)區(qū)、城鎮(zhèn)建設(shè)區(qū)、鄉(xiāng)村聚居區(qū)、農(nóng)業(yè)保養(yǎng)區(qū)、生態(tài)保障區(qū)五類功能區(qū)域,對各類分區(qū)進行詮釋、定義,在不同功能區(qū)綜合落實城鄉(xiāng)建設(shè)規(guī)劃、土地利用規(guī)劃、生態(tài)環(huán)境保護規(guī)劃、社會事業(yè)發(fā)展規(guī)劃和產(chǎn)業(yè)空間布局規(guī)劃的主要要求,實現(xiàn)“五規(guī)合一”協(xié)同。

城市建設(shè)區(qū)以城市綜合發(fā)展為主,促進產(chǎn)業(yè)和社會事業(yè)充分發(fā)展,引導區(qū)域人口集聚,是最主要的城市生產(chǎn)生活空間。

城鎮(zhèn)建設(shè)區(qū)以城鎮(zhèn)特色發(fā)展為主,優(yōu)化空間布局,緩解生境壓力,促進人口集聚,適度發(fā)展第二產(chǎn)業(yè)和商業(yè)服務業(yè)等第三產(chǎn)業(yè),是主要的城鎮(zhèn)生活空間。

鄉(xiāng)村聚居區(qū)以農(nóng)村人口聚居為主,新建與改造相結(jié)合,節(jié)約資源能源,提高人居環(huán)境質(zhì)量,可適當發(fā)展鄉(xiāng)村旅游等第三產(chǎn)業(yè),是主要的農(nóng)村生活空間。

農(nóng)業(yè)保養(yǎng)區(qū)以發(fā)展生態(tài)農(nóng)業(yè)為主,引導人口有序轉(zhuǎn)移,主要發(fā)展特色農(nóng)業(yè)、觀光休閑等產(chǎn)業(yè),是主要的農(nóng)業(yè)性生產(chǎn)空間

生態(tài)保障區(qū)以生態(tài)涵養(yǎng)為主,加強生態(tài)建設(shè)和環(huán)境保護,適當發(fā)展旅游度假等第三產(chǎn)業(yè),是主要的生態(tài)空間。

2.4鎮(zhèn)鄉(xiāng)生態(tài)涵養(yǎng)涵養(yǎng)發(fā)展的引導與管控

對全區(qū)53個鎮(zhèn)鄉(xiāng)街道的國土空間結(jié)合其具體情況科學劃定功能區(qū)域,分別明確各區(qū)引導建設(shè)內(nèi)容與禁止建設(shè)內(nèi)容,既要充分發(fā)揮各鎮(zhèn)鄉(xiāng)資源優(yōu)勢,又要落實區(qū)域生態(tài)環(huán)境建設(shè)、社會經(jīng)濟發(fā)展的要求。部分鎮(zhèn)鄉(xiāng)街道擁有前述5類功能區(qū),部分也只擁有其中的幾種。各鎮(zhèn)鄉(xiāng)街道規(guī)劃以發(fā)展規(guī)劃圖、生態(tài)涵養(yǎng)管控(負面清單)圖及發(fā)展管控說明(表)進行表達,如下圖案例。

圖2龍沙鎮(zhèn)生態(tài)涵養(yǎng)規(guī)劃圖

2.5規(guī)劃的實施與運用

本規(guī)劃探索實施的路徑。規(guī)劃提出經(jīng)政協(xié)協(xié)商,黨委政府審議,人大審批后實施,嚴格執(zhí)行,不得隨意調(diào)整或突破。對禁止性要求等要重點監(jiān)督。原則上3年修編一次,修編前對實施情況應進行評估。具體建設(shè)時還應按照土地利用、城鄉(xiāng)規(guī)劃建設(shè)、環(huán)境保護等規(guī)劃的要求,相關(guān)法律法規(guī)規(guī)定及程序進行。

要求各鎮(zhèn)鄉(xiāng)街道要加強規(guī)劃的實施,在招商引資、項目選址等活動時要對照本規(guī)劃,作為宏觀指導要求。在城市規(guī)劃、小城鎮(zhèn)規(guī)劃、土地利用規(guī)劃等規(guī)劃進行動態(tài)調(diào)整時,要以本規(guī)劃作為中觀指導依據(jù)。項目審批時,要以本規(guī)劃作為具體的審批規(guī)劃依據(jù)。

同時也要加強生態(tài)補償機制的研究、制度設(shè)計與實施。探索完善生態(tài)涵養(yǎng)發(fā)展指標評價體系。

3 實施導向的區(qū)縣生態(tài)涵養(yǎng)發(fā)展規(guī)劃方法與思路

萬州生態(tài)涵養(yǎng)發(fā)展規(guī)劃的編制,在以下實施導向的重點編制思路與方法探索,為直轄市區(qū)縣主體功能區(qū)規(guī)劃向?qū)嵤用嫣剿魈峁┝擞幸娴闹巍?/p>

3.1多規(guī)協(xié)同的規(guī)劃

生態(tài)涵養(yǎng)發(fā)展是區(qū)縣域發(fā)展思路的調(diào)整,空間布局的優(yōu)化。而傳統(tǒng)的城鄉(xiāng)建設(shè)規(guī)劃、國土規(guī)劃、社會經(jīng)濟發(fā)展規(guī)劃等各自引導著發(fā)展和項目實施。為了生態(tài)涵養(yǎng)發(fā)展規(guī)劃意圖的落實,就必須要協(xié)同各大規(guī)劃的重點要求,協(xié)調(diào)各大規(guī)劃在空間落地等方面的一些矛盾,在新的生態(tài)涵養(yǎng)發(fā)展思路下形成新戰(zhàn)略、新布局,同時又探索把生態(tài)涵養(yǎng)規(guī)劃的要求,反轉(zhuǎn)到城鄉(xiāng)建設(shè)規(guī)劃、國土規(guī)劃等傳統(tǒng)法定規(guī)劃的更新落實,實現(xiàn)動態(tài)的有機融合狀態(tài)。

3.2生態(tài)規(guī)劃要點把控

生態(tài)涵養(yǎng)發(fā)展規(guī)劃中“生態(tài)”是重點。而各規(guī)劃中涉及到的生態(tài)要素眾多,規(guī)劃綜合時既要考慮實現(xiàn)產(chǎn)業(yè)轉(zhuǎn)型、城鄉(xiāng)空間布局優(yōu)化、生態(tài)環(huán)境保護等重大內(nèi)容,更要重點關(guān)注關(guān)鍵生態(tài)要素的管控,主要有水源地及相關(guān)區(qū)域,集中林地,自然保護區(qū),風景名勝區(qū)、森林公園、濕地等,石漠化、地災點等生態(tài)修復區(qū)域。規(guī)劃既要加強保護,也要通過人為的建設(shè),形成更優(yōu)的生態(tài)空間結(jié)構(gòu)和發(fā)展應用模式。

3.3鎮(zhèn)鄉(xiāng)生態(tài)規(guī)劃的管控

鎮(zhèn)鄉(xiāng)是規(guī)劃實施的重要單元。當區(qū)縣城成為發(fā)展的重點區(qū)域,項目的建設(shè)、生產(chǎn)運行有較嚴格的控制。而鎮(zhèn)鄉(xiāng)成為生態(tài)涵養(yǎng)的重要空間,一是鎮(zhèn)鄉(xiāng)小城鎮(zhèn)發(fā)展中容易忽視環(huán)境類基礎(chǔ)設(shè)施建設(shè),也是環(huán)境污染小企業(yè)的重點集聚地,人居環(huán)境較差。二是在農(nóng)業(yè)生產(chǎn)過程中,不注重對生態(tài)意義重要的資源保護,部分農(nóng)業(yè)、畜禽養(yǎng)殖等造成面源污染。本次規(guī)劃強化將各區(qū)域?qū)用嬉?guī)劃意圖、法規(guī)要求結(jié)合鎮(zhèn)鄉(xiāng)實際情況,細化到每個鎮(zhèn)鄉(xiāng)街道空間,重點強調(diào)了生態(tài)管控的要素與要求,并以鎮(zhèn)鄉(xiāng)領(lǐng)導、管理者容易懂,便于使用的圖表方式來表達,明白每塊國土空間適合干什么,不能干什么,運用于發(fā)展戰(zhàn)略布局、招商引資等工作情況,大大增強實用性。

3.4 GIS的空間規(guī)劃疊加與分析

在規(guī)劃技術(shù)方法上,加強了GIS的空間規(guī)劃疊加與分析技術(shù)的應用。首先是GIS技術(shù)對全域生態(tài)本底進行分析,重點對山脈、水系、森林和需要控制的景源、地災點進行分析,結(jié)合地形坡度等進行分析,綜合評判生態(tài)安全格局,成為規(guī)劃研究的基礎(chǔ)。再者對各大規(guī)劃(如城規(guī)、國土、交通、環(huán)保等)的要求分解并轉(zhuǎn)化為空間發(fā)展布局或管控要素線,進行綜合疊加來推導方案,并與生態(tài)基礎(chǔ)分析疊加評估,增強了規(guī)劃的科學性。

3.5非法定規(guī)劃的實施應用探索

作為非法定規(guī)劃,其應用方式與保障路徑必須在規(guī)劃初期就應該設(shè)計好,才能夠保障有較強的實施性。關(guān)鍵點一是要通過黨委政府審議、人大審批等方式,獲得有類似準法定規(guī)劃的權(quán)威性,二是要設(shè)計好評估、檢查、監(jiān)督機制,有一定獎懲的規(guī)則,以保障有足夠的實施自覺性。

篇2

【關(guān)鍵詞】動態(tài)規(guī)劃;高維;優(yōu)化方法;渠道工程

目前,動態(tài)規(guī)劃的“維數(shù)災”問題受到計算機高速存儲量和計算時間的限制,在求解高維問題時,常遇困難.近40年來,各國學者對動態(tài)規(guī)劃的計算方法進行了多方面的探索,提出了各種方法,如旨在減少維數(shù)的拉格朗日乘子法[1]、動態(tài)規(guī)劃逐次漸近法[2],聚合法[3],旨在減少離散狀態(tài)數(shù)的離散微分動態(tài)規(guī)劃法[4]、雙狀態(tài)動態(tài)規(guī)劃法[5]、狀態(tài)增量動態(tài)規(guī)劃法[6]和不離散狀態(tài)直接求解以減少計算量的微分動態(tài)規(guī)劃[7](要求目標函數(shù)、約束條件三階可微)以及H.R.Howson等人1975年提出的以減少階段數(shù)為手段的漸進優(yōu)化法[7].這些方法雖然一定程度上減輕了“維數(shù)災”,但進展并不很大.作者在對大型渠道工程系統(tǒng)優(yōu)化設(shè)計研究時也遇到了這些問題,本文另辟其徑,采用文獻[8~12]中的系統(tǒng)試驗選優(yōu)基本思想,來求解高維動態(tài)規(guī)劃問題,則可在該領(lǐng)域內(nèi)取得突破性的進展。

1. 大中型渠道工程優(yōu)化設(shè)計的高維動態(tài)規(guī)劃模型及求解方法

1.1大中型渠道工程優(yōu)化設(shè)計的高維動態(tài)規(guī)劃模型。文獻[13]提出了大中型渠道工程系統(tǒng)的定性定量混合系統(tǒng)動態(tài)規(guī)劃模型,模型的決策變量為各渠段縱坡(Ii)和各渠段的定性方案(Si),目標函數(shù)為工程計算分析期內(nèi)的總支出費用,并考慮首末水位、不沖不淤、渠道最小水位銜接和工程總投資約束. 為了進一步提高模型決策的精度,在文獻[13]的模型基礎(chǔ)上,再考慮以下約束:

1.1.1填挖土方量約束。若獲得滿足約束條件,且使文獻[13]目標函數(shù)最小的解,而渠道工程的填方量大于挖方量,附近又沒有土方資源,此時文獻[13]中模型獲得的解就不一定為最優(yōu)解,因此,還應加上填挖方量約束方程。

1.2求解方法。考慮全部約束條件,則模型為四維問題,該模型的求解工作量、難度比文獻[13]的二維問題大大增加了,為此本文在模型的求解方面進行了一定的探討,提出了高維動態(tài)規(guī)劃的試驗選優(yōu)方法。

1.2.1基本原理。本文對高維動態(tài)規(guī)劃的降維傳統(tǒng)技術(shù)之一——拉格朗日乘子法[1]進行了修正,提出了廣義拉氏方法,使加入到目標函數(shù)中去的約束檢驗在計算迭代過程中進行,而不是傳統(tǒng)的計算迭代結(jié)束后檢驗,因而不管拉格朗日乘子取值多少,采用廣義拉氏方法的解均為滿足約束條件的可行解.此時的問題就轉(zhuǎn)化為尋找最優(yōu)拉氏乘子的問題,根據(jù)數(shù)學模型和拉氏乘子的物理意義,容易知道拉氏乘子的取值范圍,在此基礎(chǔ)上則可采用部分試驗選優(yōu)方法[8~12](如正交試驗法)確定最優(yōu)的乘子值。

1.4實例分析。采用文獻[13]算例,有關(guān)主要參數(shù)和可能的定性方案見表1.通過計算分析u2,u3,u4的取值范圍均取為[0,2.4],選用L9(34)型正交表對所選的9個uj組合進行了對應的一維動態(tài)規(guī)劃問題求解,其最優(yōu)解和采用DDDP法求解結(jié)果目標值相差5.6%,對uj進一步離散選用L25(56)型正交表選擇對應25個uj組合進行對應的一維動態(tài)規(guī)劃問題求解分析,其最優(yōu)解和采用DDDP法求解結(jié)果基本相同,此時占用計算機的運算時間不到DDDP法的1/6,有關(guān)計算主要成果摘要見表2和表3。

2. 結(jié)論

(1)尋求高維動態(tài)規(guī)劃的求解方法是近40年國內(nèi)外眾多學者久攻不下的系統(tǒng)科學重大研究的課題.目前經(jīng)典方法一般僅能求解3~5維問題,其它近似方法也只能求解數(shù)拾維問題.本文提出的試驗選優(yōu)方法可以使較高維數(shù)的高維動態(tài)規(guī)劃問題求解成為可能.本文的試驗方法主要針對正交試驗法而言的,對于采用其它部分試驗選優(yōu)方法進行優(yōu)化分析,還有待于進一步探討。

(2)本文提出的大型渠道工程優(yōu)化設(shè)計的高維動態(tài)規(guī)劃模型對大型調(diào)水工程優(yōu)化設(shè)計具有較為重要的參考價值。

參考文獻

[1]Leon C, Mary W C.Introduction to Dynimic Programming.PergamonmPress, 1981, 197~207.

[2]Bellman R E, Dreyfus S E. Applied Dynamic Programming.Princeton Unversity Press, 1962, 293~3852.

[3]Turgeon A. A decomposition method for the long\|term schednling of reservoirs in series. Water resources research, 1981,17(6).

[4]Heidar M,Chow V T, et al. Disrete differential dynamic programming approach to water resource optimization.Water resources research, 1971,17(2).

[5]Ozden M. A binary state DP algorithm for operation problem of multireservoir system. Water resource resecrch.1984,20(1).

[6]Larson R E. State increment dynamic prorgamming.Management science 19, 1973,1452~1458.

[7]白憲臺,多維動態(tài)規(guī)劃.北京:水利電力出版社,1988,43~52.

[8]程吉林,金兆森,大系統(tǒng)模擬試驗選優(yōu)方法及應用.水利學報,1993,(11).

[9]程吉林,孫學華,模擬技術(shù)、正交設(shè)計、層次分析及其在灌區(qū)優(yōu)化規(guī)劃中的應用.水利學報,1990,(9).

[10]程吉林.某些特殊路徑問題的正交表法.系統(tǒng)工程,1991,(2).

[11]程吉林.介紹一種大系統(tǒng)優(yōu)化的知識模型.系統(tǒng)工程理論和實踐,1992,(4).

[12]Jilin C, et al. Optimal test theory of large scale system and applying in irrigation district scheme.System science and system engineering,(ICCSSE'93)Edited by Zheng Weimin, International Academic Publishers Press, 1993, 348~356.

[13]Jilin C, et al. A dynamic programming medol of mixture system for conveyance canal engineering.Journal of system science and system engineering, 1993,4(2).

[14]高侖彥.正交及回歸設(shè)計方法.北京:冶金工業(yè)出版社,1985.

[15]北京大學力學系概率統(tǒng)計組.關(guān)于正交設(shè)計的優(yōu)良性.應用數(shù)學學報,1977,(1~2).

篇3

動態(tài)規(guī)范是算法里一種非常重要的方法,是求解決策過程最優(yōu)化的數(shù)學方法。動態(tài)規(guī)劃自問世以來,在經(jīng)濟管理、生產(chǎn)調(diào)度、工程技術(shù)和最優(yōu)控制等方面得到了廣泛的應用。例如最短路線、庫存管理、資源分配、設(shè)備更新、排序、裝載等問題,用動態(tài)規(guī)劃方法比用其他方法求解更為方便。

本文通過對經(jīng)典的01背包問題的求解,從動態(tài)規(guī)劃的角度進行闡述,通過案例對該算法的計算過程進行了直觀的描述,并對該算法進行了一定的優(yōu)化,最后指出該算法的優(yōu)缺點。

[關(guān)鍵詞]背包 動態(tài)規(guī)劃 時間復雜度 空間復雜度

[中圖分類號]TP31[文獻標識碼]A[文章編號]1009-5349(2010)05-0121-03

前言

背包問題是一個經(jīng)典的動態(tài)規(guī)劃模型,很多關(guān)于算法的教材都把它作為一道例題,該問題既簡單又容易理解,而且在某種程度上還能夠揭示動態(tài)規(guī)劃的本質(zhì)。

將具有不同重量和價值的物體裝入一個有固定載重量的背包,以獲取最大價值,這類問題被稱為背包問題。

背包問題可以擴展出很多種問題,而01背包問題是最常見、最有代表性的背包問題。

一、問題描述

給定一個載重量為M的背包及n個物體,物體i的重量為wi、價值為pi,1≤i≤n,要求把這些物體裝入背包,使背包內(nèi)的物體價值總量最大。此處我們討論的物體是不可分割的,通常稱這種物體不可分割的背包問題為01背包問題。

二、基本思路

01背包問題的特點是:每種物體只有一件,可以選擇放或者不放。假設(shè):xi表示物體i被裝入背包的情況,xi=0,1。當xi=0時,表示物體沒有被裝入背包;當xi=1時,表示物體被裝入背包。根據(jù)問題的要求,有如下的約束方程(1)和目標函數(shù)(2):

三、利用動態(tài)規(guī)劃法求解01背包問題

(一)動態(tài)規(guī)劃算法的基本思想

動態(tài)規(guī)劃算法通常用于求解具有某種最優(yōu)性質(zhì)的問題。在這類問題中,可能會有許多可行解。每一個解都對應于一個值,我們希望找到具有最優(yōu)值的解。動態(tài)規(guī)劃算法與分治法類似,其基本思想也是將待求解問題分解成若干個子問題,先求解子問題,然后從這些子問題的解得到原問題的解。與分治法不同的是,適合于用動態(tài)規(guī)劃求解的問題,經(jīng)分解得到子問題往往不是互相獨立的。若用分治法來解這類問題,則分解得到的子問題數(shù)目太多,有些子問題被重復計算很多次。如果我們能夠保存已解決的子問題的答案,而在需要時再找出已求得的答案,這樣就可以避免大量的重復計算,節(jié)省時間。我們可以用一個表來記錄所有已解的子問題的答案。不管該子問題以后是否被用到,只要它被計算過,就將其結(jié)果填入表中,這就是動態(tài)規(guī)劃法的基本思路。具體的動態(tài)規(guī)劃算法多種多樣,但它們具有相同的填表格式。

(二)算法設(shè)計

假定背包的載重量范圍為0~m。類似于資源分配那樣,令optpi(j)表示在前i個物體中,能夠裝入載重量為j的背包所得的最大價值,j=1,2,……,m。顯然,此時在前i個物體中,有些物體可以裝入背包,有些物體不能裝入背包。于是,可以得到下面的動態(tài)規(guī)劃函數(shù):

(4)式表明:把前面i個物體裝入載重量為0的背包,或者把0個物體裝入載重量為j的背包,得到的價值都為0。(5)式表明:當?shù)趇個物體的重量大于背包的載重量時,裝入前i個物體得到的最大價值,與裝入前i-1個物體得到的最大價值一樣,即第i個物體沒有裝入背包。(6)式表明:當?shù)趇個物體的重量小于背包的載重量時,如果第i個物體裝入背包,背包中物體的價值,等于把前i-1個物體裝入載重量為j-wi的背包所得到的價值與第i個物體的價值pi之和;如果第i個物體沒有裝入背包,則背包中物體的價值,等于把前i-1個物體裝入載重量為j的背包,卻不裝入第i個物體所取得的價值。顯然,這兩種裝入方法,在背包中所取得的價值不一定相同,因此,取這兩者中的最大值,作為把前面i個物體裝入載重量為j的背包所取得的最優(yōu)價值。

該算法可分為n階段:

第一階段,只裝入一個物體,計算在不同載重量的背包情況下,所取得的最大價值;

第二階段,裝入前兩個物體,按(5)式和(6)式計算在不同載重量的背包情況下,取得的最大價值;

……

第n階段,裝入前n個物體,按(5)式和(6)式計算在不同載重量的背包情況下,取得的最大價值,而在背包載重量為M時,所得結(jié)果就是我們想要的結(jié)果。

為了確定具體哪個物體裝入背包,從optpn(m)的值向前倒推。有如下遞推關(guān)系式:

(7)式表明:如果optpi(j)大于optpi-1(j),則物體i被裝入背包;如果optpi(j)等于optpi-1(j),表明i物體未被裝入背包。按照該關(guān)系式,i從n到1依次類推,直到確定第一個物體是否被裝入背包為止,就能確定裝入背包的具體物體。

(三)存儲結(jié)構(gòu)

該算法需要將每一個物體的重量和價值分別存儲起來,并針對不同載重量的背包對物體分別計算,故考慮使用數(shù)組來實現(xiàn)。對于物體i,用weight[i]來表示重量、用p[i]表示價值,解向量用x[i]表示物體i是否被放入,上面提到的optpi(j)則用二維數(shù)組相應的optp[i][j]來表示,物體個數(shù)n,背包載重量為m。

(四)算法實現(xiàn)

initial knapsack_dynamic(initial optp[][],weight[],p[],x[],n,m)

{

initial i,j,value;

//根據(jù)(4)式初始化第0列及解向量X

//解向量初始值設(shè)置為false,表示起初所有物體均未放入背包

for(i = 0; i

{

optp[i][0] = 0;

x[i] = FALSE;

}

//根據(jù)(4)式初始化第0行

for(i = 0; i

{

optp[0][i] = 0;

}

//利用(5)(6)式計算optp[i][j]

for(i = 1; i

{

for(j = 1; j

{

optp[i][j] = optp[i-1][j];

if((j >= weight[i]) && (optp[i-1][j - weight[i]]+p[i]) > optp[i-1][j])

optp[i][j] = optp[i-1][j-weight[i]] + p[i];

}

}

//確定裝入背包的具體物體

j = m;

for(i = n; i > 0; i--)

{

if(optp[i][j] > optp[i-1][j])

{

x[i] = TRUE;

j = j - weight[i];

}

}

//value就是所要求的值

value = optp[n][m];

return value;

}

1.案例分析

現(xiàn)有載重量為10的背包,有四個物體A、B、C、D,其重量分別為4、2、5、3,價值分別為4、3、5、8,要求放入物體使背包所獲價值最大。

用optp[i][j]來存儲這四個物體在不同載重量的背包下所獲的價值,計算過程如下表所示:

2.時間空間復雜度

該算法中,矩陣optp的大小為(m+1)×(n+1),物體的重量、價值和解向量大小都等于物體個數(shù)n,故該算法的空間復雜度為O(nm)。對物體重量、價值的初始化(算法實現(xiàn)略)所需時間都為n,解向量和矩陣第0行初始化時間為n,矩陣第0列初始化時間為m,對矩陣optp的計算所需時間為n×m,解向量X的確定時間為n,故整個算法的時間復雜度為O(nm)。

(五)算法優(yōu)化

在上述算法中,時間復雜度不能再繼續(xù)優(yōu)化了,但是空間復雜度是可以繼續(xù)優(yōu)化的。

上述算法中,存儲optp使用的是二維數(shù)組,其大小為(m+1)×(n+1),但是仔細觀察發(fā)現(xiàn),optp[i][j]只與optp[i-1][j]和optp[i-1][j - weight[i]]有關(guān),與optp[k][l](k=1,2,……,i-2,i+1,……n,j=1,2,……,m)無關(guān),故可考慮只用一維數(shù)組_optp來存儲,_optp[j]相當于optp[i][j]。而考慮到optp[i][j]是由optp[i][j]和optp[i-1][j - weight[i]]共同計算得到的,故該算法中的j循環(huán)要從后往前計算,_optp[]的計算算法設(shè)計如下所示:

for(i = 1; i

{

for(j = m; j >= 1; j--)

{

if((j >= weight[i]) && (_optp[j - weight[i]]+p[i]) > _optp[j])

_optp[j] = optp[j-weight[i]] + p[i];

}

}

上述例子中,相應的_optp[j]計算結(jié)果如下表所示:

}

}

上述例子中,相應的_optp[j]計算結(jié)果如下表所示:

顯然,對于物體i,_optp[j]的計算不會影響到_optp[0,1,……,weight[i]-1],故上述算法可繼續(xù)優(yōu)化為:

for(i = 1; i

{

for(j = m; j >= weitht[i]; j--)

{

if((_optp[j - weight[i]]+p[i]) > _optp[j])

_optp[j] = optp[j-weight[i]] + p[i];

}

}

對于01背包問題,常見的要求有兩種:一種是恰好裝滿背包、另一種則沒有要求,針對這兩種問法,可從初始化上來區(qū)分。

當要求恰好裝滿背包時,初始化時將_optp[0]設(shè)為0,其他_optp[1,2,……,m]全部設(shè)為-∞,這樣就可保證最終得到的_optp[n]是一種恰好裝滿的最優(yōu)解,此時可以把初始化理解成沒有任何物體可放時,只有容量為0的背包能被價值為0的nothing“恰好裝滿”;當沒有這個限制時,初始化時應將_optp[0,1,……,m]都設(shè)為0,此時可以理解為任何一個背包都有一個合法的解“什么都不裝”,這個解的價值為0。

當優(yōu)化后,空間復雜度變?yōu)镺(m),計算所需時間為:

當weitht[i]較大時,可以節(jié)省很多時間。

動態(tài)規(guī)劃的缺點:對于01背包問題,用動態(tài)規(guī)劃方法解很容易理解,但是這種方法有一些弊端,從上述算法可以看出:當物體的重量較大時,所需的物理空間較大;當物體的重量不是整數(shù)時,無法利用數(shù)組來存儲該結(jié)構(gòu)。

四、結(jié)束語

在日常生活中,01背包問題有很多應用,比如如何利用有限空間的手提包,裝入外出旅行的各種必需品。

篇4

關(guān)鍵詞:背包算法;優(yōu)先策略;動態(tài)規(guī)劃;棧操作

中圖分類號:TP274文獻標識碼:B

文章編號:1004-373X(2010)02-128-03

Design and Analysis of Knapsack Problem

YU Miao

(Anshan Meteorological Bureau of Liaoning Province,Anshan,114004,China)

Abstract:Knapsack problem is typical problem in computer science and its solution is a hot spot in algorithms design and verification.The solutions for the knapsack problems,algorithms design and verification with three different means:preference strategy,dynamic programming and recursion.Correctness of these three algorithms are proved,in the complexity analysis,the complexity of space and time in preference strategy is lowest,while the dynamic programming has obvious superiority.

Keywords:knapsack problem;preference strategy;dynamic programming;stack peration

0 引 言

算法研究是計算機科學的重要組成部分,有觀點認為 “計算機科學是一門研究算法的科學”[1,2],無論這種觀點是否全面,都足以說明算法研究在計算機科學發(fā)展中所具有的重要作用及地位。算法研究是通過程序來實踐的。程序=算法+數(shù)據(jù)結(jié)構(gòu)[3,4],這一大家都熟知的公式更加表明算法研究不是單純的數(shù)學問題,必須通過 “實踐”掌握算法的實質(zhì)。這里對 “背包問題”采用優(yōu)先策略、動態(tài)規(guī)劃及遞歸三種不同方法進行求解、算法設(shè)計及驗證,并通過各種算法予以實現(xiàn)。本文研究、分析了實現(xiàn) “背包問題”算法的實質(zhì)。

1 問題描述

一旅行者攜帶背包去登山,已知所能隨身攜帶的背包重量限度為 b,現(xiàn)有n種物品可供選擇裝入背包。第i種物品重量為ai,其重要性價值指標為ci,旅行者應如何選擇攜帶各種物品,以使總價值最大[5,6]。

“背包問題”的數(shù)學模型為:

max z=∑ni=1cixi

約束條件為:

∑ni=1aixi≤b,ai>0,ci>0,

xi=0或1, 1≤i≤n

2 優(yōu)先策略的算法設(shè)計

按重量a1≥a2≥a3≥a4≥…≥an對xi進行調(diào)整,作為待選隊列[7,8]。

假設(shè)前面已經(jīng)選擇了s個,即jr1,jr2,…,jrs為最優(yōu)選擇的前s件物品,則應滿足:

cr1,cr2,…,crs,且∑si=1 ai

對后面等待選擇的物品jk來說,與之對應的ak無疑滿足:

ak≤ari, i=1,2,…,s

即所選擇的物品重量比其所有待選擇的物品重量大。因此,對待選擇的物品是否被選中將分為:∑si=1ari+ak≤b和∑si=1ari+ak>b 兩種情況。

(1) 對于∑si=1ari+ak≤b的情況,將xk插入已選擇的J隊列中,然后根據(jù)ci的大小找到其相應的位置。

(2) 對于∑si=1ari+ak>b的情況,有:

① 若存在ck≥cri,則將xk插入并按ci排序后,將jri從已選擇的隊列中刪除并插入按ci從大到小、重量從小到大地排序到二次篩選隊列中。

② 若存在ck

③ 當待選隊列為空時,選擇隊列從s到1與從二次篩選隊列中選擇的元素進行優(yōu)化選擇。若存在:

∑n-s-mj=1aj+∑s-1i=1ari≤b, ∑n-s-1j=1cj>cri

將組合的各元素Xi插入已選擇的J隊列中,然后根據(jù) ci的大小找到其相應的位置:jri,jr2,…,jrs。

④ 當③中已完成對首元素組合的篩選后,此時的J隊列為最優(yōu)選擇。

3 動態(tài)規(guī)劃法的算法設(shè)計

動態(tài)規(guī)劃的基礎(chǔ)是最優(yōu)化原理,其關(guān)鍵問題是建立動態(tài)規(guī)劃的數(shù)學模型(狀態(tài)轉(zhuǎn)移方程)。主要步驟是:劃分階段,確定階段的狀態(tài);確定決策變量、權(quán)函數(shù)以及指標函數(shù);建立狀態(tài)轉(zhuǎn)移方程;根據(jù)動態(tài)規(guī)劃的最優(yōu)化原理建立遞歸方程;自底向上遞推逐步求解。

(1) 劃分階段k:將供選擇的物品按 1,2,…,n排序,每個階段可裝入一種物品;

(2) 確定決策變量:xk裝入第k種物品的件數(shù);背包中允許裝入前k種物品的總重量;

(3) 建立狀態(tài)轉(zhuǎn)移方程:sk=sk-1+akxk;

決策集合為:

D(sk-1)={xk|0≤xk≤[sk/xk],xk∈Z}

(4) 建立遞歸方程:

fk(sk)=maxxk=0,1,…,\{fk-1(sk-1- xkak+ ck)}

f0(0)=0

(5) 遞推求解:逐步計算出f1(s1),f2(s2),…,fn(sn)最后求得,fn(a)即為所求的最大價值。

4 遞歸的算法設(shè)計

遞歸算法的基本思想是假設(shè)用布爾函數(shù) knap(s,n) 表示 n件物品放入可容質(zhì)量為 s的背包中是否有解,當knap函數(shù)的值為真時,說明問題有解,相反當值為假時,無解。這里可以通過輸入s和n的值,進行以下幾種情況的討論。

(1) 當s=0時,可知問題有解,即函數(shù)knap(s,n)的值為true。

(2) 當s

(3) 當s>0且n0且n≥1 時,才符合實際情況,這時又分為兩種情況。即:

篇5

關(guān)鍵詞:管網(wǎng)設(shè)計;直接及間接優(yōu)化;設(shè)計方法

中圖分類號:S276 文獻標識號:A 文章編號:2306-1499(2013)06-(頁碼)-頁數(shù)

目前,對于城市排水管道系統(tǒng)優(yōu)化設(shè)計問題,已開發(fā)了一些水力計算程序和優(yōu)化算法如直接優(yōu)化法、動態(tài)規(guī)劃法、遺傳算法等,并在設(shè)計過程中得到一定應用,并能顯著提高設(shè)計水平和設(shè)計效率。下面就排水管網(wǎng)優(yōu)化方法及特點做一簡要介紹。

1.直接優(yōu)化設(shè)計方法及優(yōu)缺點

在管線平面布置己定情況下的污水管網(wǎng)各個參數(shù)的優(yōu)化設(shè)計,被分為直接優(yōu)化法和間接優(yōu)化法。直接優(yōu)化法是根據(jù)排水管道系統(tǒng)性能指標的變化,通過直接對各種方案或可調(diào)參數(shù)的選擇、計算和比較,來得到最優(yōu)解或滿意解,它具有直接、直觀和容易驗證的優(yōu)點。直接優(yōu)化法主要包括電子表格法和兩相優(yōu)化法。電子表格法是利用“電子表格”統(tǒng)計數(shù)據(jù)和分析數(shù)據(jù)的功能進行管網(wǎng)優(yōu)化的。它提供了一種啟發(fā)式費用估算方法,利用這種方法,用戶可尋找最小費用的設(shè)計。兩相優(yōu)化法是當設(shè)計流量確定后,在滿足約束條件的前提下,選取最小流速和最大充滿度進而得到最優(yōu)管徑和最小坡度,最大限度的降低管道埋深。其算法與人工計算基本相同,即按污水流動方向,先計算支管后計算干管和主干管,通過從上游至下游依次對各設(shè)計管段進行計算,繼而完成一條管道及整個管網(wǎng)的計算。

2.間接優(yōu)化法

間接優(yōu)化法對其中的某些條件適當取舍,把問題簡化、抽象為容易解決的數(shù)學模型,通過計算得出最優(yōu)解線性規(guī)劃法是優(yōu)化技術(shù)中最常用的一種方法。它對于污水管網(wǎng)設(shè)計計算模型中的約束條件和目標函數(shù)的非線性,分別用它們的一級泰勒展開式代替,將之化為線性規(guī)劃問題,用線性規(guī)劃的解作為問題的近似解,反復迭代,使迭代點序列逼近非線性規(guī)劃的最優(yōu)解。它的缺點是把管徑當作連續(xù)變量來處理,存在計算管徑與市售規(guī)格管徑相矛盾的問題。把非線性函樹轉(zhuǎn)為線性函數(shù),前期準備工作量大,且難以保證結(jié)果的計算精度?;旌险麛?shù)規(guī)劃法,作為線性規(guī)劃法發(fā)展形式,克服了線性規(guī)劃的部分缺點,可以解出離散的標準管徑,但由于整形變量過多,往往難以求解,從而應用受到限制。

2.1非線性規(guī)劃法

非線性規(guī)劃法是為了適應排水管道系統(tǒng)優(yōu)化設(shè)計計算模型中目標函數(shù)和約束條件的非線性特征而提出來的。它可以優(yōu)化選擇排水管道的直徑和埋深,以及中途泵站的位置。其假定管徑是離散的,易于對目標函數(shù)和約束條件進行敏感性分析。但是該方法極大地限制了目標函數(shù)和約束條件的形式。

2.2罰函數(shù)離散優(yōu)化法

罰函數(shù)離散優(yōu)化法將排水工程的特點與罰函數(shù)離散思想相聯(lián)系,可以排除不合理的設(shè)計方案,以管系末端管底標高為全局控制因素,建立與目標函數(shù)的可行解對應關(guān)系,并通過同時進行整體控制與局部控制的水力計算方法,遍歷目標函數(shù)的可行解及局部最優(yōu)解,從而得到管系的全局最優(yōu)設(shè)計方案。該方法由于對管道系統(tǒng)的各種可行解進行遍歷,在解決大型管網(wǎng)問題時,必然存在運行時間長和內(nèi)存占用量大的缺點。

2.3動態(tài)規(guī)劃法

動態(tài)規(guī)劃法是目前在國內(nèi)外廣泛應用的排水管道優(yōu)化設(shè)計計算方法。它的基本思想是認為排水管道是一個多階段的決策過程,通過對研究課題劃分階段,尋求最優(yōu)路線來進行優(yōu)化設(shè)計。它在應用中分為兩支:一支是以各節(jié)點埋深做為狀態(tài)變量,通過坡度決策進行全方位搜索,其優(yōu)點是直接利用標準管徑,優(yōu)化結(jié)果與初始解無關(guān),且能控制計算精度,但要求狀態(tài)點的埋深間隔很小,使存儲量和計算時間大為增加。為了節(jié)省運算時間,引入了逆差動態(tài)規(guī)劃法。逆差動態(tài)規(guī)劃法是在動態(tài)規(guī)劃法的基礎(chǔ)上引入了縮小范圍的迭代過程,可以顯著地減小計算時間和存儲量,但在迭代過程中可能遺漏最優(yōu)解,而且在復雜地形條件處理跌水,緩坡情況時受到限制。另一支是以管徑為狀態(tài)變量,通過流速和充滿度決策進行搜索的動態(tài)規(guī)劃法。由于標準管徑的數(shù)目有限,較以節(jié)點埋深為決策變量方法在計算機存儲和計算時間上有顯著優(yōu)勢。最初的動態(tài)規(guī)劃對每一管段選取的一組標準管徑中并不全是可行管徑,因此發(fā)展出可行管徑法??尚泄軓椒ㄍㄟ^數(shù)學分析,對每一管段的管徑采用滿足約束條件的最大和最小管徑及其之間的標準管徑,構(gòu)成可行管徑集合,進而應用動態(tài)規(guī)劃計算??尚泄軓椒ㄊ沟脙?yōu)化計算精度得以提高,并顯著減少了計算工作量和計算機存儲量。盡管動態(tài)規(guī)劃法是解決多階段決策問題最優(yōu)化的一種有效方法,但其狀態(tài)變量均應滿足“無后效性”的特點?!盁o后效性”是指當給定某一階段的狀態(tài)時,在以后各階段的行進要不受當前各階段狀態(tài)的影響。從前面的分析可知,在排水管道系統(tǒng)設(shè)計計算時,前一管段的設(shè)計結(jié)果將直接影響到后續(xù)管段設(shè)計參數(shù)的選用,無論是利用節(jié)點埋深還是管短管徑作為狀態(tài)變量,都沒有充足的證據(jù)能夠狀態(tài)變量的“無后效性”。因此利用動態(tài)規(guī)劃法求出的污水管道優(yōu)化設(shè)計方案并不一定是真正的最優(yōu)方案。

3.優(yōu)化設(shè)計的遺傳算法

遺傳算法是近幾年迅速發(fā)展起來的一項優(yōu)化技術(shù),是一種模擬自然界生物進化過程的全局隨機優(yōu)化算法。遺傳算法借助于生物進化機制與遺傳學原理,按照自然選擇和適者生存的原則,利用簡單的編碼技術(shù)和繁殖機制,模擬自然界生物群體優(yōu)勝劣汰的進化過程,使待優(yōu)化問題逐步從初始解進化到問題的最優(yōu)解。簡單易用、靈活方便、通用性強以及隱含并行性等特點使遺傳算法比傳統(tǒng)優(yōu)化方法具有更大的優(yōu)越性,為解決復雜系統(tǒng)優(yōu)化問題提供了一種通用框架,成為解決函數(shù)優(yōu)化、網(wǎng)絡優(yōu)化、組合優(yōu)化等許多工程優(yōu)化問題的重要技術(shù)之一。是進化算法的一個重要分枝。利用這一進化理論同樣可以作為排水工程實踐中的尋優(yōu)方法。應用遺傳算法進行污水管網(wǎng)優(yōu)化設(shè)計的關(guān)鍵在于確定合適的編碼方式以及將實際問題的優(yōu)化目標函數(shù)轉(zhuǎn)換為遺傳算法的個體適應度函數(shù)。

目前,遺傳算法與神經(jīng)網(wǎng)絡的結(jié)合越來越受到人們的關(guān)注,并且己經(jīng)形成了一種新穎的遺傳神經(jīng)網(wǎng)絡研究領(lǐng)域。近年來,該領(lǐng)域的研究非常活躍,并取得了不少成果,這為遺傳神經(jīng)網(wǎng)絡更為廣泛深入的應用帶來了充滿希望的前景。目前主要的結(jié)合方式是將遺傳算法用于神經(jīng)網(wǎng)絡權(quán)值的優(yōu)化和拓撲結(jié)構(gòu)的設(shè)計。用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡權(quán)值是在網(wǎng)絡結(jié)構(gòu)已經(jīng)確定的前提下進行的,無需計算梯度信息,遺傳算法就能夠發(fā)現(xiàn)神經(jīng)網(wǎng)絡連接權(quán)值的一個接近全局最優(yōu)的權(quán)值集,這使得用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡權(quán)值對那些大而復雜、誤差梯度信息很難獲取或根本不可用的問題特別具有吸引力。如果神經(jīng)網(wǎng)絡誤差的梯度信息容易獲取,則把遺傳算法與基于梯度信息的BP算法相結(jié)合的方法可以提高權(quán)值訓練算法的性能。

4.結(jié)語

優(yōu)化設(shè)計系統(tǒng)將設(shè)計人員計算量大大降低,把設(shè)計人員從查閱圖表的繁雜過程中解脫出來,加快設(shè)計進度,與此同時,整個排水管道系統(tǒng)得到了優(yōu)化設(shè)計。研究標明,優(yōu)化后的排水工程大約可以降低約10%的工程造價。應用各種優(yōu)化算法進行排水管網(wǎng)的優(yōu)化設(shè)計在實際工程優(yōu)化設(shè)計中有較大的推廣應用潛力,可以為工程設(shè)計優(yōu)化和科學的方案決策提供科學的參考依據(jù),能夠達到節(jié)省工程投資和提高設(shè)計質(zhì)量的良好效果。當然,排水管網(wǎng)的優(yōu)化算法要想被廣大工程技術(shù)廣泛接受,一方面需要設(shè)計人員勇于嘗試和應用新技術(shù)、新方法,另一方面也需要開發(fā)出能夠?qū)⒑线m的優(yōu)化算法和傳統(tǒng)計算方法有效融合在一起的計算機輔助設(shè)計軟件,以促進新方法在實際工程設(shè)計過程中推廣應用。

參考文獻

篇6

關(guān)鍵詞:0-1背包;動態(tài)規(guī)劃

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2007)17-31378-02

The Dynamic Programming Algorithms of 0-1 Knapsack Problem Based on Visual C++

CHEN Zi-li, PAN Yan-yan

(Fujian Communication Technology College,Fuzhou 350007,China)

Abstract:The 0-1knapsack problem is a classic NP problem.In this paper,the 0-1 knapsack problem and its algorithm is analyzd ,the algorithms is based on Dynamic Programming.And carry out that algorithms in the Visual C++.

Key words:0-1 Knapsack;Dynamic Programming

1 0-1背包問題

0-1背包問題是:已知n個物品的重量及其價值分別為Wi>0和Pi>0,背包的容量假設(shè)設(shè)為Ci>0,如何選擇哪些物品裝入背包可以使得在背包的容量約束限制之內(nèi)所裝物品的價值最大?

2 幾種解法的比較

2.1 動態(tài)規(guī)劃算法

動態(tài)規(guī)劃可以把困難得多階段決策變換為一系列相互聯(lián)系比較容易的單階段問題。對于背包問題可以對子過程用枚舉法求解,而且約束條件越多,決策的搜索范圍越小,求解也越容易。

2.2 回溯法

回溯法需要為問題定義一個解空間,這個解空間必須至少包含問題的一個解(可能是最優(yōu)的)。使用遞歸回溯法解決背包問題的優(yōu)點在于它算法思想簡單, 而且它能完全遍歷搜索空間,肯定能找到問題的最優(yōu)解;但是由于此問題解的總組合數(shù)有2n個,因此,隨著物件數(shù) n 的增大,其解的空間將以2n級增長,當 n 大到一定程度上,用此算法解決背包問題將是不現(xiàn)實的。

2.3 貪心算法

使用貪心方法求解時計算的復雜度降低了很多。貪心算法是一種不要求最優(yōu)解,只希望得到較為滿意解的方法。一般可以快速得到滿意的解,因為它省去了為找最優(yōu)解要窮盡所有可能而必須耗費的大量時間。貪心方法常以當前情況為基礎(chǔ)作最優(yōu)選擇,而不是考慮各種可能的整體情況,所以貪心算法不需要回溯。但是,對于某些情況,實際上有解,而該算法不能找到解。

2.4 分枝-限界法

分枝界限是另一種系統(tǒng)地搜索解空間的方法,與回溯法的主要區(qū)別在于對E節(jié)點的擴充方式。每個活節(jié)點有且僅有一次會變成E節(jié)點。當一個節(jié)點變?yōu)镋節(jié)點是,則生成從該節(jié)點移動一步即可到達的所有新節(jié)點。在生產(chǎn)的節(jié)點中,拋棄那些不可能導出可行解的節(jié)點,其余節(jié)點加入到活節(jié)點表,然后從表中選擇一個節(jié)點作為下一個E節(jié)點。從活節(jié)點表中取出所選擇的節(jié)點并進行擴充,直到找到解或活動表為空,擴充才結(jié)束。

2.5 遺傳算法

遺傳算法是一類借鑒生物自然選擇和自然遺傳機制的隨機化的搜索算法。它適用于處理傳統(tǒng)搜索方法難于解決的復雜和非線性問題。遺傳算法是一種群體型操作,該操作以群體中所有個體為對象。選擇、交叉和變異是遺傳算法的三個主要算子,它們構(gòu)成了遺傳算法的主要操作。使用遺傳算法解決物件數(shù)較大的背包問題,它具有收斂快、搜索速度快的特點。然而在一般情況下,使用基本遺傳算法解決背包問題時,得到問題的近似解也不能滿足逼近最優(yōu)解的要求。

下面介紹用動態(tài)規(guī)劃算法實現(xiàn)0-1背包問題的求解。

3 動態(tài)規(guī)劃算法

3.1 0-1背包問題的描述

3.2 最優(yōu)子結(jié)構(gòu)性質(zhì)

0-1背包問題具有最優(yōu)子結(jié)構(gòu)性質(zhì)。設(shè)(y1,y2,…,yn)是所給0-1背包問題的一個最優(yōu)解。則

3.3 遞歸關(guān)系

設(shè)所給0-1背包問題的子問題:

的最優(yōu)解值為m(i.j),即m(i.j)是背包容量為j,可選擇物品為i,i+1,…,n時0-1背包問題的最優(yōu)值。由0-1背包問題的最優(yōu)子結(jié)構(gòu)性質(zhì),就可以建立計算m(i.j)的遞歸式如下:

4 C++實現(xiàn)算法

#include

#include

#include

int min(int w,int c)

{int temp;

if (w

else

temp=c;

return temp;}

int max(int w,int c)

{int temp;

if (w>c)temp=w;

else temp=c;

return temp;}

void knapsack(int v[],int w[],int c,int ,int**m)

//求最優(yōu)值

{int jmax=min(w[n]-1,c);

for(int j=0;j

m[n][j]=0;

for(int jj=w[n];jj

m[n][jj]=v[n];

for(int i=n-1;i>1;i--){ //遞歸部分

jmax=min(w[i]-1,c);

for(int j=0;j

m[i][j]=m[i+1][j];

for(int jj=w[i];jj

m[i][jj]=max(m[i+1][jj],m[i+1][jj-w[i]]+v[i]);}

m[1][c]=m[2][c];

if(c>=w[1])

m[1][c]=max(m[1][c],m[2][c-w[1]]+v[1]);

cout

for(int l=2;l

for(int j=0;j

{cout

cout

int traceback(int **m,int w[],int c,int n,int x[])

//回代,求最優(yōu)解

{cout

for(int i=1;i

if(m[i][c]==m[i+1][c]) x[i]=0;

else {x[i]=1;

c-=w[i];}

x[n]=(m[n][c])?1:0;

for(int y=1;y

{cout

return x[n];}

void main(){

int n,c;

int**m;

cout

cin>>n>>c;

int *v=new int[n+1];

cout

for(int i=1;i

cin>>v[i];

int *w=new int[n+1];

cout

for(int j=1;j

cin>>w[j];

int *x=new int[n+1];

m=new int*[n+1];//動態(tài)的分配二維數(shù)組

for(int p=0;p

m[p]=new int[c+1];}

knapsack(v,w,c,n,m);

traceback(m,w,c,n,x);}

5 測試

在Visual C++ 下對該算法進行測試 :例:背包的容量c=10,物品個數(shù)n=5,w={2,2,6,5,4},

v={6,3,5,4,6}。

輸出結(jié)果: 1 1 0 0 1

背包的總重量:8

背包的總價值:15

6 算法分析

上述算法Knapsack需要O (nc)計算時間,traceback需要O(n)計算時間。采用動態(tài)規(guī)劃算法解決0-1背包問題,并通過編程在Visual C++下進行測試得到了較好的結(jié)果,證明了算法的正確性。但是,算法還是有缺陷的,當c很大時,算法需要計算的時間較多,還需改進。

參考文獻:

[1]王曉東.計算機算法設(shè)計與分析[M].北京:電子工業(yè)出版社,2004.

[2]劉玉娟,王相海.0-1背包2問題的兩種擴展形式及其解法[J].計算機應用研究,2006.

[3]楊曉紅.基于Visual C++的0-1背包問題的貪婪算法[J].科技資訊導報,2007.

[4]黃波,蔡之華.0/1背包問題及其解法研究[J].電腦知識與技術(shù),2007.

篇7

隨著AlphaGo(圍棋人工智能程序)在2016年初擊敗了世界圍棋冠軍后,人工智能技術(shù)的研發(fā)與討論繼續(xù)走向一個新的高峰,而語音識別技術(shù)則是其核心內(nèi)容。

本文主要基于語音識別技術(shù)的語音解碼模塊進行討論,從其涉及技術(shù)、設(shè)計、實現(xiàn)進行全面描述。運用解碼器進行解碼操作,通過搜索算法在解碼端尋找最優(yōu)詞串,搭建和訓練聲學模型,并提高語音識別率。本項目基于一個完整的Android軟件作為依托,但由于篇幅有限,本文重點討論離線語音包、搭建語言模型、以及語音解碼模塊的設(shè)計過程。

1.項目背景

語音識別技術(shù)是能夠?qū)⑷说恼Z音信號轉(zhuǎn)換成機器可以識別的指令的一種方法,通過指令來控制機器的正常運轉(zhuǎn)。語音識別的任務主要包括:孤立詞識別、關(guān)鍵詞識別、連續(xù)語音識別等。

市面上的離線語音識別一直不成熟,識別慢、識別率低等問題一直被人詬病。本項目離線語音識別部分是基于Sphinx-4自行訓練得到的聲學模型和語言模型,在小詞匯量識別方面盡量提高其識別率。

2.需求分析

一個成熟的語音識別系統(tǒng)可以劃分為特征提取、聲學模型訓練、語言模型訓練和解碼器四個重要組成部分;而離線端語音解碼模塊,包括了對原始語音進行信號處理、特征提取、通過Viterbi動態(tài)規(guī)劃算法搜索最優(yōu)結(jié)果、語義分析及輸出文本結(jié)果等步驟。

1、 原始信號處理:獲取通過麥克風按鈕接收到的原始音頻數(shù)據(jù),過濾非必要信息以及背景噪音對語音前端點和后端點進行截取,對語音信號分割成若干個進行分析;

2、 特征提?。焊鶕?jù)sphinxbase語音系統(tǒng)給出的接口,提取出語音信號的關(guān)鍵特征,并將其生成一個序列,以供解碼處理時搜索這個隱式序列,得出結(jié)果;

3、 算法搜索最優(yōu)序列:根據(jù)Viterbi算法設(shè)計出計算序列中出現(xiàn)概率最大的詞串的方法,搜索出每一幀語音信號的最優(yōu)路徑,輸出結(jié)果;

4、 語義分析及輸出識別結(jié)果:根據(jù)孤立的關(guān)鍵詞判斷搜索出來的語音結(jié)果屬于哪一個應用場景,如“打電話”、“發(fā)短信”、“上一頻道”、“下一頻道”等等孤立詞;

離線語音解碼模塊流程如下圖2-1所示:

3.系統(tǒng)設(shè)計

3.1.特征提取

特征提取的主要目的是減少語音噪聲靜音等無用的雜訊,獲取必要的訊號數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)換成電腦可以識別的數(shù)字信號,以便作識別和語義分析。

本語音識別技術(shù)模塊基于Sphinx4語音識別系統(tǒng)進行開發(fā)的,其中聲音的預處理是利用MATLAB這一便于算法開發(fā)的軟件來實現(xiàn)對語音信號進行數(shù)字處理與分析,也可稱為特征處理。其包括對原語音信號進行預加重處理,然后需要進行分幀和加窗、采樣和量化、端點檢測等。

其中,包括:預加重處理、分幀、量化處理以及語音端點檢測等過程。如下3-1所示:

3.2. 基于動態(tài)規(guī)劃的Viterbi算法

動態(tài)規(guī)劃算法的基本思想是將問題分解成若干個子問題,求解子問題,最后從子問題的解中得到原問題的解。通常利用動態(tài)規(guī)劃算法解決問題的步驟是先找出最優(yōu)解的性質(zhì),刻畫最優(yōu)解的結(jié)構(gòu)特征,然后遞歸定義出最優(yōu)解,用自底向上的方法計算出最優(yōu)路徑,最后根據(jù)計算出來的最優(yōu)值信息,構(gòu)造最優(yōu)解。圖下圖3-2所示:

因此,基于動態(tài)規(guī)劃的Viterbi算法的整體設(shè)計思路如下:

1、 對于每一個語音狀態(tài)要設(shè)置一個三元組作為記錄:(prob,v_path,v_prob),這里聲明的prob是從最初狀態(tài)的到當前狀態(tài)的所有路徑的出現(xiàn)概率相加的結(jié)果,其中最優(yōu)的路徑為viterbi路徑,v_path代表的就是viterbi路徑,而v_prob代表的則是此路徑出現(xiàn)的概率;

2、 算法開始后,初始化一個Map集合,把每一種語音狀態(tài)都映射進三元組中

3、 設(shè)置三重for循環(huán),計算從當前語音狀態(tài)到下一階段的過渡概率會出現(xiàn)什么變化,所有下一狀態(tài)判斷完之后,從集合中遍歷找出最優(yōu)結(jié)果,即出現(xiàn)概率最大的路徑;

4、 保留每一幀語音在某個狀態(tài)的最優(yōu)路徑,輸出結(jié)果。

4.總結(jié)

語音識別技術(shù)的核心是HMM技術(shù)(隱式馬爾科夫模型),而本文主要基于語音識別技術(shù)的語音解碼模塊進行討論,從其涉及技術(shù)、設(shè)計、實現(xiàn)進行全面描述,對離線解碼模塊中的特征提取、以及使用動態(tài)規(guī)劃的Viterbi算法實現(xiàn)搜索最優(yōu)序列進行了詳細介紹。模塊基本實現(xiàn)完成,但仍有很多值得提升和完善空間,今后可以使用更先進的算法進行優(yōu)化。

參考文獻

[1] 朱元濤.Android應用開發(fā)范例大全[M]. 清華大學出版社.2015.

[2] 郭霖. 第一行代碼 Android [M]. 人民郵電出版社. 2014.

[3] 何紅輝,關(guān)愛民.Android 源碼設(shè)計模式解析與實戰(zhàn) [M]. 人民郵電出版社. 2015.

[4] Android Studio Applicati [M]. 進口原版圖書.

[5] The Definitive Guide to Sqlite [M]. Apress.

[6] 李興華.Android開發(fā)實戰(zhàn)經(jīng)典[M].清華大學出版社.2012.

[7] Android開發(fā)實戰(zhàn)[M].清華大學出版社.2013.

[8] 趙卓君.Java語言程序設(shè)計高級教程[M].北京.清華大學出版社.2010.

[9] 朱少民.軟件測試方法和技術(shù)(第2版)[M].北京.清華大學出版社.2010.

[10] UML和模式應用[M].機械工業(yè)出版社.2006.

篇8

關(guān)鍵詞:市政給排水;管道設(shè)計;優(yōu)化設(shè)計

引言

城市普遍存在水質(zhì)污染的問題,致使城市水環(huán)境遭受到嚴重破壞,水質(zhì)型缺水的區(qū)域不斷擴大,水資源供需失衡,這一問題已對城市中居民的生活,健康及城市現(xiàn)代化進程構(gòu)成了危害,嚴重威脅到城市的水系統(tǒng)以及城市的可持續(xù)發(fā)展。隨著城市化進程的發(fā)展,城市市政自來水給排水工程是城市舉出設(shè)施的重要組成部分之一,如何降低市政自來水管道減少爆管漏水等問題帶來的水資源的浪費,有效提高城市自來水供排水管道的效率和輸水能力,為城市居民日常生活和城市建設(shè)提供經(jīng)濟實惠、安全可靠的水資源保障,如何改善市政自來水給排水管道的設(shè)計是必要的。

1.市政給排水工程的結(jié)構(gòu)設(shè)計

1.1市政給排水工程的結(jié)構(gòu)設(shè)計

在市政給排水工程中,根據(jù)工程的埋設(shè)深度。工程管道規(guī)格、材質(zhì)以及地下水位和試驗壓力等綜合指標,對管道的強度和剛度進行計算及復核,提供給排水的管道等級、壁厚以及結(jié)構(gòu)配筋圖。通常采用的加固措施有混凝土、管廊包管等,對于一些必須要滿足剛度和強度要求的管道應該及時采取加固方法來進行加固,而且在施工過程中根據(jù)計算采用具體的加強加固措施,加固的具體方法和方式應根據(jù)經(jīng)濟指標和實際情況來確定。

1.2市政給排水工程的結(jié)構(gòu)形式

在市政給排水工程中,排水專業(yè)確定管道的結(jié)構(gòu)形式,一般來說,結(jié)構(gòu)專業(yè)應根據(jù)管道的工作環(huán)境。結(jié)構(gòu)用途以及水文地質(zhì)情況等經(jīng)濟指標等從專業(yè)角度提出參考意見。特殊地段以及特殊情況的非承壓管也采用鋼管等形式當污水管道;而對于口徑較大時應采用現(xiàn)澆鋼筋混凝土箱涵,或采用盾構(gòu)結(jié)構(gòu)形式。

2.市政給排水管道對于城市的意義

在市政基礎(chǔ)設(shè)施建設(shè)和完善中,給排水管道的鋪設(shè)和維修護養(yǎng)對城市有著極其重要的影響。給水管道關(guān)系整個城市的生活和工業(yè)用水的供給,而排水管道則關(guān)系城市污水的排出和雨水等可能造成市內(nèi)積水的多余水量及時排空。在這樣一種背景下,市政給排水工程的完善程度和施工質(zhì)量對城市居民生活將會產(chǎn)生重要的影響。

另外,市政管道的鋪設(shè)有些是在城市生活區(qū)和工業(yè)區(qū)劃定建成后或者建設(shè)過程中開始施工,在不破壞原有市政建筑的前提下完成新的給排水管道的鋪設(shè),便對施工技術(shù)提出了一定的要求。同時,給排水工程質(zhì)量的要求也必然要求我們加強對施工技術(shù)的嚴格控制。只有在高質(zhì)量標準要求下完成的工程才能減少使用過程中的一些問題,從而減少給排水工程維修護養(yǎng)的經(jīng)濟成本。

3.市政排水管網(wǎng)優(yōu)化設(shè)計

3.1管線的平面優(yōu)化布置

排水管網(wǎng)的布置原則是既要使工程量最小,又要使水流暢通、節(jié)省能量。正確的定線是合理經(jīng)濟的設(shè)計管網(wǎng)的先決條件。定線的基本原則是:干管支管的設(shè)計盡量采用直線布局,不要拐彎;定線應盡量利用地勢,使污水在重力作用下流入污水廠;設(shè)計時應盡量減少管道埋深;在管道的中途盡量減少提升泵站的設(shè)置。在早期的研究中,設(shè)計方法為假定每一段管徑相同,以挖方費用為優(yōu)選依據(jù),選擇一初始布置方案,然后通過算法逐步進行調(diào)整。后來又引入了排水線的概念,將排水區(qū)域內(nèi)與最終出水口節(jié)點相距同樣可行管數(shù)的節(jié)點用一根排水線連接起來。這樣把問題轉(zhuǎn)化為最短路問題,可用動態(tài)規(guī)劃法求解。但此方法把尋優(yōu)的范圍被限制,使人們在設(shè)計過程中很容易把最優(yōu)方案排除。后來,人們把城市排水系統(tǒng)排水布置抽象為由點和線構(gòu)成的決策圖,從圖論中尋找方法。1986年發(fā)展到利用三種權(quán)值來解決問題。三種權(quán)值是各管段地面坡度的倒數(shù);各管段的管長;各管段在滿足最小覆土條件下,按最小坡度設(shè)計時的挖方量。分別對這三種權(quán)值運用最短路生成樹算法求管線平面布置方案,再進行管徑、埋深和提升泵站的優(yōu)化設(shè)計,最后取投資費用最小的平面布置方案作為最優(yōu)設(shè)計方案。

3.2已定平面布置下的管道系統(tǒng)優(yōu)化設(shè)計

排水管道優(yōu)化設(shè)計主要是指:對于某一設(shè)計管段,當設(shè)計流量確定后,在滿足設(shè)計規(guī)范要求的管徑和坡度的多種組合中,取得管材費用與敷設(shè)費用的平衡。在排水管線平面布置已定情況下,對于管段管徑,埋深的優(yōu)化設(shè)計,國內(nèi)外做了大量研究工作。

(1)線性規(guī)劃法和非線性規(guī)劃法。a線性規(guī)劃法,是針對排水管網(wǎng)設(shè)計計算中的約束條件和目標函數(shù)的非線性,分別用其一級泰勒公式展開式代替,用線性規(guī)劃的解作為問題的近似解,反復迭代,使迭代序列逼近非線性規(guī)劃的最優(yōu)解。缺點是把管徑當作連續(xù)變量來處理,存在計算管徑與市售管徑不一致的矛盾,且前期準備工作量大,以后發(fā)展的整數(shù)規(guī)劃法,雖然在一定程度上解決了線性規(guī)劃的缺點,但是其整型變量比較多,難以求解。b非線性規(guī)劃法適應了計算模型中目標函數(shù)和變量的非線性特征,可以優(yōu)化選擇管道的直徑和埋深,但極大限制了目標函數(shù)和約束條件的形式。

(2)動態(tài)規(guī)劃法。動態(tài)規(guī)劃法是目前國內(nèi)外比較常用的一種方法,基本思想是把排水管道設(shè)計看作一個多階段的過程,通過對設(shè)計過程進行階段劃分來對管道進行優(yōu)化設(shè)計。其應用主要分為兩方面。a以節(jié)點埋深為狀態(tài)變量,通過坡度決策進行全方位搜索。其優(yōu)點是直接采用標準管徑,結(jié)果與初始管徑無關(guān),且能控制計算深度,但要求狀態(tài)點之間的埋深間隔很小,使存儲量和時間間隔大為增加。因此在此基礎(chǔ)上引入了擬差動態(tài)規(guī)劃法,在動態(tài)規(guī)劃法的基礎(chǔ)上引入了縮小范圍的迭代過程,但應用有一定的局限性。b以管徑為狀態(tài)變量,通過流速和充滿度決策。由于可使用的標準管徑數(shù)目有限,因此在計算速度和存儲量上都有很大優(yōu)勢。以后又發(fā)展出了可行管徑法。此法使優(yōu)化計算精度得以提高,并顯著減少了計算工作量和計算機存儲量。盡管動態(tài)規(guī)劃法是解決多階段決策問題的一種有效方法,但在排水管道系統(tǒng)設(shè)計計算時,前一段的設(shè)計結(jié)果將直接影響到后續(xù)管段設(shè)計參數(shù)的選用,因此利用動態(tài)規(guī)劃法求出的污水管道優(yōu)化設(shè)計方案也并不一定是真正的最優(yōu)方案。

(3)直接優(yōu)化法。直接優(yōu)化法是直接對各種方案或可調(diào)參數(shù)的選擇設(shè)計計算和比較來得到最優(yōu)解,具有直觀和容易驗證的優(yōu)點。主要方法有:a電子表格法是一種啟發(fā)式的費用估算方法,允許用戶尋找最小費用設(shè)計,能得出比動態(tài)規(guī)劃法要好的結(jié)果而且更符合設(shè)計規(guī)范的要求。b兩相優(yōu)化法是設(shè)計流量確定后,在滿足約束條件的前提下,選取最經(jīng)濟流速和最大充滿度進而得到最優(yōu)管徑和最小坡度,最大限度地降低管道埋深.直接優(yōu)化法的算法與人工算法基本相同,但受設(shè)計人員的能力所限,所得結(jié)果不盡相同,所以所求結(jié)果不一定是最優(yōu)解。

(4)遺傳算法。遺傳算法是進化算法一個分支,是模擬生物學中的自然遺傳變異機制而提出的隨機優(yōu)化算法。遺傳算法在解決中小型管道系統(tǒng)優(yōu)化設(shè)計問題時可以求得最優(yōu)設(shè)計方案。但解決大型管道系統(tǒng)問題時,只能求得趨近于最優(yōu)解的設(shè)計方案,在排水管道系統(tǒng)優(yōu)化設(shè)計中,不論采用何種方法,都以設(shè)計規(guī)范為基本要求,同時使費用達到最小。

4.結(jié)束語

在整個市政基礎(chǔ)建設(shè)工作中,各專業(yè)一環(huán)扣一環(huán),最重要的是市政排水管道工程是隱蔽工程,維修起來比較麻煩,有的甚至是無法維修,并且維修費用較大,因此,在設(shè)計施工過程中,必須有效避免這些常見問題,加強對排水管道工程的質(zhì)量控制,消除工程質(zhì)量缺陷,切實保障人民的利益。

參考文獻:

[1]韋從勝,蔣全華.市政給排水管道設(shè)計[J].技術(shù)與市場,2011,(7).

篇9

關(guān)鍵詞:0-1背包;回溯

中圖分號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)36-0076-02

The B_tracking Algorithm of 0-1 Knapsack Problem Based on C#

CHEN Zi-li

(Fujian Chuanzheng Communications College, Fuzhou 350007, China)

Abstract: The 0-1knapsack problem is a classic NP problem. In this paper, the 0-1 knapsack problem and its algorithm is analyzed, the algorithms is based on B_tracking algorithm. And carry out the algorithms in the C#.

Key words: 0-1 Knapsack; b_tracking algorithm

1 0-1背包思想

0-1背包問題的思想:如果n個物品的重量和價值分別為[wi>0]和[pi>0],背包的大小設(shè)置成[ci>0],應該怎樣往背包中放置物品可以達到最大值或者最佳裝載方式?[5]

在實際進行裝包操作時,規(guī)定每種物品只能載入一次,而且每種物品只能執(zhí)行載入或者不載入操作,則把該問題叫做0-1背包問題。

給定[wi]>0,c>0,[vi]>0,[1≤i≤n],尋求一個n元0-1向量[(x1,x2,...,xn),xi∈{0,1},][1≤i≤n],使得[i=1nwixi≤c],而且[i=1nvixi]是最值。

[maxi=1nvixi] [i=1nwixi≤cxi∈{0.1},1≤i≤n]

2 幾種解法的比較

2.1 回溯法

回溯法就是為問題聲明一個解集合,這個集合存在一個可能是最優(yōu)的解。遞歸回溯法算法思想非常簡單,能夠?qū)λ阉骺臻g進行遍歷,必然可以找到背包問題的最優(yōu)解,缺點是背包問題解集合將隨著物品數(shù)量n的變大以2的幾何級數(shù)增長,當n大到一定程度上,要遍歷搜索空間需耗費大量的時間和資源,因此當物件數(shù)過多的時候,就很難依靠回溯法來求解。

2.2 動態(tài)規(guī)劃算法

動態(tài)規(guī)劃指的是把復雜的多階段問題分解成相對簡單的單階段問題。對于背包問題可以用窮舉法對子過程進行求解,并且決策的搜索范圍會因為條件的增多而變小,這樣求解也更簡單。

2.3 貪心算法

貪心方法的使用可以降低求解時計算的復雜度。貪心算法不是片面追求最優(yōu)解,因此不理會所有情況,所以不象回溯法那樣進行遍歷,一般情況下,就以目前情形最為最優(yōu)的 。

2.4 分枝限界法

分枝界限與回溯法拓展E節(jié)點的方法不一樣,為另一種全面地遍歷解集合的方法,按這種算法,任何活節(jié)點只可能一次改變?yōu)镋節(jié)點。當某節(jié)點一旦改變成E節(jié)點,會同時產(chǎn)生一些新節(jié)點(也就是分枝),新產(chǎn)生的節(jié)點是從原節(jié)點跳轉(zhuǎn)一步實現(xiàn)的。產(chǎn)生的新節(jié)點里,只留下有希望得到行得通解的節(jié)點,添加到活節(jié)點表,剩下的拋棄。接著從活節(jié)點表里挑選節(jié)點再進行拓展,最后就可以得到最后解,并且活動表清空了。

3 回溯算法

回溯法為一種在問題的結(jié)果空間樹T上查詢問題答案的算法?;厮莘ㄔ谌拷獾慕Y(jié)果空間樹中,依照深度優(yōu)先的方法,從根節(jié)點開始查詢結(jié)果空間樹。算法搜索至結(jié)果空間樹的每個節(jié)點時,先看看是不是不存在結(jié)果。假設(shè)確定不存在,那么忽略該子樹,繼續(xù)向其父節(jié)點進行回溯,反之,使用該子樹,仍然以深度優(yōu)先的方法進行查詢。當回溯法來尋找結(jié)果時,一定要回溯到頂點,并且,頂點節(jié)點的全部子樹都查找完才停止。這樣,按照深度優(yōu)先的策略全面查詢問題的結(jié)果的算法叫做回溯法,可以解決組合數(shù)很多的情況。

假設(shè)選取回溯法來解決0-1背包問題,可以用在采取子集數(shù)表示0-1背包問題的結(jié)果集合。執(zhí)行查找結(jié)果空間樹時,如果左節(jié)點是能用的節(jié)點,查找行為轉(zhuǎn)到它的左子樹。那什么時候進入右邊的子樹查找呢?那就是只有在右邊子樹里有希望找找最優(yōu)解的時候,才轉(zhuǎn)到右邊子樹查詢。要不然就把右子樹刪除。此過程由上界函數(shù)來完成。假定r是現(xiàn)在還沒有使用的剩下物品總價值,cp是現(xiàn)在已有的價值,yestp為目前最優(yōu)的價值。那么在cp+r

要使上界函數(shù)的計算更方便,不妨讓物品按照重量價值進行降序排序。執(zhí)行的時候,由函數(shù)fanwei來尋找最新節(jié)點的上界。只有在要進入右邊子樹時,才計算上界函數(shù)fanwei,由此判斷是不是要將右子樹刪除。轉(zhuǎn)到左子樹時不要查找上界,這時候上界和基類節(jié)點的上界是一樣的。

4 算法實現(xiàn)

int n;//物品數(shù)量

double c;//背包容量

double[] v=new double[100];//各個物品的價值

double[] w=new double[100];//各個物品的重量

double cw = 0.0;//當前背包重量

double cp = 0.0;//當前背包中物品價值

double yestp = 0.0;//當前最優(yōu)價值

double[] perp=new double[100];//單位物品價值排序后

int[] order=new int[100];//物品編號

int[] put= new int[100];//設(shè)置是否裝入

//按單位價值排序

public void knapsack()

{ int i,j;

int temporder = 0;

double temp = 0.0;

for(i=1;i

perp[i]=v[i]/w[i];

for(i=1;i

{ for(j=i+1;j

if(perp[i]

{temp = perp[i];

perp[i]=perp[i];

perp[j]=temp;

temporder=order[i];

order[i]=order[j];

order[j]=temporder;

temp = v[i];

v[i]=v[j];

v[j]=temp;

temp=w[i];

w[i]=w[j];

w[j]=temp; }}}

//回溯函

public void b_track(int i)

{ double fanwei(int i);

if(i>n)

{ yestp = cp;

return; }

if(cw+w[i]

{ cw=cw+w[i];

cp= cp+v[i];

put[i]=1;

b_track(i+1);

cw=cw-w[i];

cp=cp-v[i]; }

if(fanwei(i+1)>yestp)//符合條件搜索右子數(shù)

b_track(i+1); }

//計算上界函數(shù)

public double fanwei(int i)

{double leftw= c-cw;

double b = cp;

while(i

{ leftw-=w[i];

b+=v[i];

i++;}

if(i

b+=v[i]/w[i]*leftw;

return b; }

static void Main(string[] args)

{int i;

Console.WriteLine("請輸入物品的數(shù)量和容量:");

n=Convert.ToInt32(Console.ReadLine());

c= Convert.ToDouble(Console.ReadLine());

Console.WriteLine ("請輸入物品的重量和價值:");

for(i=1;i

{ Console.WriteLine ("第{0}個物品的重量:",i);

w[i]=Convert.ToDouble(Console.ReadLine());

Console.WriteLine ("價值是:");

v[i]=Convert.ToDouble(Console.ReadLine());

order[i]=i; }

knapsack();

b_track(1);

Console.WriteLine ("最有價值為:"+yestp);

Console.WriteLine ("需要裝入的物品編號是:");

for(i=1;i

{if(put[i]==1)

printf("%d ",order[i]); }

return 0; }

5 測試

在VS2010下對該算法進行測試 ,例如背包的最大容量c=10,要放入的物品個數(shù)n=5,重量w={2,6,2,5,4},價值v={5,6,3,4,6}。

輸出結(jié)果: 1 0 1 0 1

背包的總價值:15

背包的總重量:8

6 算法分析

因為尋找上界函數(shù)fanwei需要O(n)時間,當復雜度最壞時有O(2n)個右邊派生節(jié)點需要求解上界函數(shù),因此,用回溯法來計算0-1背包問題的時間復雜度是O(n2n)?;厮莘艿玫?-1背包的最優(yōu)解。另一方面回溯法是以樹當成基礎(chǔ)的算法,所以其空間開銷很多。

參考文獻:

[1] 王曉東. 計算機算法設(shè)計與分析[M].北京: 電子工業(yè)出版社,2004.

[2] 賀毅朝, 田海燕. 基于動態(tài)規(guī)劃法求解動態(tài)0-1背包問題[J].計算機科學,2012 ,39(7):237-241..

[3] 徐穎. 回溯法在0-1背包問題中的應用[J].軟件導刊,2008(12).

篇10

關(guān)鍵詞:運籌學;規(guī)劃論;EXCEL軟件

中圖分類號G642.4 文獻標志碼:A 文章編號:1674-9324(2014)10-0278-03

一、引言

運籌學是一門應用科學,可以為決策者選擇最優(yōu)決策提供定量依據(jù)。運籌學經(jīng)過多年的發(fā)展已經(jīng)成為體系,包括規(guī)劃論(線性規(guī)劃、整數(shù)規(guī)劃、目標規(guī)劃、動態(tài)規(guī)劃和非線性規(guī)劃)、圖論與網(wǎng)絡、排隊論、存儲論、對策論和決策論等[1]。傳統(tǒng)的運籌學主要是以講授理論為主,尤其是比較枯燥的數(shù)學理論。近年來,運籌學改革不斷提高其應用性,減少枯燥的理論。此外,隨著運籌學計算機支撐技術(shù)的迅速發(fā)展,運籌學應用得到極大的推動,運籌學實驗教學提上日程,因此開設(shè)運籌學的實驗課程勢在必行。秦必瑜[2]和石磊[3]在運籌學的課程改革中都提出要增加軟件應用。我院運籌學教學團隊多年致力于運籌學的教改研究,在提出應用軟件的基礎(chǔ)上,進一步開設(shè)了除理論課程外的專門實踐課程,將理論課上學習到的內(nèi)容使用軟件來進行求解。

國內(nèi)運籌學的實驗教學已經(jīng)有很大進展,目前運籌學經(jīng)常使用的軟件主要有l(wèi)ingo[4][5]、WinQSB[6]、MATLAB[7]等。近年來,美國高校運籌學(管理科學)的思想、內(nèi)容、方法和手段發(fā)生根本轉(zhuǎn)變,開始使用“電子表格”這一全新的教學方法。在運籌學中使用EXCEL已經(jīng)成為運籌學教學的一個新潮流。EXCEL軟件使用方便,不需要重新安裝和學習新軟件的使用方法,一般的PC機上都安裝有EXCEL軟件,因此使用方便、應用廣泛。但是目前將EXCEL在運籌學中的應用并不多,李雪虎[8]給出用EXCEL求解運輸問題和網(wǎng)絡最優(yōu)化問題的例子;魏杰羽[9]闡述了用EXCEl求解運輸問題的過程;而張輝[10]給出了使用EXCEL求解線性規(guī)劃問題的例子。在運籌學的體系中,內(nèi)容遠遠不止這些,即使規(guī)劃論的內(nèi)容也不止這些。本文中探討將EXCEL應用于運籌學規(guī)劃論的內(nèi)容中。運籌學規(guī)劃論包括線性規(guī)劃、整數(shù)規(guī)劃、目標規(guī)劃、動態(tài)規(guī)劃和非線性規(guī)劃,由于非線性規(guī)劃一般不屬于本科教學的范圍,因此這里主要用EXCEL求解線性規(guī)劃、目標規(guī)劃、整數(shù)規(guī)劃、動態(tài)規(guī)劃模型,其中每個部分的模型均來自清華大學編寫的運籌學教材[1],此為我院教學的教材。本文使用EXCEL求解教材中的案例,進行應用分析。

二、EXCEL在規(guī)劃論教學中的應用

(一)使用EXCEL求解線性規(guī)劃模型

Maxz=2x11+3x12

對于如下線性規(guī)劃問題,模型1

s.t.x1+2x2≤84x1≤164x2≤16x1,x2≥0

采用EXCEL求解該問題包括以下步驟:

第一步:模型輸入

1.在EXCEL表格中輸入數(shù)據(jù),輸入目標函數(shù)的系數(shù)和約束條件的系數(shù)

2.標識數(shù)據(jù),可以用不同顏色標識不同類型的數(shù)據(jù)

3.計算中間數(shù)據(jù),數(shù)據(jù)、公式分離,顯示出完整模型

第二步:模型求解

1.安裝“規(guī)劃求解”工具。在“工具”中選擇“加載宏”,選中“規(guī)劃求解”,確定后,工具菜單中可顯示“規(guī)劃求解”選項,選擇工具-規(guī)劃求解。

2.設(shè)置參數(shù),選擇目標,輸入約束條件;選擇選項中的“使用線性函數(shù)”和“假定非負”,點擊求解(見下圖)。

根據(jù)以上求解結(jié)果,可以知道兩個決策變量的取值分別為4和2,目標值最優(yōu)為14。

3.求解出結(jié)果后,選中“敏感性報告”,點擊確定。得到線性規(guī)劃的求解結(jié)果以及敏感性報告,可以在此基礎(chǔ)上進行靈敏度分析,可與理論教學中的靈敏度分析進行對比,將理論教學與實踐教學相結(jié)合。

根據(jù)上面的敏感性報告可以知道,此問題所需要的三種資源的影子價格分別是1.5,0.125和0,根據(jù)這個結(jié)果可知當最優(yōu)情況下,第一和第二種資源已經(jīng)全部用光。

運輸問題是線性規(guī)劃的一種特殊情況,因此用EXCEL求解運輸問題的模型和過程是完全相同的,在此不做贅述。

(二)使用EXCEL求解整數(shù)規(guī)劃模型

這里的整數(shù)規(guī)劃其實指的都是整數(shù)線性規(guī)劃,該模型與線性規(guī)劃模型唯一的區(qū)別就是增加了整數(shù)約束,在求解過程中與線性規(guī)劃模型的區(qū)別就在于約束條件上。比如模型1中,如果要求所有的變量均為整數(shù),則在EXCEL中做如下設(shè)置:

(三)使用EXCEL求解目標規(guī)劃模型

這里的目標規(guī)劃主要是指線性目標規(guī)劃,即其每個目標都是線性的,其所有約束也是線性的。線性目標規(guī)劃的求解可以認為是一般線性規(guī)劃的延伸,但是卻與一般線性規(guī)劃有很大區(qū)別。目標規(guī)劃中的約束條件有優(yōu)先順序,而且不一定能夠同時滿足所有的目標,因此其求解過程需要考慮優(yōu)先級,首先考慮第一優(yōu)先級的偏差最小化作為目標函數(shù),求出最優(yōu)解。在第二步的時候?qū)⒌诙?yōu)先級的偏差最小化作為目標函數(shù),并將第一目標的最優(yōu)偏差作為約束條件放到第二步的模型中,以此類推直到最后一個目標。下面以模型2為例進行說明:

min P■d■■+P■d■■+P■(2d■■+d■■)

模型2

s.t.x1+x2+d■■+d■■=40x1+x2+d■■-d■■=50x1+d■■-d■■=24x2+d■■-d■■=30x1,x2,d■■,d■■≥0,i=1,L 4

在EXCEL求解過程中,首先求解第一優(yōu)先級,以第一優(yōu)先級作為目標,形成模型

min p1d■■

s.t.x1+x2+d■■+d■■=40x1+x2+d■■-d■■=50x1+d■■-d■■=24x2+d■■-d■■=30x1,x2,d■■,d■■≥0,i=1,L 4

這是一個典型的線性規(guī)劃問題,可用EXCEL求解,基本模型如下圖:

第一優(yōu)先級可以獲得最優(yōu),在此基礎(chǔ)上求第二優(yōu)先級,第二優(yōu)先級的模型是在原模型基礎(chǔ)上,將目標函數(shù)變化為第二優(yōu)先級,并且將第一優(yōu)先級的結(jié)果作為第二優(yōu)先級計算的約束條件。

min p2d■■

s.t.x1+x2+d■■-d■■=40x1+x2+d■■-d■■=50x1+d■■-d■■=24x2+d■■-d■■=30d■■=0x1,x2,d■■,d■■≥0,i=1,L 4

使用EXDEL求解的過程如圖所示:

以此類推,可以求得目標規(guī)劃的滿意解。

三、結(jié)論

該文介紹了如何使用EXCEL軟件求解線性規(guī)劃、目標規(guī)劃、整數(shù)規(guī)劃和動態(tài)規(guī)劃,而運籌學中的內(nèi)容不止這些,因此下一步工作是要將EXCEL用于求解運籌學中除了規(guī)劃論外的其他模型。

參考文獻:

[1]運籌學教材編寫組.運籌學[M].北京:清華大學出版社,2005.

[2]秦必瑜,付海燕.管理類專業(yè)運籌學課程教學改革研究[J].中國林業(yè)教育,2010,28(3):57-59.

[3]石磊,蔡定教.關(guān)于運籌學課程教學改革的幾點思考[J].廣西教育學院學報,2010,(2):108-110.

[4]梁桂航,王健,李棟,趙萬勝,林紅旗.Lingo軟件在物流工程運籌學教學過程中的應用[J].物流技術(shù),2010,(12):226-228.

[5]萬義國,游小青.優(yōu)化建模軟件LINGO在運籌學中的應用[J].山西建筑,2007,33(15):367-368.

[6]許巖.淺談《管理運籌學》課程教學中WINQSB軟件的應用[J].現(xiàn)代計算機,2013,(3)0:28-31.

[7]張明,王文文.Matlab在經(jīng)管類運籌學教學中的探索與實踐[J].大學教育,2012,(7):81-89.

[8]李雪虎.EXCEl軟件在物流運籌學教學中應用探索[J].物流科技,2012,(8):108-111.

[9]魏杰羽.EXCEl在物流運籌課程中的應用[J].物流工程與管理,2012,(5):201-203.

[10]張輝如何試用EXEL軟件求解運籌學模型[J].現(xiàn)代企業(yè)文化,2009,(11):144-145.