决策支持系统作业最终Word格式.docx
《决策支持系统作业最终Word格式.docx》由会员分享,可在线阅读,更多相关《决策支持系统作业最终Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
![决策支持系统作业最终Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/7/605af4a3-1a13-46a8-a495-82f54c923903/605af4a3-1a13-46a8-a495-82f54c9239031.gif)
h与目标方程S=∑Piyi→max可以计算出最优的yi。
3.报表模型:
根据最终产品Y=(yij),X=(xi)是企业总产品自动生成报表。
2、数据库
1.投入产出数据库
字段名
数据类型
长度
是否可为空
int
8
是
……
16
float
2.线性规划数据库
h1
h2
h3
hi
3、DSS运行结构图
2、考虑去卡拉OK厅唱歌的时候,是否要等待包间的问题。
规定如下属性可用于描述该领域内的实例:
(1)Others(其他地点):
附近是否有其他卡拉OK厅;
(2)WaitCond(等候条件):
供顾客等候的地方是否舒适;
(3)Weekend(周末):
若是周六或周日,则为真;
(4)Conssumers(顾客):
店中有多少顾客(值为None(没人),Some(一些)或Full(满座));
(5)Price(价格):
价格范围(值为Cheep(便宜),Middle(中等),Expensive(较贵));
(6)Raining(下雨):
外面是否在下雨;
(7)Reservation(预约):
是否预约过;
(8)WaitEstimate(等候时间估计):
估计的等候时间(值为0—10,10—30,30—60,>
60,单位为分钟)。
训练集见表:
实例
属性
目标WillWait
Others
WCond
WEnd
Cons
Price
Rain
Res
WEst
X1
Yes1
No0
Some0
EX-1
0-101
Yes
X2
Full11
CH1
30-60-1
No
X3
X4
Full1
10-300
X5
>
60-2
X6
MID0
X7
None-1
X8
X9
X10
X11
X12
要求:
建立BP神经网络模型,并进行容错性分析。
(30分)
一、为训练集赋值
属性
值名
属性1
值
属性2
属性3
属性4
A
1
B
C
D
Full
Some
None
-1
E
Cheap
Middle
Expensive
F
G
H
0-10
10-30
30-60
60
-2
WillWait
I
在Matlab的命令窗口中运行如下代码:
p=[110110000101;
001001101101;
000110001101;
010110-1011-11;
-1111-10101-111;
000101111000;
100011010100;
1-110-2111-201-1];
t=[101101010001];
net=newff(minmax(p),[151],{'
tansig'
'
purelin'
},'
traincgb'
);
=5;
=300;
=0.000001;
[net,tr]=train(net,p,t);
得到如下曲线图:
容错性分析:
输入
输出WillWait
结果
1
等
-1
不等
0
-2
完成机器学习后,对样本进行改变条件输入,有如下3种情况:
(1)缺1个条件的情况
(2)缺2个条件的情况
(3)介于中间的情况
(1)
输出
WillWait
(1)
(0)
Oths
WCon
WEn
Con
Rai
0.8456
0.1526
等
(1)
0.0723
0.9281
不等(0)
0.8648
0.1352
0.8634
0.1366
0.2314
0.7686
0.9125
0.0875
0.3410
0.6595
0.9714
0.0286
0.4928
0.5012
不一定
0.5681
0.4319
0.4123
0.5877
0.6428
0.3572
3、编制旅行商路径优化问题的遗传算法程序,并计算一个实例。
一,问题描述:
所谓旅行商问题,即给定几个城市,旅行商从中选择一
条最短的路线,使他能够访问到每个城市一次,然后返回起
点。
二,运行结果:
三、代码实现
下面是程序的主要核心代码:
usingSystem;
using;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Diagnostics;
namespaceTSPGA
{
publicpartialclassForm1:
Form
{
privateWorld_world=newWorld();
publicForm1()
InitializeComponent();
}
privatevoidpictureBox1_MouseUp(objectsender,MouseEventArgse)
Pointpoint=newPoint(e.X/(pictureBox1.Width/200),e.Y/(pictureBox1.Height/200));
if(e.Button==MouseButtons.Left)
_world.AddPointNeedToVisit(point);
cityNum.Text=_();
else
_world.StartPoint=point;
ReDrawPB();
privatevoidReset_Click(objectsender,EventArgse)
_world.Reset();
privatevoidReDrawPB()
Bitmapbm=newBitmap(pictureBox1.Width,pictureBox1.Height);
using(Graphicsg=Graphics.FromImage(bm))
intx,y,radix;
foreach(Pointpointin_world.PointsNeedToVisit)
x=point.X*(pictureBox1.Width/200);
y=point.Y*(pictureBox1.Height/200);
radix=5;
g.DrawEllipse(Pens.DarkCyan,newRectangle(x-radix,y-radix,2*radix,2*radix));
if(_world.StartPoint!
=Point.Empty)
x=_world.StartPoint.X*(pictureBox1.Width/200);
y=_world.StartPoint.Y*(pictureBox1.Height/200);
g.DrawEllipse(Pens.Red,newRectangle(x-radix,y-radix,2*radix,2*radix));
pictureBox1.Image=bm;
privatevoidpictureBox1_MouseMove(objectsender,MouseEventArgse)
infos1.Text=point.ToString();
privatevoidStart_Click(objectsender,EventArgse)
_world.Population=Int32.Parse(population.Text);
_world.Generation=Int32.Parse(generation.Text);
_world.CrossOverRate=Double.Parse(crossOverRate.Text);
_world.MutationRate=Double.Parse(mutationRate.Text);
drawVisitRoute();
//_world.Reset();
privatevoiddrawVisitRoute()
Bitmapbm=(Bitmap();
PointstartPoint=_world.StartPoint;
if(startPoint==Point.Empty)
MessageBox.Show("
Youmustdefineastartpoint."
return;
Point[]pointsNeedToVisit=_world.PointsNeedToVisit;
Stopwatchsw=newStopwatch();
sw.Start();
int[]visitRoute=_world.GetVisitRoute();
sw.Stop();
infos3.Text="
Used:
"
+sw.ElapsedMilliseconds+"
ms."
;
List<
Point>
visitPoints=newList<
();
visitPoints.Add(startPoint);
foreach(intindexinvisitRoute)
visitPoints.Add(pointsNeedToVisit[index]);
inttd=0;
Pointtp=visitPoints[0];
for(inti=1;
i<
visitPoints.Count;
i++)
td+=GetManhattanDis(tp,visitPoints[i]);
tp=visitPoints[i];
totalDis.Text="
TotalDistace:
+td;
for(inti=0;
Pointp=newPoint();
p.X=visitPoints[i].X*pictureBox1.Width/200;
p.Y=visitPoints[i].Y*pictureBox1.Height/200;
visitPoints[i]=p;
g.DrawLines(Pens.SeaShell,visitPoints.ToArray());
privatevoidrandom_Click(objectsender,EventArgse)
Randomrnd=newRandom();
intc=Int32.Parse(cityNum.Text);
_world.StartPoint=newPoint(rnd.Next(0,200),rnd.Next(0,200));
c;
_world.AddPointNeedToVisit(newPoint(rnd.Next(0,200),rnd.Next(0,200)));
privatestaticintGetManhattanDis(Pointp1,Pointp2)
returnMath.Abs(p1.X-p2.X)+Math.Abs(p1.Y-p2.Y);
}