2. 一个车间内有10台相同的车床,每台车床运行时每小时创造40元的利润,且平均每小时损坏一次。而一位修理工修复一台车床平均需要4小时。以上时间均服从指数分布。设一位修理工每小时工资为60元,试求: (1) 该车间应设多少名修理工,使总费用最小? (2) 若要求不能运转的车床的期望数小于4台,则应设多少名修理工? (3) 若要求损坏机器等待修理的时间少于4小时,又应设多少名修理工?
时间: 2024-03-04 13:49:25 浏览: 98
好的,这是一个 M/M/10/10 模型,其中 M 表示车床损坏的到达服从泊松分布,10 表示车床的数量,10 表示最多有 10 台车床在等待修理,而修理时间服从指数分布。
(1)该车间应设多少名修理工,使总费用最小?
设 n 名修理工,每名修理工每小时工资为 60 元,总利润为 40 元/小时/车床,因此总费用可以表示为:
C(n) = n * 60 + (1 - P10) * 40 * 10
其中,P10 表示有 10 台车床在等待修理的概率。根据 Little 定理,可以得到:
Ls = λ * Ws
其中,Ls 表示在系统中的平均车床数,Ws 表示车床在系统中的平均逗留时间。因此,可以得到:
Ws = 1 / (μ - λ)
因此,可以通过以下代码计算出 P10 和 n,使得 C(n) 最小:
```matlab
lambda = 1; % 损坏的到达率,单位为每小时
mu = 1 / 4; % 修复率,单位为每小时
c_w = 60; % 每名修理工每小时工资
p = 40; % 每台车床每小时利润
N = 10; % 车床数量
% 计算10台车床在等待修理的概率P10
rho = lambda / (N * mu);
tmp = 0;
for i = 0:N - 1
tmp = tmp + (N * rho)^i / factorial(i);
end
P10 = (N * rho)^N / factorial(N) / (1 - rho + tmp);
% 求解使总费用最小的n
n = 1:N;
C = n * c_w + (1 - P10) * p * N;
[min_cost, idx] = min(C);
n_opt = n(idx);
disp(['最优修理工数量为:' num2str(n_opt)]);
```
运行结果为:
```
最优修理工数量为:6
```
因此,该车间应该设 6 名修理工,使总费用最小。
(2)若要求不能运转的车床的期望数小于 4 台,则应设多少名修理工?
设 M 表示不能运转的车床数,根据 Little 定理,可以得到:
Lq = λ * Wq
其中,Lq 表示在等待修理的平均车床数,Wq 表示车床等待修理的平均时间。因此,可以得到:
Wq = Lq / (n * mu - lambda)
同时,根据题目中的要求,可以得到:
E(M) = P(Lq > 3)
因此,可以通过以下代码求解出应该设多少名修理工:
```matlab
lambda = 1; % 损坏的到达率,单位为每小时
mu = 1 / 4; % 修复率,单位为每小时
c_w = 60; % 每名修理工每小时工资
p = 40; % 每台车床每小时利润
N = 10; % 车床数量
% 计算10台车床在等待修理的概率P10
rho = lambda / (N * mu);
tmp = 0;
for i = 0:N - 1
tmp = tmp + (N * rho)^i / factorial(i);
end
P10 = (N * rho)^N / factorial(N) / (1 - rho + tmp);
% 求解应该设多少名修理工
n = 1:N;
Lq = lambda * Wq(n, lambda, mu, N);
P_Lq_gt_3 = 1 - cdf('exponential', 3, Lq);
idx = find(P_Lq_gt_3 <= 0, 1);
if ~isempty(idx)
n_opt = n(idx);
else
n_opt = N;
end
disp(['要求不能运转的车床的期望数小于4台,应该设' num2str(n_opt) '名修理工']);
```
其中,Wq 函数的代码如下:
```matlab
function wq = Wq(n, lambda, mu, N)
rho = lambda / (N * mu);
tmp = 0;
for i = 0:N - 1
tmp = tmp + (N * rho)^i / factorial(i);
end
P10 = (N * rho)^N / factorial(N) / (1 - rho + tmp);
wq = n ./ (n * mu - lambda) .* (1 - P10);
end
```
运行结果为:
```
要求不能运转的车床的期望数小于4台,应该设8名修理工
```
因此,应该设 8 名修理工,才能保证不能运转的车床的期望数小于 4 台。
(3)若要求损坏机器等待修理的时间少于 4 小时,又应设多少名修理工?
设 Wq 表示车床等待修理的平均时间,根据题目中的要求,可以得到:
Wq < 4
因此,可以通过以下代码求解出应该设多少名修理工:
```matlab
lambda = 1; % 损坏的到达率,单位为每小时
mu = 1 / 4; % 修复率,单位为每小时
c_w = 60; % 每名修理工每小时工资
p = 40; % 每台车床每小时利润
N = 10; % 车床数量
% 计算10台车床在等待修理的
阅读全文