Ultra 0.9.4
Loading...
Searching...
No Matches
numerical_refiner.h File Reference
#include "kernel/de/individual.h"
#include "kernel/de/search.h"
#include "kernel/decision_vector.h"
#include "kernel/refiner.h"
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <optional>
#include <vector>

Go to the source code of this file.

Classes

struct  ultra::de::numerical_refinement_backend

Namespaces

namespace  ultra

Functions

template<Evaluator E>
requires NumericalOptimisable<evaluator_individual_t<E>>
std::optional< evaluator_fitness_t< E > > ultra::de::optimise (const refiner &opt, evaluator_individual_t< E > &ind, const E &eva)

Detailed Description

Remarks
This file is part of ULTRA.
License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/

Function Documentation

◆ optimise()

template<Evaluator E>
requires NumericalOptimisable<evaluator_individual_t<E>>
std::optional< evaluator_fitness_t< E > > ultra::de::optimise ( const refiner & opt,
evaluator_individual_t< E > & ind,
const E & eva )

Convenience API for DE-based numerical refinement.

Parameters
[in]optrefiner coordinating the refinement process
[in,out]indindividual whose scalar parameters are refined
[in]evaevaluator used to score candidate solutions
Returns
improved fitness if refinement succeeded; empty std::optional otherwise

Refines the tunable scalar parameters of ind using Differential Evolution through opt.