Пример #1
0
        public State PlusOneUnit(IMDPState s, IALPResource r)
        {
            IMDPState _s = s.Clone();

            if ((_s as State).Keys.Contains(r) && (_s as State)[r] >= 0)
            {
                (_s as State)[r] += 1;
            }
            return(_s as State);
        }
Пример #2
0
        public State MinusOneUnit(IMDPState s, IALPResource r)
        {
            IMDPState _s = s.Clone();

            if ((_s as State).Keys.Contains(r) && (_s as State)[r] > 0)
            {
                (_s as State)[r] -= 1;
            }
            return(this.FirstOrDefault(i => i.Equals(_s)) as State);
        }
Пример #3
0
 private int aik(IALPResource i, Route r)
 {
     if (r.Exists(a => a.Contains(i as Resource)))
     {
         return(1);
     }
     else
     {
         return(0);
     }
 }
Пример #4
0
 public bool UseResource(IALPResource r)
 {
     return(this.openProductSet.FirstOrDefault(i => i.Contains(r)) != null);
 }
Пример #5
0
 public int IndexOf(IALPResource item)
 {
     return(base.IndexOf((item as Resource)));//可能出现错误
 }
Пример #6
0
 public double Qti(int t, IALPResource re, IMDPDecision a)
 {
     return(Ro(t) * suppRoute((a as Decision).OpenProductSet).
            Sum(i => P(t, i, a as Decision) * aik(re, i)));
 }