当前位置: 首页>>代码示例>>C++>>正文


C++ Problem::emin方法代码示例

本文整理汇总了C++中Problem::emin方法的典型用法代码示例。如果您正苦于以下问题:C++ Problem::emin方法的具体用法?C++ Problem::emin怎么用?C++ Problem::emin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Problem的用法示例。


在下文中一共展示了Problem::emin方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: chooseVar4

int chooseVar4(const Problem<type,type2>& P, type epsilon){  
  type max=std::numeric_limits<type>::min();
  int j=-1;
  int i=0;
  while (i<P.nbTask){
    if (P.smax(i) - P.r(i) >= max && P.smax(i) - P.r(i)>epsilon){ 
      j=i;
      max=P.smax(i) - P.r(i);
    }
    if (P.d(i) - P.emin(i) >= max && P.d(i) - P.emin(i)>epsilon)	{  
      j=i+P.nbTask;
      max=P.d(i) - P.emin(i);
    }
    ++i;
  }
  return j;
}
开发者ID:sims2B,项目名称:Expe_these,代码行数:17,代码来源:hybridBB.hpp

示例2: chooseVar1

int chooseVar1(const Problem<type,type2>& P, type epsilon){
  int i=0;
  while (i<P.nbTask){
    if (P.smax(i) - P.r(i) > epsilon) return i;
    if (P.d(i) - P.emin(i) > epsilon) return i+P.nbTask;
    ++i;
  }
  return -1;
}
开发者ID:sims2B,项目名称:Expe_these,代码行数:9,代码来源:hybridBB.hpp

示例3: chooseVar2

int chooseVar2(const Problem<type,type2>& P,type epsilon){
  const uint n = P.nbTask;
  int real_size = 0;
  uint i;
  int s, j = -1;
  for (i = 0 ; i < n ; ++i) {
    if (P.smax(i) - P.r(i) > epsilon) ++real_size;
    if (P.d(i) - P.emin(i) > epsilon) ++real_size;
  }
  if (!real_size) return -1;
  if (real_size == 1) s = 1;
  else s = rand() % real_size;
  for (i = 0 ; i < n && j < 0 ; ++i) {
    if (P.smax(i) - P.r(i) > epsilon) --s;
    if (!s) j = i;
    else {
      if (P.d(i) - P.emin(i)> epsilon) --s;
      if (!s) j = i +n;
    }
  }
  return j;
}
开发者ID:sims2B,项目名称:Expe_these,代码行数:22,代码来源:hybridBB.hpp

示例4: createConstraintTimeW

int createConstraintTimeW(const Problem<double>& P, IloModel& model,
			  IloNumVarArray& t, IloNumVarMatrix& x,  IloNumVarMatrix& y, const std::vector<double>& M_te){
  const int E=2*P.nbTask;  
  for (int i=0;i<P.nbTask;i++) {
    for (int e=0;e<E;++e){
      model.add(x[i][e]*P.r(i) <= t[e]);
      model.add(t[e] <= x[i][e]*P.smax(i) + 
		(1-x[i][e])*M_te[e]);
      model.add(P.d(i)*y[i][e] + (1-y[i][e])*M_te[e]>= t[e]);
      model.add(t[e] >= y[i][e]*P.emin(i));
    }
  }
  return 0;
}
开发者ID:sims2B,项目名称:Expe_these,代码行数:14,代码来源:startEndModel.cpp

示例5: createBranch

void createBranch(Problem<type,type2>& P,int x,std::stack<Problem<type,type2>>& explore, double param){
  Problem<type,type2> Q(P);
  if (x < P.nbTask){
    P.A[x].smax-=(P.smax(x)-P.r(x))*(1.0-param);
    explore.push(P);
    Q.A[x].ri+=(Q.smax(x)-Q.r(x))*param;
    Q.A[x].updateEMin();
    explore.push(Q);
  }
  else  { 
    P.A[x-P.nbTask].emin+=(P.d(x-P.nbTask)-P.emin(x-P.nbTask))*(1.0-param);
    explore.push(P);
    Q.A[x-Q.nbTask].di-=(Q.d(x-Q.nbTask)-Q.emin(x-Q.nbTask))*param;
    Q.A[x-Q.nbTask].updateSMax();
    explore.push(Q);
  }
}
开发者ID:sims2B,项目名称:Expe_these,代码行数:17,代码来源:hybridBB.hpp

示例6: chooseVar5

int chooseVar5(const Problem<type,type2>& P,type epsilon){
  type2 min=std::numeric_limits<type2>::max();
  int j=-1;
  int i=0;
  while (i<P.nbTask){
    if (P.A[i].Fi(P.bmax(i))*(P.d(i)-P.r(i))-P.W(i)<=min && P.smax(i) - P.r(i)>epsilon) {
      j=i;
      min=P.A[i].Fi(P.bmax(i))*(P.d(i)-P.r(i))-P.W(i);
    }
    if (P.A[i].Fi(P.bmax(i))*(P.d(i)-P.r(i))-P.W(i)<min && P.d(i)-P.emin(i)>epsilon){ 
      j=i+P.nbTask;
      min=P.A[i].Fi(P.bmax(i))*(P.d(i)-P.r(i))-P.W(i);
    }
    ++i;
  }
  return j;
}
开发者ID:sims2B,项目名称:Expe_these,代码行数:17,代码来源:hybridBB.hpp


注:本文中的Problem::emin方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。