private void ExtractSingletonLabelsFrom(SolutionCollector theSolutionCollector) { foreach (var variableTuple in this.orToolsCache.SingletonVariableMap) { var solverValue = theSolutionCollector.Value(0, variableTuple.Value.Item2); var modelValue = ConvertSolverValueToModel(variableTuple.Value.Item1, solverValue); var newValue = new SingletonVariableLabelModel(variableTuple.Value.Item1, new ValueModel(modelValue)); this.snapshot.AddSingletonLabel(newValue); } }
private IEnumerable <SingletonVariableLabelModel> ExtractSingletonLabelsFrom(SnapshotLabelAssignment assignment, ConstraintNetwork constraintNetwork) { var labelAccumulator = new List <SingletonVariableLabelModel>(); foreach (var variable in constraintNetwork.GetSingletonVariables()) { var solverVariable = _modelSolverMap.GetSolverSingletonVariableByName(variable.Name); var labelAssignment = assignment.GetAssignmentFor(solverVariable); var variableSolverValue = labelAssignment.Value; var variableModel = _modelSolverMap.GetModelSingletonVariableByName(variable.Name); var variableModelValue = ConvertSolverValueToModel(variableModel, variableSolverValue); var label = new SingletonVariableLabelModel(variableModel, new ValueModel(variableModelValue)); labelAccumulator.Add(label); } return(labelAccumulator); }
/// <summary> /// Create a simple workspace model. /// </summary> /// <returns>A simple workspace model.</returns> internal WorkspaceModel Create() { var newWorkspace = new WorkspaceBuilder("An example model for no particular purpose.") .AddSingleton("x", "z") .AddAggregate("y", 10, "1..9") .WithConstraintExpression("x > 1") .WithSharedDomain("z", "1..10") .Build(); var xVariable = newWorkspace.Model.GetVariableByName("x"); var valueOfX = new SingletonVariableLabelModel((SingletonVariableModel)xVariable, new ValueModel(1)); var snapshot = new SolutionSnapshot(new List <SingletonVariableLabelModel> { valueOfX }, Enumerable.Empty <AggregateVariableLabelModel>(), Enumerable.Empty <BucketLabelModel>()); newWorkspace.Solution = new SolutionModel(newWorkspace.Model, snapshot, TimeSpan.Zero); return(newWorkspace); }
private BucketLabelModel ExtractBucketLabelFrom(SnapshotLabelAssignment assignment, OrangeBucketVariableMap bucketVariableMap) { var bundleLabels = new List <BundleLabelModel>(); foreach (var bundleMap in bucketVariableMap.GetBundleMaps()) { var variableLabels = new List <SingletonVariableLabelModel>(); foreach (var variableMap in bundleMap.GetVariableMaps()) { var solverVariable = variableMap.SolverVariable; var labelAssignment = assignment.GetAssignmentFor(solverVariable); var variableSolverValue = labelAssignment.Value; var variableModel = variableMap.ModelVariable; var variableModelValue = ConvertSolverValueToModel(bucketVariableMap.Bucket, variableSolverValue); var label = new SingletonVariableLabelModel(variableModel, new ValueModel(variableModelValue)); variableLabels.Add(label); } bundleLabels.Add(new BundleLabelModel(bucketVariableMap.Bucket.Bundle, variableLabels)); } return(new BucketLabelModel(bucketVariableMap.Bucket, bundleLabels)); }