国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

docplex實戰(zhàn)

yedf / 787人閱讀

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

運籌

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

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

如果你會python的話,就可以無障礙閱讀接下來的內(nèi)容,如果你不會python的話,花半天時間學一下再來!

準備工作

當然,使用docplex 的首先就要下載docplex,可以直接pip下載.

$ pip install docplex 

同時需要去下載一個cplex community edition ILOG CPLEX ,
可以點擊try free edition,新建個賬號后下載一個cplex community edition.

在安裝完成后,在寫一個python項目求解運籌問題之前呢,還要多做一點微小的工作.
對于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 修改成你本地的目錄地址.

對于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"
開始一個例子之cp

首先是一個經(jīng)典的八皇后問題 Eight_queens_puzzle
解決八皇后問題通常要用到遞歸,使用大量的計算資源,將其轉(zhuǎ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
")

查看更多例子

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

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/43874.html

相關(guān)文章

  • spring boot - 收藏集 - 掘金

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

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

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

    sf_wangchong 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<