PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
Gedim::LPUtilties::Simplex Struct Reference

#include <LPUtilities.hpp>

Classes

struct  PrimalResult
 

Public Types

enum struct  ConstraintType { GE = 1 , EQ = 2 , LE = 3 }
 

Public Member Functions

 Simplex (const unsigned int n_data, const Eigen::VectorXd &cost_vector_data, const Eigen::MatrixXd &A_data, const Eigen::VectorXd &b_data, const std::vector< ConstraintType > &constraint_types_data, const Eigen::VectorXd &LB_data, const Eigen::VectorXd &UB_data)
 
void solve_primal_simplex (std::vector< unsigned int > &basis, std::vector< unsigned int > &no_basis, const unsigned int max_iteration=1000, const double &tolerance=1.0e-12)
 

Public Attributes

unsigned int m
 
unsigned int n
 
Eigen::VectorXd cost_vector
 
Eigen::MatrixXd A
 
Eigen::VectorXd b
 
std::vector< ConstraintTypeconstraint_types
 
Eigen::VectorXd LB
 
Eigen::VectorXd UB
 
double trasl_cost
 
Eigen::VectorXd trasl_sol
 
Eigen::VectorXd sign_sol
 
Eigen::MatrixXd map_sol
 
unsigned int m_final
 
unsigned int n_final
 
Eigen::MatrixXd A_final
 
Eigen::VectorXd b_final
 
Eigen::VectorXd cost_vector_final
 
std::vector< unsigned intslack_indices
 
std::vector< unsigned intno_slack_indices
 
PrimalResult result
 

Detailed Description

primal simplex algorithm to solve max c' x s.t. Ax = b (slack variables are added in case <= or >=) ub >= x >= lb

Member Enumeration Documentation

◆ ConstraintType

Enumerator
GE 
EQ 
LE 

Constructor & Destructor Documentation

◆ Simplex()

Gedim::LPUtilties::Simplex::Simplex ( const unsigned int  n_data,
const Eigen::VectorXd &  cost_vector_data,
const Eigen::MatrixXd &  A_data,
const Eigen::VectorXd &  b_data,
const std::vector< ConstraintType > &  constraint_types_data,
const Eigen::VectorXd &  LB_data,
const Eigen::VectorXd &  UB_data 
)

Member Function Documentation

◆ solve_primal_simplex()

void Gedim::LPUtilties::Simplex::solve_primal_simplex ( std::vector< unsigned int > &  basis,
std::vector< unsigned int > &  no_basis,
const unsigned int  max_iteration = 1000,
const double tolerance = 1.0e-12 
)

Member Data Documentation

◆ A

Eigen::MatrixXd Gedim::LPUtilties::Simplex::A

◆ A_final

Eigen::MatrixXd Gedim::LPUtilties::Simplex::A_final

◆ b

Eigen::VectorXd Gedim::LPUtilties::Simplex::b

◆ b_final

Eigen::VectorXd Gedim::LPUtilties::Simplex::b_final

◆ constraint_types

std::vector<ConstraintType> Gedim::LPUtilties::Simplex::constraint_types

◆ cost_vector

Eigen::VectorXd Gedim::LPUtilties::Simplex::cost_vector

◆ cost_vector_final

Eigen::VectorXd Gedim::LPUtilties::Simplex::cost_vector_final

◆ LB

Eigen::VectorXd Gedim::LPUtilties::Simplex::LB

◆ m

unsigned int Gedim::LPUtilties::Simplex::m

◆ m_final

unsigned int Gedim::LPUtilties::Simplex::m_final

◆ map_sol

Eigen::MatrixXd Gedim::LPUtilties::Simplex::map_sol

◆ n

unsigned int Gedim::LPUtilties::Simplex::n

◆ n_final

unsigned int Gedim::LPUtilties::Simplex::n_final

◆ no_slack_indices

std::vector<unsigned int> Gedim::LPUtilties::Simplex::no_slack_indices

◆ result

PrimalResult Gedim::LPUtilties::Simplex::result

◆ sign_sol

Eigen::VectorXd Gedim::LPUtilties::Simplex::sign_sol

◆ slack_indices

std::vector<unsigned int> Gedim::LPUtilties::Simplex::slack_indices

◆ trasl_cost

double Gedim::LPUtilties::Simplex::trasl_cost

◆ trasl_sol

Eigen::VectorXd Gedim::LPUtilties::Simplex::trasl_sol

◆ UB

Eigen::VectorXd Gedim::LPUtilties::Simplex::UB

The documentation for this struct was generated from the following files: