Program Listing for File epec_combPNE.h

Return to documentation for file (include/games/algorithms/EPEC/epec_combPNE.h)

/* #############################################
 *             This file is part of
 *                    ZERO
 *
 *             Copyright (c) 2020
 *     Released under the Creative Commons
 *         CC BY-NC-SA 4.0 License
 *
 *              Find out more at
 *        https://github.com/ds4dm/ZERO
 * #############################################*/

#pragma once
#include "epec_polybase.h"
#include "zero.h"
#include <armadillo>
#include <gurobi_c++.h>
#include <iostream>
#include <memory>
#include <set>
#include <string>

namespace Algorithms::EPEC {

  class CombinatorialPNE : public PolyBase {
  public:
     CombinatorialPNE(GRBEnv *env, Game::EPEC *EPECObject) : PolyBase(env, EPECObject){};
     void solve() { this->solveWithExcluded(std::vector<std::set<unsigned long int>>{}); }
     void solveWithExcluded(const std::vector<std::set<unsigned long int>> &excludeList = {});

  private:
     void combPNE(std::vector<long int>                           combination,
                      const std::vector<std::set<unsigned long int>> &excludeList);
  };
} // namespace Algorithms::EPEC