Painless
A framework to ease parallelization of sequential CDCL SAT solvers
Loading...
Searching...
No Matches
PortfolioSimple Class Reference

A Simple Implementation of WorkingStrategy for the portfolio parallel strategy This strategy uses the different factories SolverFactory and SharingStrategyFactory in order to instantiate the different needed components specified by the parameters. More...

#include <PortfolioSimple.hpp>

Inheritance diagram for PortfolioSimple:
Collaboration diagram for PortfolioSimple:

Public Member Functions

void solve (const std::vector< int > &cube) override
 
void join (WorkingStrategy *strat, SatResult res, const std::vector< int > &model) override
 
void setSolverInterrupt () override
 
void unsetSolverInterrupt () override
 
void waitInterrupt () override
 
- Public Member Functions inherited from WorkingStrategy
virtual void addSlave (WorkingStrategy *slave)
 

Protected Attributes

std::atomic< bool > strategyEnding
 
std::vector< std::shared_ptr< SolverCdclInterface > > cdclSolvers
 
std::vector< std::shared_ptr< LocalSearchInterface > > localSolvers
 
std::vector< std::shared_ptr< SharingStrategy > > localStrategies
 
std::vector< std::shared_ptr< GlobalSharingStrategy > > globalStrategies
 
std::vector< std::unique_ptr< Sharer > > sharers
 
- Protected Attributes inherited from WorkingStrategy
WorkingStrategyparent
 
std::vector< WorkingStrategy * > slaves
 

Detailed Description

A Simple Implementation of WorkingStrategy for the portfolio parallel strategy This strategy uses the different factories SolverFactory and SharingStrategyFactory in order to instantiate the different needed components specified by the parameters.

Member Function Documentation

◆ join()

void PortfolioSimple::join ( WorkingStrategy * strat,
SatResult res,
const std::vector< int > & model )
overridevirtual

Implements WorkingStrategy.

◆ setSolverInterrupt()

void PortfolioSimple::setSolverInterrupt ( )
overridevirtual

Implements WorkingStrategy.

◆ solve()

void PortfolioSimple::solve ( const std::vector< int > & cube)
overridevirtual

Implements WorkingStrategy.

◆ unsetSolverInterrupt()

void PortfolioSimple::unsetSolverInterrupt ( )
overridevirtual

Implements WorkingStrategy.

◆ waitInterrupt()

void PortfolioSimple::waitInterrupt ( )
overridevirtual

Implements WorkingStrategy.


The documentation for this class was generated from the following file: