gecode 中的metainfo

这个类只是作为信息储存的载体,并没有进行其它操作

t:type 类型

r:rstart reastart的次数

f:fail 失败的次数

ng: no good

a: asset 资源分成了几部份

  /*
   * Information from meta search engines
   */
  forceinline
  MetaInfo::MetaInfo(unsigned long int r0,
                     unsigned long int s0,
                     unsigned long int f0,
                     const Space* l0,
                     NoGoods& ng0)
    : t(RESTART), r(r0), s(s0), f(f0), l(l0), ng(ng0), a(0) {}

  forceinline
  MetaInfo::MetaInfo(unsigned int a0)
    : t(PORTFOLIO), r(0), s(0), f(0), l(NULL), ng(NoGoods::eng), a(a0) {}

  forceinline MetaInfo::Type
  MetaInfo::type(void) const {
    return t;
  }
  forceinline unsigned long int
  MetaInfo::restart(void) const {
    assert(type() == RESTART);
    return r;
  }
  forceinline unsigned long int
  MetaInfo::solution(void) const {
    assert(type() == RESTART);
    return s;
  }
  forceinline unsigned long int
  MetaInfo::fail(void) const {
    assert(type() == RESTART);
    return f;
  }
  forceinline const Space*
  MetaInfo::last(void) const {
    assert(type() == RESTART);
    return l;
  }
  forceinline const NoGoods&
  MetaInfo::nogoods(void) const {
    assert(type() == RESTART);
    return ng;
  }
  forceinline unsigned int
  MetaInfo::asset(void) const {
    assert(type() == PORTFOLIO);
    return a;
  }

  

时间: 2024-11-06 12:00:17

gecode 中的metainfo的相关文章

gecode中的idx recorder分析

1.定义,只有一个变量info,gecode中的常用技法,将多种信息存在一个变量中, info最后一位作为mask标识,其它位作为id标识. /// Advisor with index and change information class Idx : public Advisor { protected: /// Index and mark information int _info; public: /// Constructor for creation Idx(Space& hom

gecode中自定义brancher

实际应用中,往往要比官方的示例复杂很多,这里对变量的选择等往往需要以自定义的方式进行选择,这个时候就需要自定义brancher,相关注释在代码中 #include <gecode/int.hh> using namespace Gecode; class NoneMin : public Brancher { protected: ViewArray<Int::IntView> x; // choice definition class PosVal : public Choice

gecode中的meritbase

这个类只是个基类,并没有实现什么,主要作用是给子类提供统一的接口 /** * \defgroup TaskBranchMerit Generic merit for branchers based on view and value selection * * \ingroup TaskBranchViewVal */ //@{ /** * \brief Base-class for merit class */ template<class _View, class _Val> class

jsp分页小结

分页标签:对于分页,我整理了3个版本.1.0是直接在jsp页面写分页内容:2.0利用自定义分页标签:3.0利用自定义分页标签并打成jar包 1.0分页技术 a.编写dao层分页跳转类(包括分页标签实体类): b.编写action层分页控制类: c.编写js和html前端代码: 2.0自定义标签 (传统标签) a.开发标签处理类 b.编写标签描述符文件(*.tld) c.在页面通过taglib引用标签 3.0自定义标签 (打成jar包) a.新建一个web工程(必须是web工程,因为*.tld文件

django中的分页设置

1.在控制台中的展示 from django.core.paginator import Paginator iter = 'abcdefghijklmn' inator = Paginator(iter, 5) page1 = inator.page(1) page1.object_list # 输出当前也的内容 'abcde' page1.number # 输出页码 1 page1.has_next() # 输出是否有下一页 True page1.next_page_number() # 输

sqlite3中BLOB数据类型存储大对象运用示例

1:常用接口 个人比较喜欢sqlite, 使用最方便,唯一的准备工作是下载250K的源:而且作者很热心,有问必答. 以下演示一下使用sqlite的步骤,先创建一个数据库,然后查询其中的内容.2个重要结构体和5个主要函数: sqlite3               *pdb, 数据库句柄,跟文件句柄FILE很类似 sqlite3_stmt      *stmt, 这个相当于ODBC的Command对象,用于保存编译好的SQL语句 sqlite3_open(),   打开数据库 sqlite3_e

android nfc中MifareClassic格式的读写

Android支持的数据格式 数据格式的Intent filter AndroidManifest.xml文件中,要像向下列示例那样,在<activity>元素内的<meta-data>元素中指定你创建的资源文件: [html] view plaincopyprint? <activity> ... <intent-filter> <action android:name="android.nfc.action.TECH_DISCOVERED

JSTL在eclipse中的配置

JSTL是一个非常用的东西,在myeclipse 中集成了jstl,所以只需要在jsp页面头部添加如下一句话就可以使用jstl的core标签库: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 但是eclipse是没有任何插件的,所以要使用jstl需要自己配置,配制方法如下: 1.jstl1.0或以下的版本: 需要将jstl.jar和standard.jar包放入WEB-I

查看EBS中BI Publisher的版本

查看EBS中BI Publisher的版本问题,Oracle提供了如下的几种方法: 从BI Publisher产生的报表文件查看 通过系统已打过的补丁(Patch)来决定,通过补丁号和BI Publisher的版本对应关系得出最终的版本 基于MetaInfo.class文件的版本号来决定,通过MetaInfo.class文件的版本号和BI Publisher的版本对应关系得出最终的版本 由于使用2,3方法必须知道补丁和版本的对应关系以及MetaInfo.class文件和版本的对应关系,因此使用起