基于点菜问题的数学模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学建模一周论文
论文题目:基于点菜问题的数学模型
姓名1:学号:
姓名2:学号:
姓名3:学号:
专业:
班级:
指导教师:
目录
一.摘要 (2)
二.题目 (2)
三.问题的提出 (3)
四.问题分析 (3)
五.模型假设 (4)
六.定义符号说明 (4)
七.模型建立 (5)
八.结果分析 (8)
一、论文摘要
点菜问题,是在已知菜价和营养值的情况下,通过一定限定条件求如何搭配价格最小的问题。

本文利用C语言进行编程,对各种方法进行穷举,求得菜价的最小值:
{ EMBED Equation.DSMT4 |
min
Z=18+21.5+12.6+23+10.5+32
然后输出最小值
关键词:点菜模型最优解选择规划C语言
二、题目
我们在餐馆中点菜,需要包含某些营养成份,但同时又希望总价格最低。

下表是这个餐馆的部分菜单,请你通过数学建模方法,提供合理的选菜方案。

序号菜单价格
(元)
蛋白

淀粉维生素
矿物

1菜肉蛋卷18 1 0 1 1 2炒猪肝21.5 0 1 0 1 3色拉12.5 0 0 1 0 4红烧排骨23 1 0 0 0 5咖喱土豆10.5 0 1 0 0
6清汤全鸡32 1 0 0 1 三、问题的提出
改革开放以来,我国的科技不断进步,经济高速发展。

人们不再像以前一样,只求吃饱穿暖。

如今,就连吃饭也成了一门学问,而且很有讲究。

经常性的,我们会到外面的餐馆吃饭,但是,吃什么呢?他叫你点,你叫他点。

说实话这的确是个难题。

既然如此,为什么不让餐馆老板给我们推荐呢。

所以,餐馆应该列出一些点菜组合,所点的菜包含某些营养成份,同时总价格最低。

针对这个点菜问题,我们决定采用数学建模的方法,求解餐馆点菜的最佳组合。

选择最优的4-6个排列组合展现在在菜单上,供顾客自行挑选。

四、问题分析
餐馆只有6个菜,为了搭配营养点菜,要从这6个菜中随机抽取4个菜为一个组合,每个菜只能点一次,且还要剔除有非营养物质的菜的组合,把保留下来的点菜组合,将每个组合所需的总菜价求出,对求出的菜价做比较,得到营养
丰富且价格最低的点菜组合。

五、模型假设
①假设客人点4个菜,因为要保证在获取足够营养的情况下有更多的选择。

②从6个菜中选4个菜有=15种选择方法。

③假设每个菜只点一次,这比较符合实际情况。

④为保证每一种营养都获取,排除其中没有某种营养的选菜方式。

六、定义符号说明
--菜肉蛋卷的数量
--炒猪肝的数量
--色拉的数量
--红烧排骨的数量
--咖喱土豆的数量
--清汤全鸡的数量
Dan--蛋白质含量
Dian--淀粉含量
Wei--维生素含量
Kuang--矿物质含量
⎪⎪⎪⎪⎩
⎪⎪⎪⎪⎨⎧
七、模型建立
从上表可以写出此问题的数学模型。

满足的约束条件为:
++1; +1; +1; ++1;
+++++=4;
使总价最低
即=18+21.5+12.6+23+10.5+32
编写立c 语言程序建模,对可能的选择方式进行列举 选择其中最适合的解,程序代码如下:
#include"stdio.h" int main() { int b[15][6], i = 0, j = 0, min, dan, dian, wei, kuang; for (i = 0; i < 15; i++) { for (j = 0; j < 6; j++) b[i][j] = 1; } for (i = 0; i < 5; i++) { static int o = 1; b[i][0] = 0; b[i][o] = 0; o++; } for (i = 5; i < 9; i++) { static int p = 2; b[i][1] = 0;
b[i][p] = 0;
p++;
}
for (i = 9; i < 12; i++)
{
static int q = 3;
b[i][2] = 0;
b[i][q] = 0;
q++;
}
b[12][3] = b[12][4] = b[13][3] = b[13][5] = b[14][4] = b[14][5] = 0;
for (i = 0; i < 15; i++)
{
min =
18 * b[i][0] + 21.5 * b[i][1] + 12.5 * b[i][2] + 23 * b[i][3] +10.5 * b[i][4] + 32 * b[i][5];
dan = b[i][0] + b[i][5];
dian = b[i][1] + b[i][4];
wei = b[i][0] + b[i][2];
kuang = b[i][0] + b[i][1] + b[i][5];
printf
("菜肉蛋卷%d份,炒猪肝%d份,色拉%d份,红烧排骨%d份,咖喱土豆%d份,清蒸全鸡%d份\n",
b[i][0], b[i][1], b[i][2], b[i][3], b[i][4], b[i][5]);
printf
("价格为%d 蛋白质含量为%d淀粉含量为%d维生素含量为%d矿物质含量为%d\n\n",
min, dan, dian, wei, kuang);
}
}
程序输出为:
对输出结果整理成表格:
菜肉蛋卷(份)炒猪肝
(份)
色拉
(份)
红烧排
骨(份)
咖喱土
豆(份)
清汤全
鸡(份)
蛋白



维生

矿物

总价
(元)
1 0 1 1 0 1 3 0
2 2 85 1 0 1 1 1 0 2 1 2 1 64 1 1 0 0 1 1 2 2 1
3 82 1 1 0 1 0 1 3 1 1 3 9
4 1 1 0 1 1 0 2 2 1 2 73 1 1 1 0 0 1 2 1 2 3 84 1 1 1 0 1 0 1 2 2 2 62 1 1 1 1 0 0 2 1 2 2 7
5 0 0 1 1 1 1 2 1 1 1 78 0 1 0 1 1 1 2 2 0 2 87 0 1 1 0 1 1 1 2 1 2 7
6 0 1 1 1 0 1 2 1 1 2 89
0 1 1 1 1 0 1 2 1 1 67
1 0 0 1 1 1 3 1 1
2 8
3 1 0 1 0 1 1 2 1 2 2 73
八、结果分析
由结果可以得知,选择一份菜肉蛋卷,一份色拉,一份炒猪肝,一份咖喱土豆的选择方式最便宜,仅需62元,并且拥有相对较多的各类营养,含有1单位蛋白质,2单位淀粉,2单位维生素,2单位矿物质。

选择一份菜肉蛋卷,一份色拉,一份红烧排骨,一份咖喱土豆的选择方式也是比较物美价廉的选择,需要64元,含有2单位蛋白质,1单位淀粉,2单位维生素,1单位矿物质。

相关文档
最新文档