openjij
Framework for the Ising model and QUBO.
Loading...
Searching...
No Matches
schedule_list.hpp File Reference
#include <cmath>
#include <cstddef>
#include <tuple>
#include <utility>
#include <vector>
#include "openjij/system/system.hpp"
Include dependency graph for schedule_list.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openjij::utility::UpdaterParameter< system::classical_system >
 updater parameter for classical ising system More...
 
struct  openjij::utility::UpdaterParameter< system::classical_constraint_system >
 updater paramter for classical ising model with a single constraint More...
 
struct  openjij::utility::UpdaterParameter< system::transverse_field_system >
 updater paramter for transverse ising model More...
 
struct  openjij::utility::Schedule< SystemType >
 schedule struct More...
 

Namespaces

namespace  openjij
 
namespace  openjij::utility
 

Typedefs

using openjij::utility::ClassicalUpdaterParameter = UpdaterParameter< system::classical_system >
 ClassicalUpdaterParameter alias.
 
using openjij::utility::ClassicalConstraintUpdaterParameter = UpdaterParameter< system::classical_constraint_system >
 ClassicalUpdaterParameter alias.
 
using openjij::utility::TransverseFieldUpdaterParameter = UpdaterParameter< system::transverse_field_system >
 TransverseFieldUpdaterParameter alias.
 
template<typename SystemType >
using openjij::utility::ScheduleList = std::vector< Schedule< SystemType > >
 schedule list alias
 
using openjij::utility::ClassicalScheduleList = ScheduleList< system::classical_system >
 ClassicalScheduleList alias.
 
using openjij::utility::TransverseFieldScheduleList = ScheduleList< system::transverse_field_system >
 TransverseFieldScheduleList alias.
 
using openjij::utility::ClassicalConstraintScheduleList = ScheduleList< system::classical_constraint_system >
 ClassicalConstraintScheduleList alias.
 

Enumerations

enum class  openjij::utility::TemperatureSchedule { openjij::utility::LINEAR , openjij::utility::GEOMETRIC }
 

Functions

ClassicalScheduleList openjij::utility::make_classical_schedule_list (double beta_min, double beta_max, std::size_t one_mc_step, std::size_t num_call_updater)
 helper function for making classical schedule list with geometric series of inverse temperatures.
 
TransverseFieldScheduleList openjij::utility::make_transverse_field_schedule_list (double beta, std::size_t one_mc_step, std::size_t num_call_updater)
 helper function for making transverse field system schedule list with arithmetic sequence of annealing schedule (s)
 
ClassicalConstraintScheduleList openjij::utility::make_classical_constraint_schedule_list (double lambda, double beta_min, double beta_max, std::size_t one_mc_step, std::size_t num_call_updater)
 helper function for making classical constraint schedule list with geometric series of inverse temperatures (with constraint parameter fixed).
 
template<typename SystemType >
ScheduleList< SystemType > openjij::utility::make_schedule_list (const std::vector< std::pair< typename UpdaterParameter< SystemType >::Tuple, std::size_t > > &tuplelist)
 helper function for making schedulelist from list of tuples
 
template<typename FloatType >
std::vector< FloatTypeopenjij::utility::GenerateLinearBetaSchedule (const FloatType beta_min, const FloatType beta_max, const std::int32_t num_sweeps)
 Generate linear temperature schedule.
 
template<typename FloatType >
std::vector< FloatTypeopenjij::utility::GenerateGeometricBetaSchedule (const FloatType beta_min, const FloatType beta_max, const std::int32_t num_sweeps)
 Generate geometric temperature schedule.
 
template<typename FloatType >
std::vector< FloatTypeopenjij::utility::GenerateBetaList (const TemperatureSchedule schedule_type, const FloatType beta_min, const FloatType beta_max, const std::int32_t num_sweeps)
 Generate temperature schedule from specific schedule.