Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python CPLEX和epgap_Python_Cplex_Greedy - Fatal编程技术网

Python CPLEX和epgap

Python CPLEX和epgap,python,cplex,greedy,Python,Cplex,Greedy,我有一些代码可以生成150个不同的列表。我想让cplex尽可能接近贪婪的解决方案。我读到,如果你让epgap足够大,它将模仿贪婪的方法。这是真的吗?如果是,我应该将epgap设置为什么 import pulp from pulp import * from pulp.solvers import CPLEX_PY from pydfs_lineup_optimizer import get_optimizer, Site, Sport,CSVLineupExporter from pydfs_l

我有一些代码可以生成150个不同的列表。我想让cplex尽可能接近贪婪的解决方案。我读到,如果你让epgap足够大,它将模仿贪婪的方法。这是真的吗?如果是,我应该将epgap设置为什么

import pulp
from pulp import *
from pulp.solvers import CPLEX_PY
from pydfs_lineup_optimizer import get_optimizer, Site, Sport,CSVLineupExporter
from pydfs_lineup_optimizer.solvers.pulp_solver import PuLPSolver
import time
start_time = time.time()
class CustomPuLPSolver(PuLPSolver):
    LP_SOLVER = pulp.CPLEX_PY(msg=0,epgap=.1)
optimizer = get_optimizer(Site.FANDUEL, Sport.BASEBALL, solver=CustomPuLPSolver)
optimizer.load_players_from_csv("/Users/austi/Desktop/MLB/PLAYERS_LIST.csv")
optimizer.restrict_positions_for_opposing_team(['P'], ['1B','C','2B','3B','SS','OF','UTIL'])
optimizer.set_spacing_for_positions(['SS','C','1B','3B','OF','2B'], 4)
optimizer.set_team_stacking([4])
optimizer.set_max_repeating_players(7)
lineups = list(optimizer.optimize(n=150))
for lineup in lineups:
    print(lineup)
exporter = CSVLineupExporter(lineups)
exporter.export('MLB_result.csv')
print(round(((time.time() - start_time)/60)), "minutes run time")
不,这不是真的(你在哪里读到的?)。将参数
epgap
设置为N告诉CPLEX,一旦最佳可行解和最优解的下限(对于最小化问题)之间的相对差值低于N,CPLEX就会停止

这并没有说明最著名的可行解决方案是如何找到的。它可能来自任何启发,甚至来自一个完整的节点

如果您明确需要贪婪解决方案,则有两种选择:

  • 自己计算这个贪婪的解决方案
  • 修改模型,使唯一可行的解决方案是贪婪解决方案
  • 不,这不是真的(你在哪里读到的?)。将参数
    epgap
    设置为N告诉CPLEX,一旦最佳可行解和最优解的下限(对于最小化问题)之间的相对差值低于N,CPLEX就会停止

    这并没有说明最著名的可行解决方案是如何找到的。它可能来自任何启发,甚至来自一个完整的节点

    如果您明确需要贪婪解决方案,则有两种选择:

  • 自己计算这个贪婪的解决方案
  • 修改模型,使唯一可行的解决方案是贪婪解决方案