public TrustRegionBase_F64(ParameterUpdate<S> parameterUpdate, HM hessian ) { super(hessian); configure(new ConfigTrustRegion()); this.parameterUpdate = parameterUpdate; this.hessian = hessian; }
public void configure(ConfigTrustRegion config) { if( config.regionInitial <= 0 && (config.regionInitial != -1 && config.regionInitial != -2 )) throw new IllegalArgumentException("Invalid regionInitial. Read javadoc and try again."); this.config = config.copy(); }
public ConfigTrustRegion copy() { ConfigTrustRegion out = new ConfigTrustRegion(); out.regionInitial = regionInitial; out.regionMaximum = regionMaximum; out.set(this); return out; }
public TrustRegionBase_F64(ParameterUpdate<S> parameterUpdate, HM hessian ) { super(hessian); configure(new ConfigTrustRegion()); this.parameterUpdate = parameterUpdate; this.hessian = hessian; }
public ConfigTrustRegion copy() { ConfigTrustRegion out = new ConfigTrustRegion(); out.regionInitial = regionInitial; out.regionMaximum = regionMaximum; out.set(this); return out; }
public void configure(ConfigTrustRegion config) { if( config.regionInitial <= 0 && (config.regionInitial != -1 && config.regionInitial != -2 )) throw new IllegalArgumentException("Invalid regionInitial. Read javadoc and try again."); this.config = config.copy(); }
@Override protected UnconstrainedLeastSquares<DMatrixRMaj> createSearch(double minimumValue) { ConfigTrustRegion config = new ConfigTrustRegion(); config.regionInitial = -1; UnconLeastSqTrustRegion_F64<DMatrixRMaj> tr = createSolver(); tr.configure(config); return tr; } }
@Override protected UnconstrainedLeastSquares<DMatrixRMaj> createSearch(double minimumValue) { ConfigTrustRegion config = new ConfigTrustRegion(); config.regionInitial = 100; config.hessianScaling = true; UnconLeastSqTrustRegion_F64<DMatrixRMaj> tr = createSolver(); tr.configure(config); return tr; } }
/** * Dense trust-region unconstrained minimization using Dogleg steps and BFGS to estimate the Hessian. * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedMinimization doglegBFGS( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianBFGS hessian = new HessianBFGS_DDRM(true); TrustRegionUpdateDogleg_F64<DMatrixRMaj> update = new TrustRegionUpdateDogleg_F64<>(); UnconMinTrustRegionBFGS_F64 alg = new UnconMinTrustRegionBFGS_F64(update,hessian); alg.configure(config); return alg; }
/** * Dense trust-region unconstrained minimization using Dogleg steps and BFGS to estimate the Hessian. * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedMinimization doglegBFGS( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianBFGS hessian = new HessianBFGS_DDRM(true); TrustRegionUpdateDogleg_F64<DMatrixRMaj> update = new TrustRegionUpdateDogleg_F64<>(); UnconMinTrustRegionBFGS_F64 alg = new UnconMinTrustRegionBFGS_F64(update,hessian); alg.configure(config); return alg; }
/** * Creates a sparse Schur Complement trust region optimization using dogleg steps. * * @see UnconLeastSqTrustRegionSchur_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquaresSchur<DMatrixSparseCSC> doglegSchur( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianSchurComplement_DSCC hessian = new HessianSchurComplement_DSCC(); TrustRegionUpdateDogleg_F64<DMatrixSparseCSC> update = new TrustRegionUpdateDogleg_F64<>(); UnconLeastSqTrustRegionSchur_F64<DMatrixSparseCSC> alg = new UnconLeastSqTrustRegionSchur_F64<>(update,hessian); alg.configure(config); return alg; }
/** * Creates a sparse Schur Complement trust region optimization using dogleg steps. * * @see UnconLeastSqTrustRegionSchur_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquaresSchur<DMatrixSparseCSC> doglegSchur( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianSchurComplement_DSCC hessian = new HessianSchurComplement_DSCC(); TrustRegionUpdateDogleg_F64<DMatrixSparseCSC> update = new TrustRegionUpdateDogleg_F64<>(); UnconLeastSqTrustRegionSchur_F64<DMatrixSparseCSC> alg = new UnconLeastSqTrustRegionSchur_F64<>(update,hessian); alg.configure(config); return alg; }
/** * Creates a dense trust region least-squares optimization using cauchy steps. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixRMaj> cauchy( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(); MatrixMath_DDRM math = new MatrixMath_DDRM(); TrustRegionUpdateCauchy_F64<DMatrixRMaj> update = new TrustRegionUpdateCauchy_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixRMaj> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }
/** * Creates a sparse trust region optimization using cauchy steps. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixSparseCSC> cauchy( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianLeastSquares_DSCC hessian = new HessianLeastSquares_DSCC(); MatrixMath_DSCC math = new MatrixMath_DSCC(); TrustRegionUpdateCauchy_F64<DMatrixSparseCSC> update = new TrustRegionUpdateCauchy_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixSparseCSC> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }
/** * Creates a sparse trust region optimization using cauchy steps. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixSparseCSC> cauchy( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianLeastSquares_DSCC hessian = new HessianLeastSquares_DSCC(); MatrixMath_DSCC math = new MatrixMath_DSCC(); TrustRegionUpdateCauchy_F64<DMatrixSparseCSC> update = new TrustRegionUpdateCauchy_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixSparseCSC> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }
/** * Creates a dense trust region least-squares optimization using cauchy steps. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixRMaj> cauchy( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(); MatrixMath_DDRM math = new MatrixMath_DDRM(); TrustRegionUpdateCauchy_F64<DMatrixRMaj> update = new TrustRegionUpdateCauchy_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixRMaj> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }
/** * Creates a sparse trust region optimization using dogleg steps. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixSparseCSC> dogleg( @Nullable ConfigTrustRegion config) { if( config == null ) config = new ConfigTrustRegion(); LinearSolverSparse<DMatrixSparseCSC,DMatrixRMaj> solver = LinearSolverFactory_DSCC.cholesky(FillReducing.NONE); HessianLeastSquares_DSCC hessian = new HessianLeastSquares_DSCC(solver); MatrixMath_DSCC math = new MatrixMath_DSCC(); TrustRegionUpdateDogleg_F64<DMatrixSparseCSC> update = new TrustRegionUpdateDogleg_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixSparseCSC> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }
/** * Creates a sparse trust region optimization using dogleg steps. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixSparseCSC> dogleg( @Nullable ConfigTrustRegion config) { if( config == null ) config = new ConfigTrustRegion(); LinearSolverSparse<DMatrixSparseCSC,DMatrixRMaj> solver = LinearSolverFactory_DSCC.cholesky(FillReducing.NONE); HessianLeastSquares_DSCC hessian = new HessianLeastSquares_DSCC(solver); MatrixMath_DSCC math = new MatrixMath_DSCC(); TrustRegionUpdateDogleg_F64<DMatrixSparseCSC> update = new TrustRegionUpdateDogleg_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixSparseCSC> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }
/** * Creates a dense trust region least-squares optimization using dogleg steps. Solver works on the B=J<sup>T</sup>J matrix. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixRMaj> dogleg( @Nullable ConfigTrustRegion config, boolean robust ) { if( config == null ) config = new ConfigTrustRegion(); LinearSolverDense<DMatrixRMaj> solver; if( robust ) solver = LinearSolverFactory_DDRM.leastSquaresQrPivot(true,false); else solver = LinearSolverFactory_DDRM.chol(100); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(solver); MatrixMath_DDRM math = new MatrixMath_DDRM(); TrustRegionUpdateDogleg_F64<DMatrixRMaj> update = new TrustRegionUpdateDogleg_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixRMaj> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }
/** * Creates a dense trust region least-squares optimization using dogleg steps. Solver works on the B=J<sup>T</sup>J matrix. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixRMaj> dogleg( @Nullable ConfigTrustRegion config, boolean robust ) { if( config == null ) config = new ConfigTrustRegion(); LinearSolverDense<DMatrixRMaj> solver; if( robust ) solver = LinearSolverFactory_DDRM.leastSquaresQrPivot(true,false); else solver = LinearSolverFactory_DDRM.chol(100); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(solver); MatrixMath_DDRM math = new MatrixMath_DDRM(); TrustRegionUpdateDogleg_F64<DMatrixRMaj> update = new TrustRegionUpdateDogleg_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixRMaj> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }