導航:首頁 > 源碼編譯 > 數學建模貪心演算法

數學建模貪心演算法

發布時間:2022-05-24 11:24:50

⑴ 一道數學建模題

我有一個貪心演算法,就是說由於不論加班與否都是P1產品的利潤高,因此為了滿足利潤應該盡量在非加班時間生產P1產品,如此一來,P2產品的利潤應該是>=7*75=525,剩下的利潤還有3500-525=2975
如果A,B組都在非加班時間生產A產品,則可生產10*8+8*8=144kg,利潤為144*20=2880,還差95的利潤,即95/15=6或7kg,由於B的生產能力是8kg/h,所以7/8>7/10,所以由B生產8千克,此時P1的生產任務完成
再看P2,有75千克的生產任務,此時A組剩下4小時,B組3小時,摺合一共生產47kg,不達生產要求
此演算法應該是考慮到利潤最大化,而又盡量滿足生產任務的,因此應該沒有無法分配滿足題目要求的工作計劃
僅供參考

⑵ 數學建模最小生成樹的語言程序

有Prim演算法和Kruskal演算法:(貪心),個人認為前者簡潔,代碼如下:

----------------------prim-------------------------------

#include <stdio.h>
#include <string.h>

int mat[55][55],used[55],min[55];
int p;

int prim()
{
int i,j,k,q,ret = 0;
for(i = 1;i <= p;i++)
min[i] = 1000000000,used[i] = 0;
min[1] = 0;
for(i = 1;i <= p;i++)
{
k = -1;
for(j = 1;j <= p;j++)
if(!used[j] && (k == -1 || min[j] < min[k]))
k = j;
used[k] = 1;
ret += min[k];
for(j = 1;j <= p;j++)
if(!used[j] && mat[k][j] && mat[k][j] < min[j])
min[j] = mat[k][j];
}
return ret;
}

int main()
{
int i,j,n,r,a,b,c;
while(scanf("%d%d",&p,&r) != EOF && p != 0)
{
memset(mat,0,sizeof(mat));
for(i = 0;i < r;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(!mat[a][b] || mat[a][b] > c)
mat[a][b] = mat[b][a] = c;
}
printf("%d\n",prim());
}
return 0;
}

----------------------Kruskal--------------------------

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
using namespace std;
#define MAX 1000
int father[MAX], son[MAX];
int v, l;

typedef struct Kruskal //存儲邊的信息
{
int a;
int b;
int value;
};

bool cmp(const Kruskal & a, const Kruskal & b)
{
return a.value < b.value;
}

int unionsearch(int x) //查找根結點+路徑壓縮
{
return x == father[x] ? x : unionsearch(father[x]);
}

bool join(int x, int y) //合並
{
int root1, root2;
root1 = unionsearch(x);
root2 = unionsearch(y);
if(root1 == root2) //為環
return false;
else if(son[root1] >= son[root2])
{
father[root2] = root1;
son[root1] += son[root2];
}
else
{
father[root1] = root2;
son[root2] += son[root1];
}
return true;
}

int main()
{
int ncase, ltotal, sum, flag;
Kruskal edge[MAX];
scanf("%d", &ncase);
while(ncase--)
{
scanf("%d%d", &v, &l);
ltotal = 0, sum = 0, flag = 0;
for(int i = 1; i <= v; ++i) //初始化
{
father[i] = i;
son[i] = 1;
}
for(int i = 1; i <= l ; ++i)
{
scanf("%d%d%d", &edge[i].a, &edge[i].b, &edge[i].value);
}
sort(edge + 1, edge + 1 + l, cmp); //按權值由小到大排序
for(int i = 1; i <= l; ++i)
{
if(join(edge[i].a, edge[i].b))
{
ltotal++; //邊數加1
sum += edge[i].value; //記錄權值之和
cout<<edge[i].a<<"->"<<edge[i].b<<endl;
}
if(ltotal == v - 1) //最小生成樹條件:邊數=頂點數-1
{
flag = 1;
break;
}
}
if(flag) printf("%d\n", sum);
else printf("data error.\n");
}
return 0;
}

⑶ 急求:2012美國數學建模競賽B題的建模思想

簡單來說,動態規劃,貪心演算法,具體原則得由自己定……
旅行社是以什麼為最大原則,這個很難確定,哪怕演算法對了,原則設計錯誤,效果也不好,我們小組以最大流通量為原則,只不過得了一等獎,有的人以最多利潤為原則,更好一些~~~

⑷ 數學建模 糧倉選址問題

從上繳糧食的情況來,倉庫應該建在100那個位置為最好。

