-
Notifications
You must be signed in to change notification settings - Fork 0
/
revenue.m
38 lines (34 loc) · 1.33 KB
/
revenue.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function [R,B0,Lf,S] = revenue(residue ,a,b,c,r1,r2,p)
%根据前一天的遗留和当天的接货,计算当天的收益
%function [R,B0,Lf,S] = revenue(residue ,a,b,c,r1,r2,p)
%输入变量
% residue:前一天的遗留货物重量
% a:当天接的1类货重量
% b:当天接的2类货重量
% c:仓容
% r1:1类货运价
% r2:2类货运价
% p:延迟发送的赔偿
%输出变量
% R:当天的收益
% B0:当天的遗留(超过仓容的重量)
% Lf:满载率
% S :发送的状态1、2、3,分别对应于当天的总货重小于仓容、当天的1类货不小于仓容、当天的总货重大于仓容(1、2剩下的情况)
B=residue+a+b; %当天的总货重:前一天遗留下来的+当天产生的1类及2类货
Lf=1; %默认满载率为1
if B<=c %当天的总货重小于仓容,可以在当天运走
R=r1*a+r2*b; %residue的收益在接货的当天已经算过了
Lf=B/c;
B0=0; %没有遗留给第2天的
S=1;
else %if residue+a>=c %在当天接的货(1类和2类)和前一天遗留的货>c中,如果第二天当天必须发出的货物(前一天遗留的+当天接的1类货)>=仓容
R=r1*a+r2*b-(residue+a+b-c)*p;
B0=residue+a+b-c;
% B0=residue+a-c; %当天要发出的货超出仓容,则不接2类货
S=2;
% else %不是第二天当天必须发出的货物(前一天遗留的+当天接的1类货)>=仓容,而是当天接的货(1类和2类)和前一天遗留的货>c
% R=r1*a+r2*(c-a);
% B0=residue+a+b-c;
% S=3;
% end
end