public Constraints5LConstraintElement( IdIndexElement dIndexElement, IrIndexElement rIndexElement, IsIndexElement sIndexElement, ItIndexElement tIndexElement, It t, IW W, Iδ1 δ1, Iδ4 δ4, Ix x) { int LHS = δ1.GetElementAtAsint( sIndexElement, rIndexElement, dIndexElement); OPTANO.Modeling.Optimization.Expression RHS = OPTANO.Modeling.Optimization.Expression.Sum( t.GetNthElementsAt( tIndexElement.Key, tIndexElement.Key + (δ4.GetElementAtAsint( sIndexElement, rIndexElement, dIndexElement, tIndexElement) - 1) * W.Value.Value.Value, W.Value.Value.Value) .Select( y => x.Value[sIndexElement, rIndexElement, y])); this.Value = LHS <= RHS; }
public Iδ1ParameterElement Create( IsIndexElement sIndexElement, IrIndexElement rIndexElement, IdIndexElement dIndexElement, int value) { Iδ1ParameterElement parameterElement = null; try { parameterElement = new δ1ParameterElement( sIndexElement, rIndexElement, dIndexElement, value); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(parameterElement); }
public IsrdtCrossJoinElement Create( IsIndexElement sIndexElement, IrIndexElement rIndexElement, IdIndexElement dIndexElement, ItIndexElement tIndexElement) { IsrdtCrossJoinElement crossJoinElement = null; try { crossJoinElement = new srdtCrossJoinElement( sIndexElement, rIndexElement, dIndexElement, tIndexElement); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(crossJoinElement); }
public IConstraints13LConstraintElement Create( IdIndexElement dIndexElement, IwIndexElement wIndexElement, ITPy y, IδMinus δMinus, Iμ μ) { IConstraints13LConstraintElement constraintElement = null; try { constraintElement = new Constraints13LConstraintElement( dIndexElement, wIndexElement, y, δMinus, μ); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(constraintElement); }
public IConstraints1ConstraintElement Create( IdIndexElement dIndexElement, IrIndexElement rIndexElement, IsIndexElement sIndexElement, It t, IW W, Iβ β, Ix x) { IConstraints1ConstraintElement constraintElement = null; try { constraintElement = new Constraints1ConstraintElement( dIndexElement, rIndexElement, sIndexElement, t, W, β, x); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(constraintElement); }
public IConstraints12ConstraintElement Create( IdIndexElement dIndexElement, IwIndexElement wIndexElement, Id d, Il l, Ipa pa, IP P, Iprob prob, ITPx x, IVariance Variance) { IConstraints12ConstraintElement constraintElement = null; try { constraintElement = new Constraints12ConstraintElement( dIndexElement, wIndexElement, d, l, pa, P, prob, x, Variance); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(constraintElement); }
public IβResultElement Create( IsIndexElement sIndexElement, IrIndexElement rIndexElement, IdIndexElement dIndexElement, int value) { IβResultElement resultElement = null; try { resultElement = new βResultElement( sIndexElement, rIndexElement, dIndexElement, value); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(resultElement); }
public IConstraints8UConstraintElement Create( IdIndexElement dIndexElement, IsIndexElement sIndexElement, ItIndexElement tIndexElement, Iu u, Iz z) { IConstraints8UConstraintElement constraintElement = null; try { constraintElement = new Constraints8UConstraintElement( dIndexElement, sIndexElement, tIndexElement, u, z); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(constraintElement); }
public IConstraints13UConstraintElement Create( IdIndexElement dIndexElement, IwIndexElement wIndexElement, Interfaces.Variables.TP.WardSpareBeds.IδPlus δPlus_w, Interfaces.Variables.TP.WardDayBedAvailabilityDeviations.IδPlus δPlus_wd) { IConstraints13UConstraintElement constraintElement = null; try { constraintElement = new Constraints13UConstraintElement( dIndexElement, wIndexElement, δPlus_w, δPlus_wd); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(constraintElement); }
public Iδ4ParameterElement Calculate( Iδ4ParameterElementFactory δ4ParameterElementFactory, IdIndexElement dIndexElement, IrIndexElement rIndexElement, IsIndexElement sIndexElement, ItIndexElement tIndexElement, It t, IW W, Iγ γ, Iδ3 δ3) { Iδ4ParameterElement δ4ParameterElement = null; int γSum = 0; int δ3Asint = δ3.GetElementAtAsint( sIndexElement, rIndexElement, dIndexElement); if (δ3Asint == 0) { δ4ParameterElement = δ4ParameterElementFactory.Create( sIndexElement, rIndexElement, dIndexElement, tIndexElement, 1); } else { int δ4 = 1; do { γSum = t.GetNthElementsAt( dIndexElement.Value.Value.Value, dIndexElement.Value.Value.Value + (δ4 - 1) * W.Value.Value.Value, W.Value.Value.Value) .Select(x => γ.GetElementAtAsint( rIndexElement, t.GetElementAt(x.Key))) .Sum(); δ4 = δ4 + 1; } while (γSum < δ3Asint); if (γSum == δ3Asint) { δ4ParameterElement = δ4ParameterElementFactory.Create( sIndexElement, rIndexElement, dIndexElement, tIndexElement, δ4 - 1); // Subtract 1 to account for last iteration of the do-while loop } } return(δ4ParameterElement); }
public IConstraints3ConstraintElement Create( IdIndexElement dIndexElement, IwIndexElement wIndexElement, Ipa pa, IA A, IP P, ISPx x, ISPy y) { IConstraints3ConstraintElement constraintElement = null; try { constraintElement = new Constraints3ConstraintElement( dIndexElement, wIndexElement, pa, A, P, x, y); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(constraintElement); }
public IConstraints14ConstraintElement Create( IdIndexElement dIndexElement, IwIndexElement wIndexElement, Interfaces.Variables.TP.WardBedOccupancyVariances.IVariance Variance_w, Interfaces.Variables.TP.WardDayBedRequirementVariances.IVariance Variance_wd) { IConstraints14ConstraintElement constraintElement = null; try { constraintElement = new Constraints14ConstraintElement( dIndexElement, wIndexElement, Variance_w, Variance_wd); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(constraintElement); }
public Constraints3ConstraintElement( IdIndexElement dIndexElement, IwIndexElement wIndexElement, Ipa pa, IA A, IP P, ISPx x, ISPy y) { Expression LHS = Expression.Sum( pa.Value .Where( i => P.IsThereElementAt( wIndexElement, i.pIndexElement) && A.IsThereElementAt( i.pIndexElement, dIndexElement, i.aIndexElement)) .Select( i => x.Value[i.pIndexElement, i.aIndexElement])); Expression RHS = y.Value[wIndexElement]; this.Value = LHS <= RHS; }
public Iδ3ParameterElement Calculate( Iδ3ParameterElementFactory δ3ParameterElementFactory, IdIndexElement dIndexElement, IrIndexElement rIndexElement, IsIndexElement sIndexElement, It t, IW W, Iβ β, Iγ γ) { int value = 0; int γSum = t.GetNthElementsAt( dIndexElement.Value.Value.Value, t.GetT() - W.Value.Value.Value + dIndexElement.Value.Value.Value, W.Value.Value.Value) .Select( y => γ.GetElementAtAsint( rIndexElement, y)) .Sum(); int βAsint = β.GetElementAtAsint( sIndexElement, rIndexElement, dIndexElement); if (βAsint > 0) { // Case (i) if ((γSum % βAsint) == 0) { value = γSum / βAsint; } else if ((γSum % βAsint) != 0) { // Case (ii) if (βAsint < (γSum / 2)) { value = (int)Math.Floor( (decimal)(γSum / βAsint)); } // Case (iii) else if ((βAsint > (γSum / 2)) && (βAsint < γSum)) { value = (int)Math.Floor( (decimal)(γSum / (γSum - βAsint))); } } } return(δ3ParameterElementFactory.Create( sIndexElement, rIndexElement, dIndexElement, value)); }
public IEBSResultElement Calculate( IEBSResultElementFactory EBSResultElementFactory, IdIndexElement dIndexElement, Iw w, IBEDS BEDS, Iμ μ, IVariance Variance) { int BEDS_d = BEDS.Value.Value.Value; double ExpectedValue_d = w.Value .Select(y => (double)μ.GetElementAtAsdecimal( y, dIndexElement)) .Sum(); double Variance_d = w.Value .Select(y => (double)Variance.GetElementAtAsdecimal( y, dIndexElement)) .Sum(); double lowerBound = BEDS_d + 0.5; double upperBound = double.PositiveInfinity; double value = 0.5 * (BEDS_d - ExpectedValue_d) * (MathNet.Numerics.SpecialFunctions.Erf( (lowerBound - ExpectedValue_d) * Math.Pow(Math.Sqrt(2 * Variance_d), -1)) - MathNet.Numerics.SpecialFunctions.Erf( (upperBound - ExpectedValue_d) * Math.Pow(Math.Sqrt(2 * Variance_d), -1))) + Math.Sqrt(Variance_d) * Math.Pow(Math.Sqrt(2 * Math.PI), -1) * (Math.Exp( -Math.Pow(lowerBound - ExpectedValue_d, 2) * Math.Pow(2 * Variance_d, -1)) - Math.Exp( -Math.Pow(upperBound - ExpectedValue_d, 2) * Math.Pow(2 * Variance_d, -1))); return(EBSResultElementFactory.Create( dIndexElement, (decimal)value)); }
public sdCrossJoinElement( IsIndexElement sIndexElement, IdIndexElement dIndexElement) { this.sIndexElement = sIndexElement; this.dIndexElement = dIndexElement; }
public wdCrossJoinElement( IwIndexElement wIndexElement, IdIndexElement dIndexElement) { this.wIndexElement = wIndexElement; this.dIndexElement = dIndexElement; }
public dtCrossJoinElement( IdIndexElement dIndexElement, ItIndexElement tIndexElement) { this.dIndexElement = dIndexElement; this.tIndexElement = tIndexElement; }
public decimal GetElementAtAsdecimal( IdIndexElement dIndexElement) { return(this.Value .Where(x => x.dIndexElement == dIndexElement) .Select(x => x.Value) .SingleOrDefault()); }
public DayBedRequirementVariancesResultElement( IdIndexElement dIndexElement, decimal value) { this.dIndexElement = dIndexElement; this.Value = value; }
public EBSResultElement( IdIndexElement dIndexElement, decimal value) { this.dIndexElement = dIndexElement; this.Value = value; }
public Constraints11ConstraintElement( IdIndexElement dIndexElement, IwIndexElement wIndexElement, Id d, Il l, Ipa pa, IP P, Iprob prob, ITPx x, Iμ μ) { Expression LHS = μ.Value[wIndexElement, dIndexElement]; ImmutableList <Tuple <IpIndexElement, IaIndexElement, double> > .Builder builder = ImmutableList.CreateBuilder <Tuple <IpIndexElement, IaIndexElement, double> >(); foreach (IpIndexElement pIndexElement in pa.Value.Where(i => P.IsThereElementAt(wIndexElement, i.pIndexElement)).Select(w => w.pIndexElement).Distinct()) { foreach (IaIndexElement aIndexElement in pa.Value.Select(w => w.aIndexElement).Distinct()) { int dLowerBound = aIndexElement.Key <= dIndexElement.Key ? dIndexElement.Key - aIndexElement.Key : d.GetMaximumKey() + dIndexElement.Key - aIndexElement.Key; double RHSSum = 0; for (int w = dLowerBound; w <= l.GetMaximumLengthOfStay(); w = w + 1) { RHSSum += (double)prob.GetElementAtAsdecimal( pIndexElement, l.GetElementAt( w)); } builder.Add( Tuple.Create( pIndexElement, aIndexElement, RHSSum)); } } ImmutableList <Tuple <IpIndexElement, IaIndexElement, double> > RHSSums = builder.ToImmutableList(); Expression RHS = Expression.Sum( pa.Value .Where(i => P.IsThereElementAt(wIndexElement, i.pIndexElement)) .Select( y => RHSSums.Where(w => w.Item1 == y.pIndexElement && w.Item2 == y.aIndexElement).Select(w => w.Item3).SingleOrDefault() * x.Value[ y.pIndexElement, y.aIndexElement])); this.Value = LHS == RHS; }
public int GetElementAtAsint( IsIndexElement sIndexElement, IrIndexElement rIndexElement, IdIndexElement dIndexElement) { return(this.Value .Where(x => x.sIndexElement == sIndexElement && x.rIndexElement == rIndexElement && x.dIndexElement == dIndexElement) .Select(x => x.Value) .SingleOrDefault()); }
public AParameterElement( IpIndexElement pIndexElement, IdIndexElement dIndexElement, IaIndexElement aIndexElement) { this.pIndexElement = pIndexElement; this.dIndexElement = dIndexElement; this.aIndexElement = aIndexElement; }
public δMinusResultElement( IwIndexElement wIndexElement, IdIndexElement dIndexElement, decimal value) { this.wIndexElement = wIndexElement; this.dIndexElement = dIndexElement; this.Value = value; }
public IDayBedRequirementVariancesResultElement Calculate( IDayBedRequirementVariancesResultElementFactory dayBedRequirementVariancesResultElementFactory, IdIndexElement dIndexElement, IVariance Variance) { return(dayBedRequirementVariancesResultElementFactory.Create( dIndexElement, Variance.Value .Where(a => a.dIndexElement == dIndexElement) .Select(a => a.Value) .Sum())); }
public Constraints13UConstraintElement( IdIndexElement dIndexElement, IwIndexElement wIndexElement, Interfaces.Variables.TP.WardSpareBeds.IδPlus δPlus_w, Interfaces.Variables.TP.WardDayBedAvailabilityDeviations.IδPlus δPlus_wd) { Expression LHS = δPlus_wd.Value[wIndexElement, dIndexElement]; Expression RHS = δPlus_w.Value[wIndexElement]; this.Value = LHS <= RHS; }
public IDayBedRequirementMeansResultElement Calculate( IDayBedRequirementMeansResultElementFactory dayBedRequirementMeansResultElementFactory, IdIndexElement dIndexElement, Iμ μ) { return(dayBedRequirementMeansResultElementFactory.Create( dIndexElement, μ.Value .Where(a => a.dIndexElement == dIndexElement) .Select(a => a.Value) .Sum())); }
public Constraints8UConstraintElement( IdIndexElement dIndexElement, IsIndexElement sIndexElement, ItIndexElement tIndexElement, Iu u, Iz z) { Expression LHS = z.Value[sIndexElement, tIndexElement]; Expression RHS = u.Value[sIndexElement, dIndexElement]; this.Value = LHS <= RHS; }
public srdtCrossJoinElement( IsIndexElement sIndexElement, IrIndexElement rIndexElement, IdIndexElement dIndexElement, ItIndexElement tIndexElement) { this.sIndexElement = sIndexElement; this.rIndexElement = rIndexElement; this.dIndexElement = dIndexElement; this.tIndexElement = tIndexElement; }