⑸ 數學建模 最優線路設計 解答完再給100,發我郵箱,如果論文正確可付10Qb,誠心求高手援助

用數據結構演算法如貪心演算法

⑹ 什麼是貪婪演算法

是貪心演算法吧……
就是每次都取最優值。。。比如合並果子:
有n堆果子,每個果子都有一個重量,每次可以任意選擇2堆果子將其合並成一堆,花費是這兩堆果子的重量值之和,求最終合並成一堆的最小(最大)花費。
演算法就是,每次取重量最小(最大)的兩堆果子合並,直到還剩一堆。

⑺ 關於數學建模中用到的數學理論和編程演算法

關於程序,我建議你用matlab或者mathmaticas,用這類專用數學軟體比較好,因為我知道絕大多數人對C及C++的掌握還不至於到能夠熟練寫出你上述的各種演算法(當然一些的簡單的可以參考ACM的相關書籍),況且在實際工作中很多科學工作者或是工程師都是用Matlab之類的數學軟體,所以我也建議你用。
至於你是工科的(我也是),所以我也能夠理解你想學習上述各種演算法等的想法,但是我覺得這個真的不太現實,我自己也很愛好數學,在平時我也經常學習各種非自己專業的數學知識,但是實際上你學習了之後也要理解,更何況你要運用它到非常熟練的程度(絕非一般考試可比),所以我認為你就必須要非常有選擇的看,而且強烈建議你先做好規劃(一定要符合自己實際情況,不要貪心),然後抓緊學。
我看你上面列的,其中組合數學非常難,但是你一定要非常踏實地學好(這個會應用在許多連你自己都想不到的地方),另外圖論也是必須的,但這里我建議你先學習《離散數學》中的「圖論」,當你以後在運用中如果遇到更高深的理論再去參考專門的圖論書籍也不遲。另外微分方程我建議你先學習一些基礎的知識即可,因為在建模中大多數情況下我覺得你只要會建立就行了,這塊內容不用涉入太深,不然太費時間。至於你後面列的一些演算法,這個沒辦法迴避的,但也不是說你要一個個看過來,當然你可以考慮先走馬觀花地掃一遍,然後在仔細深入地學習集中重要的,相對出現幾率大的演算法。建議你多多拿題目來練習,在練題的過程中順帶學習相應知識,這樣效率比較高。

其他的我也幫不了什麼,關鍵你自己要抓緊,效率要大大提高。最後祝你好運!

⑻ 我在數學建模中,把所有情況用matlab列出求解,算是貪婪演算法嗎不是的話算什麼演算法呢

你所說的「所有情況」是怎麼得到的?所謂的「貪婪演算法」主要是指「貪婪」的考慮所有演算法,而不是靠任何數學或者計算機的思想去篩選。所以,這里主要的是指你得到所有演算法的方法,而不是說你用什麼去求解。

⑼ 求數學建模論文,關於濃度稀釋的,發我郵箱啊

能給我發一份嗎?謝謝你! QQ郵箱:1807073810

⑽ 我是計算機系的,數學建模都需要用到哪些軟體編程有什麼要求,演算法和數據結構要求高嗎求專業詳細解答

貪心演算法,蟻群演算法,遺傳演算法,進化演算法,基於文化的遺傳演算法,禁忌演算法,蒙特卡洛演算法,混沌隨機演算法,序貫數論演算法,粒子群演算法,模擬退火演算法。
模擬退火+遺傳演算法混合編程例子:
http://..com/question/43266691.html
自適應序貫數論演算法例子:
http://..com/question/60173220.html

閱讀全文

與數學建模貪心演算法相關的資料

熱點內容
jtbcphp 瀏覽:337
編程時遇到源代碼未編譯如何處理 瀏覽:431
綠源app怎麼查看綁定系統 瀏覽:357
qq里的壓縮文件怎麼保存 瀏覽:349
傷寒論桂林pdf 瀏覽:684
樹洞app怎麼搜索好友 瀏覽:217
冷庫壓縮機如何注油 瀏覽:641
無線wifi怎麼加密呢 瀏覽:432
linuxjava配置環境變數 瀏覽:702
rust伺服器怎麼下載地圖 瀏覽:831
程序員那麼可愛被誤會的片段 瀏覽:39
好玩免費的伺服器地址 瀏覽:344
vb腳本編譯 瀏覽:18
單片機led顯示數字 瀏覽:379
vim編譯器是什麼 瀏覽:385
ava程序員面試標准 瀏覽:791
安卓原生系統狀態欄編譯美化 瀏覽:64
java線程是什麼意思 瀏覽:710
如何查看伺服器的外網ip地址 瀏覽:721
命令方塊放置方塊 瀏覽:367