public override void StepFoward() { alpha -= step; //Delete Agg constraint(s) foreach (var a in Aggconstraints) { RMPModel.Remove(a.Value); } List <IALPDecision> list = Aggconstraints.Keys.ToList(); Aggconstraints.Clear(); //Add DisAgg variables and constraint(s) for (int i = alpha + 1; i <= alpha + step; i++) { constraints.Add(i, new Dictionary <IALPDecision, IRange>()); Var1.Add(i, RMPModel.NumVarArray(Data.RS.Count, 0, double.MaxValue)); Var2.Add(i, RMPModel.NumVar(0, double.MaxValue)); V.Add(i, new double[Data.RS.Count]); Sita.Add(i, 0); } for (int t = alpha + 1; t <= alpha + step; t++) { if (t < Data.TimeHorizon - 1) { foreach (IALPResource re in Data.RS) { INumExpr exp2 = RMPModel.Sum(Var1[t][Data.RS.IndexOf(re)], RMPModel.Prod(-1, Var1[t + 1][Data.RS.IndexOf(re)])); RMPModel.AddGe(exp2, 0); } INumExpr exp3 = RMPModel.Sum(Var2[t], RMPModel.Prod(-1, Var2[t + 1])); RMPModel.AddGe(exp3, 0); } } foreach (IALPResource re in Data.RS) { INumExpr exp6 = RMPModel.NumExpr(); exp6 = RMPModel.Sum(AggVar1[Data.RS.IndexOf(re)], RMPModel.Prod(-1, Var1[alpha + 1][Data.RS.IndexOf(re)])); RMPModel.AddGe(exp6, 0); } INumExpr exp4 = RMPModel.NumExpr(); exp4 = RMPModel.Sum(exp4, AggVar2, RMPModel.Prod(-1, Var2[alpha + 1])); RMPModel.AddGe(exp4, 0); foreach (IALPDecision de in list) { AddConstraint1(de); } Decision d = _ds[0] as Decision; for (int t = alpha + 1; t <= alpha + step; t++) { AddConstraint2(t, d); } }
private void AddParameters(ActivityContext context, Dictionary <string, string> parameters) { AddParameter(parameters, "@a", Var1.Get <string>(context)); AddParameter(parameters, "@b", Var2.Get <string>(context)); AddParameter(parameters, "@c", Var3.Get <string>(context)); AddParameter(parameters, "@d", Var4.Get <string>(context)); AddParameter(parameters, "@e", Var5.Get <string>(context)); AddParameter(parameters, "@f", Var6.Get <string>(context)); AddParameter(parameters, "@g", Var7.Get <string>(context)); AddParameter(parameters, "@h", Var8.Get <string>(context)); AddParameter(parameters, "@i", Var9.Get <string>(context)); AddParameter(parameters, "@x", Var10.Get <string>(context)); AddParameter(parameters, "@y", Var11.Get <string>(context)); AddParameter(parameters, "@z", Var12.Get <string>(context)); }
public int CompareTo(Hash256 other) { var leftLeftComparison = Var1.CompareTo(other.Var1); if (leftLeftComparison != 0) { return(leftLeftComparison); } var leftRightComparison = Var2.CompareTo(other.Var2); if (leftRightComparison != 0) { return(leftRightComparison); } var rightLeftComparison = Var3.CompareTo(other.Var3); if (rightLeftComparison != 0) { return(rightLeftComparison); } return(Var4.CompareTo(other.Var4)); }
// v0 = v1 / v2 // v1 = v0 * v2 // v2 = v1 / v0 public override void Update() { IntDomain v0 = Var0.Domain; IntDomain v1 = Var1.Domain; IntDomain v2 = Var2.Domain; IntDomain w0, w1, w2; do { w0 = v0; w1 = v1; w2 = v2; v0 = v0.Intersect(v1 / v2); v1 = v1.Intersect(v0 * v2); v2 = v2.Intersect(v0 / v1); }while(!ReferenceEquals(w0, v0) || !ReferenceEquals(w1, v1) || !ReferenceEquals(w2, v2)); Var0.Update(v0); Var1.Update(v1); Var2.Update(v2); }
public override string ToString(bool wd) { return("(" + Var0.ToString(wd) + "," + Var1.ToString(wd) + "," + Var2.ToString(wd) + ")"); }
public void Dispose() { Var1.Dispose(); Var2.Dispose(); Var3.Dispose(); }