When using COptQuestFrontierMultiObjective improviements have been made to the search algorithm that will yield better frontiers with fewer simulation runs for most multi-objective problems.
A new base class, COptQuestSingleObjective, has been introduced for representing single objective problems. COptQuestStringObjective and COptQuestUserControlledObjective extend COptQuestSingleObjective. If you have compile errors, changing COptQuestObjective to COptQuestSingleObjective should fix the errors.
In previous releases, replications for a single solution were run serially. The second replication of a solution would not run until the first replication had finished and was returned to OptQuest. With this release, replications will be run in parallel if parallel evaluators are available. This provides more efficient use of available computing resources. For example, if 3 parallel evaluators are available, replications 1, 2 and 3 would be run in parallel. There is not a guarantee that replications will finish in order. Replication 3 may finish before replication 1. Existing logic that assumes the replications will finish in order should be checked and may need to be reworked. The method COptQuestOptimization.RunReplicationSerially(true) is available to enforce previous behavior and will run the replications serially.
The new method COptQuestSolution.GetReplicationValue(object, replication) allows you to retrieve the value of an object at a specific replication. This was not previously available.
The new method COptQuestOptimization.StopSolutionGeneration() tells OptQuest not to send any more solutions out for evaluation. No new solutions are sent for evaluation, but OptQuest waits for those already out for evaluation are to be completed and returned. If running replications, all replications of a solution are sent for evaluation before stopping. This is different than COptQuestOptimization.stopOptimization() which stops immediately and does not wait for solutions out for evaluation to return.
When the new method COptQuestSolution.SetGenerateNewSolutions(onOff) is called and set to false, then OptQuest will only request evaluation of suggested solutions that you have provided. If this is set, OptQuest will not generate any additional solutions to evaluate using its solution generators.
A number of minor performance improvements and bug fixes and are also included.