【2024_CUMCM】LINGO入門+動態規劃

目錄

什么是動態規劃

怎么使用動態規劃?

例題:最短路線問題

2020b-問題一

穩定性分析

靈敏度分析?


什么是動態規劃

基本想法:將原問題轉換為一系列相互聯系的子問題,然后通過逐層遞推求得最后的解

基本思想:解決最優解問題,滿足最優性原理(最優策略的任何一部分子策略必需是最優的)

在這類問題中,可能會有許多可行解,每一個解都對應一個值,我們希望找到具有最優值的解

動態規劃算法中蘊含著遞歸的思想,但是遞歸問題中會出現某些子問題被計算多次,而如果利用動態規劃算法,可以把已經計算過的子問題的解給裝起來,然后用到的時候再拿出來,減少計算次數。

例如:斐波拉契數列

遞歸求法

//定義主函數
#include<stdio.h>
int main()
{int F(int n); //數組printf("%d\n",F(5));return 0;
}
//Fibonacci數列的遞歸算法
int F(int n)
{// 進行條件判斷if(n<=1){return 1;}else{return F(n-1)+F(n-2);}
}

動態規劃求法

#include<stdio.h>
int main()
{int Fibonacci(int n);printf("%d\n",Fibonacci(5));return 0;
}
int Fibonacci(int n)
{//申請一個數組存放子問題的解 int f[n+1],i;f[0]=1;f[1]=1;for(i=2;i<=n;i++){f[i]=f[i-1]+f[i-2];}return f[n];
}

怎么使用動態規劃?


1.將過程分為恰當的階段

2.找變量,定義決策變量

3.明確目標,寫出目標函數

4.列約束,尋找對于得到最優解的約束條件

5.寫出狀態轉移方程,根據狀態才可作出決策


例題:最短路線問題

根據題目,可以分為七個階段

解題時只需將每一條路徑全都定義出來,然后導入數據大致就可解出答案

但是為了掌握其他導入數據的方法,我們考慮通過xlsx導入數據,通過一頓操作,輸入數據,空值使用-1代替

然后寫入空值,選擇內容,“ctrl+h”-定位-空值- ‘-1’ -“ctrl+enter”?

還需要定義數據名稱,拖拽選中數據,在左上角進行定義(可以看下面的另一張表格圖)

??

model:

sets:
vertex/V1..V16/:V;? //定義一個名為V的頂點集合(把它理解成一個點,還沒有賦值)

road(vertex,vertex):R_D2;? ?//定義一個名為R_D2的道路集合
?

RR(road)|R_D2(&1,&2)#gt#0:D;? ?//定義一個名為D的距離矩陣,其元素是道路集合R_D2中的元素,且距離大于0

endsets

原本沒有加粗行的定義,但是因為數據中空值用-1代替,所以我們需要將非-1的值拿出來

`xx(xx)`這是正常的變量定義,`|`這個符號表示過濾,后面表示R_D2數據要大于等于0,并賦值為D。不難發現,這個過濾的語言只是多了`|`and`#`,其他與bash語言是比較相近的。?

經上述操作就可以篩選出非空的路程值

data:
R_D2=@ole('D:\jianmo\R.xlsx');
enddata

下面進行數據導入

參考:lingo基礎入門Day 11——lingo外部訪問數據、文本文件、電子表格、數據庫_lingo讀取excel數據-CSDN博客

利用ole函數

  • 訪問Excel電子表格的關鍵是在Excel中定義數據庫
  • 定義數據塊的方法是先選擇單元格區域,從右鍵菜單中選定義名稱,本題定義為R_D2
  • 用lingo訪問Excel電子表格前,應當先用Excel打開相應的數據文件,否則不能讀寫數據。

寫出約束

運用for函數遍歷出所有D的情況

@for(RR(i,j):D(i,j)=R_D2(i,j));

將起點(V1)的值設置為0

運用for函數與min函數對集進行循環,計算除起點外的其他頂點的最短路徑值。

對于每個頂點i(除了起點),將其值設置為所有可能的前驅頂點j的最短路徑值加上從j到i的距離的最小值

V(1)=0;

