成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

docplex實(shí)戰(zhàn)

yedf / 815人閱讀

摘要:運(yùn)籌做為一個(gè)運(yùn)籌人多少知道些仿真優(yōu)化軟件當(dāng)然高階的運(yùn)籌實(shí)踐一定是以代碼為基礎(chǔ)的無(wú)論用什么代碼最終也是在代碼中首先建立所要優(yōu)化問(wèn)題的抽象模型一般都是一個(gè)優(yōu)化問(wèn)題如果你會(huì)的話就可以無(wú)障礙閱讀接下來(lái)的內(nèi)容如果你不會(huì)的話花半天時(shí)間學(xué)一下再來(lái)準(zhǔn)備工作

運(yùn)籌

做為一個(gè)運(yùn)籌人,多少知道些仿真/優(yōu)化軟件,當(dāng)然,高階的運(yùn)籌實(shí)踐一定是以代碼為基礎(chǔ)的,無(wú)論用什么代碼,最終也是在代碼中首先建立所要優(yōu)化問(wèn)題的抽象模型,一般都是一個(gè)優(yōu)化問(wèn)題:

$$ minimize f_0(x) $$ $$ subject to f_i(x)leq b_i i=1,...,m. $$

如果你會(huì)python的話,就可以無(wú)障礙閱讀接下來(lái)的內(nèi)容,如果你不會(huì)python的話,花半天時(shí)間學(xué)一下再來(lái)!

準(zhǔn)備工作

當(dāng)然,使用docplex 的首先就要下載docplex,可以直接pip下載.

$ pip install docplex 

同時(shí)需要去下載一個(gè)cplex community edition ILOG CPLEX ,
可以點(diǎn)擊try free edition,新建個(gè)賬號(hào)后下載一個(gè)cplex community edition.

在安裝完成后,在寫(xiě)一個(gè)python項(xiàng)目求解運(yùn)籌問(wèn)題之前呢,還要多做一點(diǎn)微小的工作.
對(duì)于cplex 的cp(Constraint Programming Modeling)模塊,可以在py文件中添加

from docplex.cp.config import context
context.solver.agent = "local"
context.solver.local.execfile = "/media/senmu/source/program_exp/ibm/ILOG/CPLEX_Studio_Community128/cpoptimizer/bin/x86-64_linux/cpoptimizer"

將context.solver.local.execfile 修改成你本地的目錄地址.

對(duì)于cplex 的mp(Mathematical Programming Modeling)模塊,可以參考docplex mp 設(shè)置

設(shè)置好PYTHONPATH,比如linux在~/.bashrc中添加

export PYTHONPATH="/media/senmu/source/program_exp/ibm/ILOG/CPLEX_Studio_Community128/cplex/python/3.6/x86-64_linux"
開(kāi)始一個(gè)例子之cp

首先是一個(gè)經(jīng)典的八皇后問(wèn)題 Eight_queens_puzzle
解決八皇后問(wèn)題通常要用到遞歸,使用大量的計(jì)算資源,將其轉(zhuǎn)為約束問(wèn)題只需要添加all_diff約束
all_diff reference.

import docplex.cp

from docplex.cp.model import CpoModel
from sys import stdout

from docplex.cp.config import context
context.solver.agent = "local"
context.solver.local.execfile = "/media/senmu/source/program_exp/ibm/ILOG/CPLEX_Studio_Community128/cpoptimizer/bin/x86-64_linux/cpoptimizer"

NB_QUEEN = 8

mdl = CpoModel(name="NQueen")

x = mdl.integer_var_list(NB_QUEEN, 0, NB_QUEEN - 1, "X")

mdl.add(mdl.all_diff(x))

mdl.add(mdl.all_diff(x[i] + i for i in range(NB_QUEEN)))

mdl.add(mdl.all_diff(x[i] - i for i in range(NB_QUEEN)))

print("Solving model....")
msol = mdl.solve(TimeLimit=10)

if msol:
    stdout.write("Solution:")
    sol = [msol[v] for v in x]
    for v in range(NB_QUEEN):
        stdout.write(" " + str(sol[v]))
    stdout.write("
")
    stdout.write("Solve time: " + str(msol.get_solve_time()) + "
")
else:
    stdout.write("No solution found
")

查看更多例子

可以直接訪問(wèn)github docplex-examples 查看更多例子,也可以使用nbviewer查看. 在nbviewer上查看docplex

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43874.html

相關(guān)文章

  • spring boot - 收藏集 - 掘金

    摘要:引入了新的環(huán)境和概要信息,是一種更揭秘與實(shí)戰(zhàn)六消息隊(duì)列篇掘金本文,講解如何集成,實(shí)現(xiàn)消息隊(duì)列。博客地址揭秘與實(shí)戰(zhàn)二數(shù)據(jù)緩存篇掘金本文,講解如何集成,實(shí)現(xiàn)緩存。 Spring Boot 揭秘與實(shí)戰(zhàn)(九) 應(yīng)用監(jiān)控篇 - HTTP 健康監(jiān)控 - 掘金Health 信息是從 ApplicationContext 中所有的 HealthIndicator 的 Bean 中收集的, Spring...

    rollback 評(píng)論0 收藏0
  • 從小白程序員一路晉升為大廠高級(jí)技術(shù)專家我看過(guò)哪些書(shū)籍?(建議收藏)

    摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報(bào)率高。馬上就十一國(guó)慶假期了,給小伙伴們分享下,從小白程序員到大廠高級(jí)技術(shù)專家我看過(guò)哪些技術(shù)類書(shū)籍。 大家好,我是...

    sf_wangchong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<