线性决策规则和广义决策规则的python包

pyldr的Python项目详细描述


用法:用户需要向sim提供类algs和模拟器。ALGS应该继承自ALGS。在下面的例子中,我们将分段线性(algs)和sim-resolve-first(simulator)提供给sim。sim.update()将求解模型,sim.avg(n)返回模拟结果。

示例:

从SIM卡导入*

从sim_resolve_first import*

从分段线性导入*

case=sim_resolve_first()

algs=分段线性(

sim=sim(大小写,algs)

sim.update()

#sim.train_mab()

打印模拟平均值(1000)

ALG和模拟器的结构:

SIM卡:

模拟器的唯一要求是有一个sim()函数来返回一个实现。如果有任何参数,则应在set_para()中实现。例如sim_resolve_first.py和sim_alp.py。

警报:

您应该提供的接口包括lift_value()、relation()、strategy()和update()。此外,还应该在类中描述提升方法。

分段线性示例:

对于范围内的t(self.t):

for j in range(self.J):

for k in range(self.div_num):

self.div_axis[t,j,k] = self.low_bound[t,j] + (self.up_bound[t,j]-self.low_bound[t,j])/float(self.div_num - 1) * k

self.xi[t,j,k] = self.script.add_var(0,self.div_axis[t,j,k])

对于范围内的t(self.t):

for j in range(self.J):

left = {}

for k in range(self.div_num):

left[self.xi[t,j,k]] = 1

右={}

右[自身常数]=1

self.script.add_lin_eq(左,右)

对于范围内的k(self.div_num):

self.script.add_lin_greater({self.xi[t,j,k]:1},{self.constant:0})

对于范围内的t(self.t):

for j in range(self.J):

left = {self.xi[t,j]:1}

right = {}

for k in range(self.div_num):

right[self.xi[t,j,k]] = self.div_axis[t,j,k]

self.script.add_lin_eq(左,右)

提升值(数据):

返回实现的提升值。

关系():

为项目设置依赖性self.p。例如,如果决策x(t,j)依赖于提升向量的前三个元素,那么self.p[t,j]={1,2,3}

策略(t,历史,x):

具有历史和优化决策变量x的阶段t的回报策略。

update():

更新提升方法。

分段线性py和三线性py是algs的例子。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为游戏添加声音。需要帮助   java在获取数据时忽略模型类中的forign键映射   java为什么Microsoft JDBC驱动程序忽略failoverPartner主机名   java可以下载mozswing文件   java等价于ObjectOutputStream,不仅保存其状态,还保存整个对象?   Java Android LiveData根据其他LiveData调用房间查询   java如何使用jackson jsonNode实现这一点并获得所需的输出   在web服务器上作为web应用程序运行java应用程序?   groovy中java类的元类属性   返回空指针的java图形对象   标头中包含用户名和密码的java SOAP客户端请求   具有堆栈实现和递归的Hanoi算法塔(Java)   java当我运行这两个类时,我的老鼠不会移动   使用图像进行java相似图像搜索   Java8并行流机制   使用单例对象作为枚举元素的java Scala枚举,是否有可能对它们进行迭代?   java Webview更改高度大小   不可序列化对象和函数的java Spark Scala编程   java my app在eclipse中运行良好,而不是在jar中