@for(vertex(i)|i#gt#1:V(i)=@min(RR(j,i):V(j)+D(j,i)));

end


2020b-問題一

?2020全國大學生數學建模競賽論文展示(B125) - 2020全國大學生數學建模競賽論文展示 - 中國大學生在線 (moe.gov.cn)

2020全國大學生數學建模競賽B題講評:穿越沙漠 - 2020數學建模賽題講評 - 中國大學生在線 (moe.gov.cn)


?

穩定性分析

李雅普諾夫(第二方法)穩定性分析+例題_證明李亞普諾夫atp+pa=-q-CSDN博客

這個我看不太懂?


靈敏度分析?

數學建模評價類方法01——靈敏度分析_數學建模靈敏度分析怎么寫-CSDN博客

上面的鏈接寫的很好?

在解題時,結果會受到多個因素的影響,有一些因素是固定的,有一些因素在實際中是有變化的,此時,我們通過取該因素周圍值,進行計算,如果對結果有影響,那我們就說這是敏感的,那究竟有多敏感,就要進行靈敏度分析,看結果與變化率的關系。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43658.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

X12端口配置指南:ISA ID、測試指示符與997

通過知行之橋EDI系統實現X12 & 標準XML之間的格式轉換時&#xff0c;需要完善交換頭ISA ID及其限定符、測試標識符以及997的相關配置。 在X12文件中有兩組EDI ID對&#xff0c;分別是發送方 ID 限定符 及發送方ID &#xff0c;接收方 ID 限定符及接收方ID。 比如&#xf…

STM32Cubemx配置生成 Keil AC6支持代碼

文章目錄 一、前言二、AC 6配置2.1 ARM ComPiler 選擇AC62.2 AC6 UTF-8的編譯命令會報錯 三、STM32Cubemx 配置3.1 找到stm32cubemx的模板位置3.2 替換文件內核文件3.3 修改 cmsis_os.c文件3.4 修改本地 四、編譯對比 一、前言 使用keil ARM compiler V5的時候&#xff0c;編譯…

RK3568 buildroot 使用dropbear實現ssh遠程的方法

RK3568 buildroot 使用dropbear實現ssh遠程的方法 文章目錄 RK3568 buildroot 使用dropbear實現ssh遠程的方法前言一、創建S99dropbear.sh腳本二、創建sshd_config三、添加root賬戶密碼到系統驗證登錄前言 rk3568 linux 的sdk中,buildroot已經集成了dropbear的所需的lib庫環境…

交替打印-GO

1 兩個channel 版本 package mainimport ("fmt""sync")var wg sync.WaitGroup var c1 chan int var c2 chan intfunc A(){defer wg.Done()for i:0;i<10;i {<-c1fmt.Println(2*i)c2<-1 //牽引協程} } func B(){defer wg.Done()for i:0…

Java內存區域與內存溢出異常(自動內存管理)

序言&#xff1a;Java與C之間有一堵由內存動態分配和垃圾收集技術所圍成的高墻&#xff0c;墻外面的人想進去&#xff0c;墻里面的人卻想出來。 1.1概述 對于從事C、C程序開發的開發人員來說&#xff0c;在內存管理領域&#xff0c;他們既是擁有最高權力的“皇帝”&#xff0c…

使用OpenCV在按下Enter鍵時截圖并保存到指定文件夾

使用OpenCV在按下Enter鍵時截圖并保存到指定文件夾 在這篇博客中&#xff0c;我們將介紹如何使用OpenCV庫來實現一個簡單的功能&#xff1a;在按下Enter鍵時從攝像頭截圖并保存到指定的文件夾中。這個功能可以用于各種應用&#xff0c;例如監控系統、視頻捕捉等。 前置條件 …

在FPGA程序中Handshake(握手)和Register(寄存器)區別

在FPGA程序中&#xff0c;Handshake&#xff08;握手&#xff09;和Register&#xff08;寄存器&#xff09;是兩種不同的通信和數據傳輸機制。它們各有特點和適用場景。以下是它們的區別和應用場景的詳細解釋&#xff1a; Register&#xff08;寄存器&#xff09; 特點&#…

SQLServer用戶們,你們攤上大事了!

最近一段時間&#xff0c;我們經常會收到了許多用戶的咨詢&#xff0c;問我們何時能納管SQLServer&#xff1f;耐不住小伙伴們的猛烈催促及熱切期待&#xff0c;本不想納管SQLServer的研發團隊也抓緊將這項需求提上日程。并在DBdoctor v3.2.2版本中成功實現了對SQLServer的納管…

班級錄取查詢系統如何制作

在教育的長河中&#xff0c;我們每位老師都曾面臨過這樣一個問題&#xff1a;如何高效、準確地完成班級錄取查詢的任務&#xff1f;記得在以往&#xff0c;每當新學期伊始&#xff0c;我們不得不手忙腳亂地整理學生名單&#xff0c;然后逐一通知他們所在的班級。這個過程不僅耗…

谷歌Google Ads新賬號推廣方案

第一階段重點 推廣地區優化&#xff1a;分析投放國家的數據&#xff0c;剔除高花費低轉化的國家&#xff0c;將預算重新分配給高性價比的國家&#xff0c;從而降低詢盤成本并增加詢盤數量。關鍵詞優化&#xff1a;識別并暫停或降價高成本低回報的關鍵詞&#xff0c;減少詢盤成本…

《mysql篇》--索引事務

索引 索引的介紹 索引是幫助MySQL高效獲取數據的數據結構&#xff0c;是一種特殊的文件&#xff0c;包含著對數據表里所有記錄的引用指針&#xff0c;因為索引本身也比較大&#xff0c;所以索引一般是存儲在磁盤上的&#xff0c;索引的種類有很多&#xff0c;不過如果沒有特殊…

[ios-h5]在ios系統瀏覽器中輸入框得到焦點時頁面自動放大

問題&#xff1a; 在ios系統瀏覽器中輸入框得到焦點時頁面自動放大。 解決&#xff1a; 添加meta標簽。 <meta name"apple-mobile-web-app-capable" content"yes" /> <meta name"viewport" content"widthdevice-width, initial-…

隱式類型轉換 算術轉換

目錄 整型提升 間接證明整型提升的代碼案例 算術轉換 整型提升 何為整型提升&#xff1a; C語言的整型算術運算總是至少以缺省&#xff08;默認&#xff09;整型類型的精度來進行的 為了獲得這個精度&#xff0c;表達式中的字符類型和短整型操作數在使用之前被轉換為普通整…

基于SpringBoot實現輕量級的動態定時任務調度

在使用SpringBoot框架進行開發時&#xff0c;一般都是通過Scheduled注解進行定時任務的開發&#xff1a; Component public class TestTask {Scheduled(cron"0/5 * * * * ? ") //每5秒執行一次public void execute(){SimpleDateFormat df new SimpleDateFormat(…

解決 NullReferenceException: Object reference not set to an instance of an object

在 Unity 中 利用 URDF Importer import UR5e_gripper 的 URDF file 時出現錯誤&#xff1a; NullReferenceException: Object reference not set to an instance of an object。 理論上是有個Object 是 Null&#xff0c;當我再次檢查URDF后仍覺得路徑沒有寫錯。 于是我 把Mesh…

軟件測試面試200問(含答案+文檔)

Part1 1、你的測試職業發展是什么&#xff1f; 測試經驗越多&#xff0c;測試能力越高。所以我的職業發展是需要時間積累的&#xff0c;一步步向著高級測試工程師奔去。而且我也有初步的職業規劃&#xff0c;前3年積累測試經驗&#xff0c;按如何做好測試工程師的要點去要求自…

spring的bean注冊

bean注冊 第三方jar包的類想添加到ioc中&#xff0c;加不了Component該怎么辦呢。 可以使用Bean和Import引入jar包&#xff0c;可以使用maven安裝到本地倉庫。 修改bean的名字&#xff1a;Bean("aaa")使用ioc的已經存在的bean對象&#xff0c;如Country&#xff1a;p…

in-flight 要維持在 bdp 附近嗎

試圖在 bbr 和 aimd 之間保持公平是徒勞的&#xff0c;因為它們沒有共識。bbr 認為 in-flight 超過 bdp 是擁塞&#xff0c;而 aimd 認為 buffer 溢出才擁塞&#xff0c;兼顧彼此&#xff0c;就是 bbr3&#xff0c;aimd 不會往左&#xff0c;bbr 就往右。 vegas 同理&#xff…

自定義@AnonymousAccess注解

一.目的&#xff1a; 自定義AnonymousAccess注解&#xff0c;可以直接在controller上添加該注解使請求繞過權限驗證進行匿名訪問&#xff0c;便于快速調用調試以及部分不需要進行安全驗證的接口。而不是每次都需要去SecurityConfig文件中進行修改。 二.流程&#xff1a; 三.實…

通用后臺管理(二)——項目搭建

目錄 前言 一、安裝vue-cli依賴 1、使用yarn下載vue-cli 2、使用npm下載 3、檢查一下是否下載成功 二、創建項目 1、創建項目&#xff0c;my-app是項目名稱 2、 這里選擇vue 2&#xff0c;藍色表示選中的。 3、啟動項目 三、下載項目依賴 四、配置項目 1、修改esli…