Class SolverConfig
java.lang.Object
ai.timefold.solver.core.config.AbstractConfig<SolverConfig>
ai.timefold.solver.core.config.solver.SolverConfig
To read it from XML, use
createFromXmlResource(String).
To build a SolverFactory with it, use SolverFactory.create(SolverConfig).-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Booleanprotected DomainAccessTypeprotected Set<PreviewFeature>protected EnvironmentModeprotected Map<String,MemberAccessor> protected Map<String,SolutionCloner> protected MonitoringConfigstatic final Stringstatic final Stringprotected Integerprotected Stringprotected Class<? extends NearbyDistanceMeter<?,?>> protected List<PhaseConfig>protected Class<? extends RandomFactory>protected Longprotected RandomTypeprotected ScoreDirectorFactoryConfigprotected Class<?>protected Class<? extends ThreadFactory>static final Stringstatic final Stringstatic final String -
Constructor Summary
ConstructorsConstructorDescriptionCreate an empty solver config.SolverConfig(@NonNull SolverConfig inheritedConfig) Allows you to programmatically change theSolverConfigper concurrent request, based on a template solver config, by building a separateSolverFactorywithSolverFactory.create(SolverConfig)and a separateSolverper request to avoid race conditions.SolverConfig(@NonNull Clock clock) For testing purposes only.SolverConfig(@Nullable ClassLoader classLoader) -
Method Summary
Modifier and TypeMethodDescriptionboolean@NonNull SolverConfigTypically implemented by constructing a new instance and callingAbstractConfig.inherit(AbstractConfig)on it.static @NonNull SolverConfigcreateFromXmlFile(@NonNull File solverConfigFile) Reads an XML solver configuration from the file system.static @NonNull SolverConfigcreateFromXmlFile(@NonNull File solverConfigFile, @Nullable ClassLoader classLoader) As defined bycreateFromXmlFile(File).static @NonNull SolverConfigcreateFromXmlInputStream(@NonNull InputStream in) static @NonNull SolverConfigcreateFromXmlInputStream(@NonNull InputStream in, @Nullable ClassLoader classLoader) As defined bycreateFromXmlInputStream(InputStream).static @NonNull SolverConfigcreateFromXmlReader(@NonNull Reader reader) static @NonNull SolverConfigcreateFromXmlReader(@NonNull Reader reader, @Nullable ClassLoader classLoader) As defined bycreateFromXmlReader(Reader).static @NonNull SolverConfigcreateFromXmlResource(@NonNull String solverConfigResource) Reads an XML solver configuration from the classpath.static @NonNull SolverConfigcreateFromXmlResource(@NonNull String solverConfigResource, @Nullable ClassLoader classLoader) As defined bycreateFromXmlResource(String).@NonNull DomainAccessType@NonNull EnvironmentMode@NonNull MonitoringConfig@Nullable ClassLoader@Nullable ClockgetClock()For testing purposes only.@Nullable Boolean@Nullable DomainAccessType@Nullable Set<PreviewFeature>@Nullable EnvironmentMode@Nullable Map<@NonNull String,@NonNull MemberAccessor> @Nullable Map<@NonNull String,@NonNull SolutionCloner> @Nullable MonitoringConfig@Nullable Integer@Nullable String@Nullable Class<? extends NearbyDistanceMeter<?,?>> @Nullable List<@NonNull PhaseConfig>@Nullable Class<? extends RandomFactory>@Nullable Long@Nullable RandomType@Nullable ScoreDirectorFactoryConfig@Nullable Class<?>@Nullable TerminationConfig@Nullable Class<? extends ThreadFactory>@NonNull SolverConfiginherit(@NonNull SolverConfig inheritedConfig) Do not use this method, it is an internal method.voidofferRandomSeedFromSubSingleIndex(long subSingleIndex) voidsetClassLoader(@Nullable ClassLoader classLoader) voidFor testing purposes only.voidvoidsetDomainAccessType(@Nullable DomainAccessType domainAccessType) voidsetEnablePreviewFeatureSet(@Nullable Set<PreviewFeature> enablePreviewFeatureSet) voidsetEntityClassList(@Nullable List<Class<?>> entityClassList) voidsetEnvironmentMode(@Nullable EnvironmentMode environmentMode) voidsetGizmoMemberAccessorMap(@Nullable Map<@NonNull String, @NonNull MemberAccessor> gizmoMemberAccessorMap) voidsetGizmoSolutionClonerMap(@Nullable Map<@NonNull String, @NonNull SolutionCloner> gizmoSolutionClonerMap) voidsetMonitoringConfig(@Nullable MonitoringConfig monitoringConfig) voidsetMoveThreadBufferSize(@Nullable Integer moveThreadBufferSize) voidsetMoveThreadCount(@Nullable String moveThreadCount) voidsetNearbyDistanceMeterClass(@Nullable Class<? extends NearbyDistanceMeter<?, ?>> nearbyDistanceMeterClass) voidsetPhaseConfigList(@Nullable List<@NonNull PhaseConfig> phaseConfigList) voidsetRandomFactoryClass(@Nullable Class<? extends RandomFactory> randomFactoryClass) voidsetRandomSeed(@Nullable Long randomSeed) voidsetRandomType(@Nullable RandomType randomType) voidsetScoreDirectorFactoryConfig(@Nullable ScoreDirectorFactoryConfig scoreDirectorFactoryConfig) voidsetSolutionClass(@Nullable Class<?> solutionClass) voidsetTerminationConfig(@Nullable TerminationConfig terminationConfig) voidsetThreadFactoryClass(@Nullable Class<? extends ThreadFactory> threadFactoryClass) voidvisitReferencedClasses(@NonNull Consumer<Class<?>> classVisitor) Call the class visitor on each (possibly null) Class instance provided to this config by the user (including those provided in child configs).@NonNull SolverConfigwithClassLoader(@NonNull ClassLoader classLoader) @NonNull SolverConfigwithConstraintProviderClass(@NonNull Class<? extends ConstraintProvider> constraintProviderClass) As defined byScoreDirectorFactoryConfig.withConstraintProviderClass(Class), but returns this.@NonNull SolverConfigwithConstraintStreamImplType(@NonNull ConstraintStreamImplType constraintStreamImplType) @NonNull SolverConfigwithDaemon(@NonNull Boolean daemon) @NonNull SolverConfigwithDomainAccessType(@NonNull DomainAccessType domainAccessType) @NonNull SolverConfigwithEasyScoreCalculatorClass(@NonNull Class<? extends EasyScoreCalculator> easyScoreCalculatorClass) As defined byScoreDirectorFactoryConfig.withEasyScoreCalculatorClass(Class), but returns this.@NonNull SolverConfigwithEntityClasses(@NonNull Class<?>... entityClasses) @NonNull SolverConfigwithEntityClassList(@NonNull List<Class<?>> entityClassList) @NonNull SolverConfigwithEnvironmentMode(@NonNull EnvironmentMode environmentMode) @NonNull SolverConfigwithGizmoMemberAccessorMap(@NonNull Map<@NonNull String, @NonNull MemberAccessor> memberAccessorMap) @NonNull SolverConfigwithGizmoSolutionClonerMap(@NonNull Map<@NonNull String, @NonNull SolutionCloner> solutionClonerMap) @NonNull SolverConfigwithMonitoringConfig(@NonNull MonitoringConfig monitoringConfig) @NonNull SolverConfigwithMoveThreadBufferSize(@NonNull Integer moveThreadBufferSize) @NonNull SolverConfigwithMoveThreadCount(@NonNull String moveThreadCount) @NonNull SolverConfigwithNearbyDistanceMeterClass(@NonNull Class<? extends NearbyDistanceMeter<?, ?>> distanceMeterClass) @NonNull SolverConfigwithPhaseList(@NonNull List<@NonNull PhaseConfig> phaseConfigList) @NonNull SolverConfigwithPhases(@NonNull PhaseConfig... phaseConfigs) @NonNull SolverConfigwithPreviewFeature(@NonNull PreviewFeature... previewFeature) @NonNull SolverConfigwithRandomFactoryClass(@NonNull Class<? extends RandomFactory> randomFactoryClass) @NonNull SolverConfigwithRandomSeed(@NonNull Long randomSeed) @NonNull SolverConfigwithRandomType(@NonNull RandomType randomType) @NonNull SolverConfigwithScoreDirectorFactory(@NonNull ScoreDirectorFactoryConfig scoreDirectorFactoryConfig) @NonNull SolverConfigwithSolutionClass(@NonNull Class<?> solutionClass) @NonNull SolverConfigwithTerminationConfig(@NonNull TerminationConfig terminationConfig) @NonNull SolverConfigwithTerminationSpentLimit(@NonNull Duration spentLimit) As defined byTerminationConfig.withSpentLimit(Duration), but returns this.@NonNull SolverConfigwithTerminationUnimprovedSpentLimit(@NonNull Duration unimprovedSpentLimit) As defined byTerminationConfig.withUnimprovedSpentLimit(Duration), but returns this.@NonNull SolverConfigwithThreadFactoryClass(@NonNull Class<? extends ThreadFactory> threadFactoryClass) Methods inherited from class ai.timefold.solver.core.config.AbstractConfig
toString
-
Field Details
-
XML_ELEMENT_NAME
- See Also:
-
XML_NAMESPACE
- See Also:
-
XML_TYPE_NAME
- See Also:
-
MOVE_THREAD_COUNT_NONE
- See Also:
-
MOVE_THREAD_COUNT_AUTO
- See Also:
-
enablePreviewFeatureSet
-
environmentMode
-
daemon
-
randomType
-
randomSeed
-
randomFactoryClass
-
moveThreadCount
-
moveThreadBufferSize
-
threadFactoryClass
-
solutionClass
-
entityClassList
-
domainAccessType
-
gizmoMemberAccessorMap
-
gizmoSolutionClonerMap
-
scoreDirectorFactoryConfig
-
nearbyDistanceMeterClass
-
phaseConfigList
-
monitoringConfig
-
-
Constructor Details
-
SolverConfig
public SolverConfig()Create an empty solver config. -
SolverConfig
For testing purposes only. -
SolverConfig
-
SolverConfig
Allows you to programmatically change theSolverConfigper concurrent request, based on a template solver config, by building a separateSolverFactorywithSolverFactory.create(SolverConfig)and a separateSolverper request to avoid race conditions.
-
-
Method Details
-
createFromXmlResource
Reads an XML solver configuration from the classpath.- Parameters:
solverConfigResource- a classpath resource as defined byClassLoader.getResource(String)
-
createFromXmlResource
public static @NonNull SolverConfig createFromXmlResource(@NonNull String solverConfigResource, @Nullable ClassLoader classLoader) As defined bycreateFromXmlResource(String).- Parameters:
solverConfigResource- a classpath resource as defined byClassLoader.getResource(String)classLoader- theClassLoaderto use for loading all resources andClasses, null to use the defaultClassLoader
-
createFromXmlFile
Reads an XML solver configuration from the file system.Warning: this leads to platform dependent code, it's recommend to use
createFromXmlResource(String)instead. -
createFromXmlFile
public static @NonNull SolverConfig createFromXmlFile(@NonNull File solverConfigFile, @Nullable ClassLoader classLoader) As defined bycreateFromXmlFile(File).- Parameters:
classLoader- theClassLoaderto use for loading all resources andClasses, null to use the defaultClassLoader
-
createFromXmlInputStream
- Parameters:
in- gets closed
-
createFromXmlInputStream
public static @NonNull SolverConfig createFromXmlInputStream(@NonNull InputStream in, @Nullable ClassLoader classLoader) As defined bycreateFromXmlInputStream(InputStream).- Parameters:
in- gets closedclassLoader- theClassLoaderto use for loading all resources andClasses, null to use the defaultClassLoader
-
createFromXmlReader
- Parameters:
reader- gets closed
-
createFromXmlReader
public static @NonNull SolverConfig createFromXmlReader(@NonNull Reader reader, @Nullable ClassLoader classLoader) As defined bycreateFromXmlReader(Reader).- Parameters:
reader- gets closedclassLoader- theClassLoaderto use for loading all resources andClasses, null to use the defaultClassLoader
-
getClock
For testing purposes only.- Returns:
- null if system default should be used
-
setClock
For testing purposes only. -
getClassLoader
-
setClassLoader
-
getEnablePreviewFeatureSet
-
setEnablePreviewFeatureSet
-
getEnvironmentMode
-
setEnvironmentMode
-
getDaemon
-
setDaemon
-
getRandomType
-
setRandomType
-
getRandomSeed
-
setRandomSeed
-
getRandomFactoryClass
-
setRandomFactoryClass
-
getMoveThreadCount
-
setMoveThreadCount
-
getMoveThreadBufferSize
-
setMoveThreadBufferSize
-
getThreadFactoryClass
-
setThreadFactoryClass
-
getSolutionClass
-
setSolutionClass
-
getEntityClassList
-
setEntityClassList
-
getDomainAccessType
-
setDomainAccessType
-
getGizmoMemberAccessorMap
-
setGizmoMemberAccessorMap
public void setGizmoMemberAccessorMap(@Nullable Map<@NonNull String, @NonNull MemberAccessor> gizmoMemberAccessorMap) -
getGizmoSolutionClonerMap
-
setGizmoSolutionClonerMap
public void setGizmoSolutionClonerMap(@Nullable Map<@NonNull String, @NonNull SolutionCloner> gizmoSolutionClonerMap) -
getScoreDirectorFactoryConfig
-
setScoreDirectorFactoryConfig
public void setScoreDirectorFactoryConfig(@Nullable ScoreDirectorFactoryConfig scoreDirectorFactoryConfig) -
getTerminationConfig
-
setTerminationConfig
-
getNearbyDistanceMeterClass
-
setNearbyDistanceMeterClass
public void setNearbyDistanceMeterClass(@Nullable Class<? extends NearbyDistanceMeter<?, ?>> nearbyDistanceMeterClass) -
getPhaseConfigList
-
setPhaseConfigList
-
getMonitoringConfig
-
setMonitoringConfig
-
withPreviewFeature
-
withEnvironmentMode
-
withDaemon
-
withRandomType
-
withRandomSeed
-
withRandomFactoryClass
public @NonNull SolverConfig withRandomFactoryClass(@NonNull Class<? extends RandomFactory> randomFactoryClass) -
withMoveThreadCount
-
withMoveThreadBufferSize
-
withThreadFactoryClass
public @NonNull SolverConfig withThreadFactoryClass(@NonNull Class<? extends ThreadFactory> threadFactoryClass) -
withSolutionClass
-
withEntityClassList
-
withEntityClasses
-
withDomainAccessType
-
withGizmoMemberAccessorMap
public @NonNull SolverConfig withGizmoMemberAccessorMap(@NonNull Map<@NonNull String, @NonNull MemberAccessor> memberAccessorMap) -
withGizmoSolutionClonerMap
public @NonNull SolverConfig withGizmoSolutionClonerMap(@NonNull Map<@NonNull String, @NonNull SolutionCloner> solutionClonerMap) -
withScoreDirectorFactory
public @NonNull SolverConfig withScoreDirectorFactory(@NonNull ScoreDirectorFactoryConfig scoreDirectorFactoryConfig) -
withClassLoader
-
withEasyScoreCalculatorClass
public @NonNull SolverConfig withEasyScoreCalculatorClass(@NonNull Class<? extends EasyScoreCalculator> easyScoreCalculatorClass) As defined byScoreDirectorFactoryConfig.withEasyScoreCalculatorClass(Class), but returns this. -
withConstraintProviderClass
public @NonNull SolverConfig withConstraintProviderClass(@NonNull Class<? extends ConstraintProvider> constraintProviderClass) As defined byScoreDirectorFactoryConfig.withConstraintProviderClass(Class), but returns this. -
withConstraintStreamImplType
public @NonNull SolverConfig withConstraintStreamImplType(@NonNull ConstraintStreamImplType constraintStreamImplType) -
withTerminationConfig
-
withTerminationSpentLimit
As defined byTerminationConfig.withSpentLimit(Duration), but returns this. -
withTerminationUnimprovedSpentLimit
public @NonNull SolverConfig withTerminationUnimprovedSpentLimit(@NonNull Duration unimprovedSpentLimit) As defined byTerminationConfig.withUnimprovedSpentLimit(Duration), but returns this. -
withNearbyDistanceMeterClass
public @NonNull SolverConfig withNearbyDistanceMeterClass(@NonNull Class<? extends NearbyDistanceMeter<?, ?>> distanceMeterClass) -
withPhaseList
-
withPhases
-
withMonitoringConfig
-
canTerminate
public boolean canTerminate()- Returns:
- true if the solver has either a global termination configured, or all of its phases have a termination configured
-
determineEnvironmentMode
-
determineDomainAccessType
-
determineMetricConfig
-
offerRandomSeedFromSubSingleIndex
public void offerRandomSeedFromSubSingleIndex(long subSingleIndex) -
inherit
Do not use this method, it is an internal method. UseSolverConfig(SolverConfig)instead.- Specified by:
inheritin classAbstractConfig<SolverConfig>- Returns:
- this
-
copyConfig
Description copied from class:AbstractConfigTypically implemented by constructing a new instance and callingAbstractConfig.inherit(AbstractConfig)on it.- Specified by:
copyConfigin classAbstractConfig<SolverConfig>- Returns:
- new instance
-
visitReferencedClasses
Description copied from class:AbstractConfigCall the class visitor on each (possibly null) Class instance provided to this config by the user (including those provided in child configs). Required to create the bean factory in Quarkus.- Specified by:
visitReferencedClassesin classAbstractConfig<SolverConfig>- Parameters:
classVisitor- The visitor of classes. Can accept null instances of Class.
-