系统可靠性(HNOI’98)

一、问题描述:

给定一些系统备用件的单价Ck,以及当用Mk个此备用件时部件的正常工作概率PkMk),总费用上限C。求系统可能的最高可靠性。

二、算法分析

    1.证明这个问题符合最优化原理。可以用反证法证明之。假设用money的资金购买了前I项备用件,得到了最高的系统可靠性,而且又存在如下情况:对于备用件I,设要买Ki个,则可用的资金还剩余money – Ci*Ki,用这些钱购买前(I-1)项备用件,如果存在一种前(I-1)种备用件的购买方案得到的系统可靠性比当前得到的要高,那么这个新的方案会使得整个前I项备用件组成的系统可靠性比原先的更高,与原假设矛盾。所以可以证明这个问题符合最优化原理。

2.证明这个问题符合无后效性原则。

3.综上所述,本题适合于用动态规划求解。

4.递推方程及边界条件:

   F[I,money] := max { F[I-1,money – C[I]*K[I] ] } (0<=K[I]<= C div Ci )

三、参考程序

{$Q-,R-,S-}

{$M 16384,0,655360}

Program system_dependability;

  const finp='input.txt';

        fout='output.txt';

        maxm=3000;

  var f,p:array[0..maxm] of real;

      max,v:double;

      c,co,e,i,j,k,m,n:integer;

  procedure print;

    var output:text;

    begin

      assign(output,fout); rewrite(output);

      writeln(f[c]:1:4);

      close(output);

    end;

Begin

  assign(input,finp); reset(input);

  readln(input,n,c);

  for i:=0 to c do f[i]:=1;

  for i:=1 to n do begin

    read(input,co); m:=c div co;

    for e:=0 to m do read(input,p[e]);

    for j:=c downto 0 do begin

      m:=j div co; max:=0;

      for k:=0 to m do begin

        v:=f[j-k*co]*p[k];

        if v>max then max:=v;

      end;

      f[j]:=max;

    end;

  end;

  close(input);

  print

End.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
动态规划知识点及一些常见问题分析。动态规划基本原理.........................................................................................................................1 机器分配(HNOI’95)................................................................................................................. 3 最长不下降序列(HNOI’97)..................................................................................................... 4 凸多边形三角划分(HNOI’97)................................................................................................. 6 系统可靠性HNOI98)............................................................................................................. 8 快餐问题(HNOI’99)................................................................................................................. 9 求函数最大值(CTSC'95)............................................................................................................. 14 石子合并(NOI’95).................................................................................................................. 15 游览街区(NOI’97).................................................................................................................. 17 积木游戏(NOI’97).................................................................................................................. 20 免费馅饼(NOI’98).................................................................................................................. 24 棋盘分割(NOI’99).................................................................................................................. 27 钉子和小球(NOI’99).............................................................................................................. 30 等。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值