pyGurobi使用手册
gurobi使用手冊
- 引言
- 針對優化模型Infeasible的錯誤,如何快速Debug?
- computeIIS()的用法
- 功能快捷鍵
- 合理的創建標題,有助于目錄的生成
- 如何改變文本的樣式
- 插入鏈接與圖片
- 如何插入一段漂亮的代碼片
- 生成一個適合你的列表
- 創建一個表格
- 設定內容居中、居左、居右
- SmartyPants
- 創建一個自定義列表
- 如何創建一個注腳
- 注釋也是必不可少的
- KaTeX數學公式
- 新的甘特圖功能,豐富你的文章
- UML 圖表
- FLowchart流程圖
- 導出與導入
- 導出
- 導入
引言
優化求解器的使用是一門學問,我個人一開始使用的是Cplex,當前就在學習和使用Gurobi,但我在使用求解器的過程中也遇到了很多的問題,目前這篇文章就是總結和記錄博主遇到的問題。中間也會把gurobi相關的語法作一說明。
針對優化模型Infeasible的錯誤,如何快速Debug?
在使用Gurobi寫model的過程中大概都會遇到一個Bug,就是你把自己建立的模型輸入到gurobi里運行后,運行程序讓gurobi去求優化求解你的問題的時候,gurobi卻報出一個infeasible model的錯誤信息。此時有兩種可能性,一是你建立的模型本身有問題,導致你的模型里的約束條件有相互矛盾的地方,所以模型根本就沒有可行解 ;二是你的模型本身沒有問題,但是你在把數學模型輸入到gurobi的過程中編程錯誤或者參數值輸入不正確導致你的模型不可行了。
那么,如何快速找到哪些約束之間互相矛盾造成模型不可行呢?
其實,gurobi提供了一個函數computeIIS()可以幫我迅速鎖定出是有問題的約束條件。
computeIIS()的用法
computeIIS()的用法(代碼運行環境python3.7 gurobi9.0.3)
from gurobipy import *if __name__ == '__main__':m = Model("LP Model")x = m.addVars(2, lb=0.0, ub=1.0, name='x')m.addConstr(x[0] + x[1] >= 1.2, "c1")m.addConstr(x[0] + x[1] <= 1.1, "c2")m.addConstr(x[0] + x[1] >= 0.1, "c3")m.setObjective(x[0] + 2 * x[1])m.optimize()m.computeIIS()m.write("model1.ilp")# for i in range(len(x)):# print(x[i].VarName, " = ", x[i].x)從上面的python代碼中也可以看出 c1 和 c2 約束互相矛盾,模型不存在可行解。所以在用gurobi求解這個模型的時候,gurobi會報出infeasible model的錯誤信息,此時可以調用函數computeIIS()computeIIS()computeIIS()就可以得到哪些約束是互相矛盾的,去掉這些矛盾約束或者改正你的模型使得問題可行。
那么,對于實際模型,其約束往往較多的,模型該如何快速定位矛盾約束位置呢,可以使用write()write()write()函數將結果輸出,輸出一個擴展名為".ilp"的文件,里面會包含所有的矛盾約束,如上面的例子會輸出如下內容:
\ Model LP Model_copy \ LP format - for model browsing. Use MPS format to capture full model detail. Minimize Subject Toc1: x[0] + x[1] >= 1.2c2: x[0] + x[1] <= 1.1 Boundsx[0] freex[1] free End這個時候可以看到確實是前連個約束形成了矛盾約束,第三個約束沒有矛盾因為不在ilp文件內。
功能快捷鍵
撤銷:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜體:Ctrl/Command + I
標題:Ctrl/Command + Shift + H
無序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
檢查列表:Ctrl/Command + Shift + C
插入代碼:Ctrl/Command + Shift + K
插入鏈接:Ctrl/Command + Shift + L
插入圖片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替換:Ctrl/Command + G
合理的創建標題,有助于目錄的生成
直接輸入1次#,并按下space后,將生成1級標題。
輸入2次#,并按下space后,將生成2級標題。
以此類推,我們支持6級標題。有助于使用TOC語法后生成一個完美的目錄。
如何改變文本的樣式
強調文本 強調文本
加粗文本 加粗文本
標記文本
刪除文本
引用文本
H2O is是液體。
210 運算結果是 1024.
插入鏈接與圖片
鏈接: link.
圖片:
帶尺寸的圖片:
居中的圖片:
居中并且帶尺寸的圖片:
當然,我們為了讓用戶更加便捷,我們增加了圖片拖拽功能。
如何插入一段漂亮的代碼片
去博客設置頁面,選擇一款你喜歡的代碼片高亮樣式,下面展示同樣高亮的 代碼片.
// An highlighted block var foo = 'bar';生成一個適合你的列表
- 項目
- 項目
- 項目
- 項目
- 計劃任務
- 完成任務
創建一個表格
一個簡單的表格是這么創建的:
| 電腦 | $1600 |
| 手機 | $12 |
| 導管 | $1 |
設定內容居中、居左、居右
使用:---------:居中
使用:----------居左
使用----------:居右
| 第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants將ASCII標點字符轉換為“智能”印刷標點HTML實體。例如:
| Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
| Quotes | "Isn't this fun?" | “Isn’t this fun?” |
| Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
創建一個自定義列表
Markdown如何創建一個注腳
一個具有注腳的文本。1
注釋也是必不可少的
Markdown將文本轉換為 HTML。
KaTeX數學公式
您可以使用渲染LaTeX數學表達式 KaTeX:
Gamma公式展示 Γ(n)=(n?1)!?n∈N\Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n?1)!?n∈N 是通過歐拉積分
Γ(z)=∫0∞tz?1e?tdt.\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞?tz?1e?tdt.
你可以找到更多關于的信息 LaTeX 數學表達式here.
新的甘特圖功能,豐富你的文章
Mon 06Mon 13Mon 20已完成 進行中 計劃一 計劃二 現有任務Adding GANTT diagram functionality to mermaid- 關于 甘特圖 語法,參考 這兒,
UML 圖表
可以使用UML圖表進行渲染。 Mermaid. 例如下面產生的一個序列圖:
#mermaid-svg-ppMXO1NYb028jGTy .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-ppMXO1NYb028jGTy .label text{fill:#333}#mermaid-svg-ppMXO1NYb028jGTy .node rect,#mermaid-svg-ppMXO1NYb028jGTy .node circle,#mermaid-svg-ppMXO1NYb028jGTy .node ellipse,#mermaid-svg-ppMXO1NYb028jGTy .node polygon,#mermaid-svg-ppMXO1NYb028jGTy .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-ppMXO1NYb028jGTy .node .label{text-align:center;fill:#333}#mermaid-svg-ppMXO1NYb028jGTy .node.clickable{cursor:pointer}#mermaid-svg-ppMXO1NYb028jGTy .arrowheadPath{fill:#333}#mermaid-svg-ppMXO1NYb028jGTy .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-ppMXO1NYb028jGTy .flowchart-link{stroke:#333;fill:none}#mermaid-svg-ppMXO1NYb028jGTy .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-ppMXO1NYb028jGTy .edgeLabel rect{opacity:0.9}#mermaid-svg-ppMXO1NYb028jGTy .edgeLabel span{color:#333}#mermaid-svg-ppMXO1NYb028jGTy .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-ppMXO1NYb028jGTy .cluster text{fill:#333}#mermaid-svg-ppMXO1NYb028jGTy div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-ppMXO1NYb028jGTy .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-ppMXO1NYb028jGTy text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-ppMXO1NYb028jGTy .actor-line{stroke:grey}#mermaid-svg-ppMXO1NYb028jGTy .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-ppMXO1NYb028jGTy .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-ppMXO1NYb028jGTy #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-ppMXO1NYb028jGTy .sequenceNumber{fill:#fff}#mermaid-svg-ppMXO1NYb028jGTy #sequencenumber{fill:#333}#mermaid-svg-ppMXO1NYb028jGTy #crosshead path{fill:#333;stroke:#333}#mermaid-svg-ppMXO1NYb028jGTy .messageText{fill:#333;stroke:#333}#mermaid-svg-ppMXO1NYb028jGTy .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-ppMXO1NYb028jGTy .labelText,#mermaid-svg-ppMXO1NYb028jGTy .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-ppMXO1NYb028jGTy .loopText,#mermaid-svg-ppMXO1NYb028jGTy .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-ppMXO1NYb028jGTy .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-ppMXO1NYb028jGTy .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-ppMXO1NYb028jGTy .noteText,#mermaid-svg-ppMXO1NYb028jGTy .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-ppMXO1NYb028jGTy .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-ppMXO1NYb028jGTy .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-ppMXO1NYb028jGTy .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-ppMXO1NYb028jGTy .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ppMXO1NYb028jGTy .section{stroke:none;opacity:0.2}#mermaid-svg-ppMXO1NYb028jGTy .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-ppMXO1NYb028jGTy .section2{fill:#fff400}#mermaid-svg-ppMXO1NYb028jGTy .section1,#mermaid-svg-ppMXO1NYb028jGTy .section3{fill:#fff;opacity:0.2}#mermaid-svg-ppMXO1NYb028jGTy .sectionTitle0{fill:#333}#mermaid-svg-ppMXO1NYb028jGTy .sectionTitle1{fill:#333}#mermaid-svg-ppMXO1NYb028jGTy .sectionTitle2{fill:#333}#mermaid-svg-ppMXO1NYb028jGTy .sectionTitle3{fill:#333}#mermaid-svg-ppMXO1NYb028jGTy .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ppMXO1NYb028jGTy .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-ppMXO1NYb028jGTy .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ppMXO1NYb028jGTy .grid path{stroke-width:0}#mermaid-svg-ppMXO1NYb028jGTy .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-ppMXO1NYb028jGTy .task{stroke-width:2}#mermaid-svg-ppMXO1NYb028jGTy .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ppMXO1NYb028jGTy .taskText:not([font-size]){font-size:11px}#mermaid-svg-ppMXO1NYb028jGTy .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ppMXO1NYb028jGTy .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-ppMXO1NYb028jGTy .task.clickable{cursor:pointer}#mermaid-svg-ppMXO1NYb028jGTy .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ppMXO1NYb028jGTy .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ppMXO1NYb028jGTy .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ppMXO1NYb028jGTy .taskText0,#mermaid-svg-ppMXO1NYb028jGTy .taskText1,#mermaid-svg-ppMXO1NYb028jGTy .taskText2,#mermaid-svg-ppMXO1NYb028jGTy .taskText3{fill:#fff}#mermaid-svg-ppMXO1NYb028jGTy .task0,#mermaid-svg-ppMXO1NYb028jGTy .task1,#mermaid-svg-ppMXO1NYb028jGTy .task2,#mermaid-svg-ppMXO1NYb028jGTy .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-ppMXO1NYb028jGTy .taskTextOutside0,#mermaid-svg-ppMXO1NYb028jGTy .taskTextOutside2{fill:#000}#mermaid-svg-ppMXO1NYb028jGTy .taskTextOutside1,#mermaid-svg-ppMXO1NYb028jGTy .taskTextOutside3{fill:#000}#mermaid-svg-ppMXO1NYb028jGTy .active0,#mermaid-svg-ppMXO1NYb028jGTy .active1,#mermaid-svg-ppMXO1NYb028jGTy .active2,#mermaid-svg-ppMXO1NYb028jGTy .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-ppMXO1NYb028jGTy .activeText0,#mermaid-svg-ppMXO1NYb028jGTy .activeText1,#mermaid-svg-ppMXO1NYb028jGTy .activeText2,#mermaid-svg-ppMXO1NYb028jGTy .activeText3{fill:#000 !important}#mermaid-svg-ppMXO1NYb028jGTy .done0,#mermaid-svg-ppMXO1NYb028jGTy .done1,#mermaid-svg-ppMXO1NYb028jGTy .done2,#mermaid-svg-ppMXO1NYb028jGTy .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-ppMXO1NYb028jGTy .doneText0,#mermaid-svg-ppMXO1NYb028jGTy .doneText1,#mermaid-svg-ppMXO1NYb028jGTy .doneText2,#mermaid-svg-ppMXO1NYb028jGTy .doneText3{fill:#000 !important}#mermaid-svg-ppMXO1NYb028jGTy .crit0,#mermaid-svg-ppMXO1NYb028jGTy .crit1,#mermaid-svg-ppMXO1NYb028jGTy .crit2,#mermaid-svg-ppMXO1NYb028jGTy .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-ppMXO1NYb028jGTy .activeCrit0,#mermaid-svg-ppMXO1NYb028jGTy .activeCrit1,#mermaid-svg-ppMXO1NYb028jGTy .activeCrit2,#mermaid-svg-ppMXO1NYb028jGTy .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-ppMXO1NYb028jGTy .doneCrit0,#mermaid-svg-ppMXO1NYb028jGTy .doneCrit1,#mermaid-svg-ppMXO1NYb028jGTy .doneCrit2,#mermaid-svg-ppMXO1NYb028jGTy .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-ppMXO1NYb028jGTy .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-ppMXO1NYb028jGTy .milestoneText{font-style:italic}#mermaid-svg-ppMXO1NYb028jGTy .doneCritText0,#mermaid-svg-ppMXO1NYb028jGTy .doneCritText1,#mermaid-svg-ppMXO1NYb028jGTy .doneCritText2,#mermaid-svg-ppMXO1NYb028jGTy .doneCritText3{fill:#000 !important}#mermaid-svg-ppMXO1NYb028jGTy .activeCritText0,#mermaid-svg-ppMXO1NYb028jGTy .activeCritText1,#mermaid-svg-ppMXO1NYb028jGTy .activeCritText2,#mermaid-svg-ppMXO1NYb028jGTy .activeCritText3{fill:#000 !important}#mermaid-svg-ppMXO1NYb028jGTy .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ppMXO1NYb028jGTy g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-ppMXO1NYb028jGTy g.classGroup text .title{font-weight:bolder}#mermaid-svg-ppMXO1NYb028jGTy g.clickable{cursor:pointer}#mermaid-svg-ppMXO1NYb028jGTy g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-ppMXO1NYb028jGTy g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-ppMXO1NYb028jGTy .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-ppMXO1NYb028jGTy .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-ppMXO1NYb028jGTy .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-ppMXO1NYb028jGTy .dashed-line{stroke-dasharray:3}#mermaid-svg-ppMXO1NYb028jGTy #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ppMXO1NYb028jGTy #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ppMXO1NYb028jGTy #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-ppMXO1NYb028jGTy #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-ppMXO1NYb028jGTy #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ppMXO1NYb028jGTy #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ppMXO1NYb028jGTy #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ppMXO1NYb028jGTy #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ppMXO1NYb028jGTy .commit-id,#mermaid-svg-ppMXO1NYb028jGTy .commit-msg,#mermaid-svg-ppMXO1NYb028jGTy .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ppMXO1NYb028jGTy .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ppMXO1NYb028jGTy .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ppMXO1NYb028jGTy g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ppMXO1NYb028jGTy g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-ppMXO1NYb028jGTy g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-ppMXO1NYb028jGTy g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-ppMXO1NYb028jGTy g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-ppMXO1NYb028jGTy g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-ppMXO1NYb028jGTy .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-ppMXO1NYb028jGTy .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-ppMXO1NYb028jGTy .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-ppMXO1NYb028jGTy .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-ppMXO1NYb028jGTy .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-ppMXO1NYb028jGTy .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-ppMXO1NYb028jGTy .edgeLabel text{fill:#333}#mermaid-svg-ppMXO1NYb028jGTy .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ppMXO1NYb028jGTy .node circle.state-start{fill:black;stroke:black}#mermaid-svg-ppMXO1NYb028jGTy .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-ppMXO1NYb028jGTy #statediagram-barbEnd{fill:#9370db}#mermaid-svg-ppMXO1NYb028jGTy .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-ppMXO1NYb028jGTy .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-ppMXO1NYb028jGTy .statediagram-state .divider{stroke:#9370db}#mermaid-svg-ppMXO1NYb028jGTy .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-ppMXO1NYb028jGTy .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-ppMXO1NYb028jGTy .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-ppMXO1NYb028jGTy .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-ppMXO1NYb028jGTy .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-ppMXO1NYb028jGTy .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-ppMXO1NYb028jGTy .note-edge{stroke-dasharray:5}#mermaid-svg-ppMXO1NYb028jGTy .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-ppMXO1NYb028jGTy .error-icon{fill:#522}#mermaid-svg-ppMXO1NYb028jGTy .error-text{fill:#522;stroke:#522}#mermaid-svg-ppMXO1NYb028jGTy .edge-thickness-normal{stroke-width:2px}#mermaid-svg-ppMXO1NYb028jGTy .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-ppMXO1NYb028jGTy .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-ppMXO1NYb028jGTy .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-ppMXO1NYb028jGTy .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-ppMXO1NYb028jGTy .marker{fill:#333}#mermaid-svg-ppMXO1NYb028jGTy .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-ppMXO1NYb028jGTy {color: rgba(0, 0, 0, 0.75);font: ;}張三李四王五你好!李四, 最近怎么樣?你最近怎么樣,王五?我很好,謝謝!我很好,謝謝!李四想了很長時間, 文字太長了不適合放在一行.打量著王五...很好... 王五, 你怎么樣?張三李四王五這將產生一個流程圖。:
#mermaid-svg-wm00KnhWN38DAerN .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-wm00KnhWN38DAerN .label text{fill:#333}#mermaid-svg-wm00KnhWN38DAerN .node rect,#mermaid-svg-wm00KnhWN38DAerN .node circle,#mermaid-svg-wm00KnhWN38DAerN .node ellipse,#mermaid-svg-wm00KnhWN38DAerN .node polygon,#mermaid-svg-wm00KnhWN38DAerN .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-wm00KnhWN38DAerN .node .label{text-align:center;fill:#333}#mermaid-svg-wm00KnhWN38DAerN .node.clickable{cursor:pointer}#mermaid-svg-wm00KnhWN38DAerN .arrowheadPath{fill:#333}#mermaid-svg-wm00KnhWN38DAerN .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-wm00KnhWN38DAerN .flowchart-link{stroke:#333;fill:none}#mermaid-svg-wm00KnhWN38DAerN .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-wm00KnhWN38DAerN .edgeLabel rect{opacity:0.9}#mermaid-svg-wm00KnhWN38DAerN .edgeLabel span{color:#333}#mermaid-svg-wm00KnhWN38DAerN .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-wm00KnhWN38DAerN .cluster text{fill:#333}#mermaid-svg-wm00KnhWN38DAerN div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-wm00KnhWN38DAerN .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-wm00KnhWN38DAerN text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-wm00KnhWN38DAerN .actor-line{stroke:grey}#mermaid-svg-wm00KnhWN38DAerN .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-wm00KnhWN38DAerN .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-wm00KnhWN38DAerN #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-wm00KnhWN38DAerN .sequenceNumber{fill:#fff}#mermaid-svg-wm00KnhWN38DAerN #sequencenumber{fill:#333}#mermaid-svg-wm00KnhWN38DAerN #crosshead path{fill:#333;stroke:#333}#mermaid-svg-wm00KnhWN38DAerN .messageText{fill:#333;stroke:#333}#mermaid-svg-wm00KnhWN38DAerN .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-wm00KnhWN38DAerN .labelText,#mermaid-svg-wm00KnhWN38DAerN .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-wm00KnhWN38DAerN .loopText,#mermaid-svg-wm00KnhWN38DAerN .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-wm00KnhWN38DAerN .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-wm00KnhWN38DAerN .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-wm00KnhWN38DAerN .noteText,#mermaid-svg-wm00KnhWN38DAerN .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-wm00KnhWN38DAerN .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-wm00KnhWN38DAerN .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-wm00KnhWN38DAerN .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-wm00KnhWN38DAerN .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-wm00KnhWN38DAerN .section{stroke:none;opacity:0.2}#mermaid-svg-wm00KnhWN38DAerN .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-wm00KnhWN38DAerN .section2{fill:#fff400}#mermaid-svg-wm00KnhWN38DAerN .section1,#mermaid-svg-wm00KnhWN38DAerN .section3{fill:#fff;opacity:0.2}#mermaid-svg-wm00KnhWN38DAerN .sectionTitle0{fill:#333}#mermaid-svg-wm00KnhWN38DAerN .sectionTitle1{fill:#333}#mermaid-svg-wm00KnhWN38DAerN .sectionTitle2{fill:#333}#mermaid-svg-wm00KnhWN38DAerN .sectionTitle3{fill:#333}#mermaid-svg-wm00KnhWN38DAerN .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-wm00KnhWN38DAerN .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-wm00KnhWN38DAerN .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-wm00KnhWN38DAerN .grid path{stroke-width:0}#mermaid-svg-wm00KnhWN38DAerN .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-wm00KnhWN38DAerN .task{stroke-width:2}#mermaid-svg-wm00KnhWN38DAerN .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-wm00KnhWN38DAerN .taskText:not([font-size]){font-size:11px}#mermaid-svg-wm00KnhWN38DAerN .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-wm00KnhWN38DAerN .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-wm00KnhWN38DAerN .task.clickable{cursor:pointer}#mermaid-svg-wm00KnhWN38DAerN .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-wm00KnhWN38DAerN .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-wm00KnhWN38DAerN .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-wm00KnhWN38DAerN .taskText0,#mermaid-svg-wm00KnhWN38DAerN .taskText1,#mermaid-svg-wm00KnhWN38DAerN .taskText2,#mermaid-svg-wm00KnhWN38DAerN .taskText3{fill:#fff}#mermaid-svg-wm00KnhWN38DAerN .task0,#mermaid-svg-wm00KnhWN38DAerN .task1,#mermaid-svg-wm00KnhWN38DAerN .task2,#mermaid-svg-wm00KnhWN38DAerN .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-wm00KnhWN38DAerN .taskTextOutside0,#mermaid-svg-wm00KnhWN38DAerN .taskTextOutside2{fill:#000}#mermaid-svg-wm00KnhWN38DAerN .taskTextOutside1,#mermaid-svg-wm00KnhWN38DAerN .taskTextOutside3{fill:#000}#mermaid-svg-wm00KnhWN38DAerN .active0,#mermaid-svg-wm00KnhWN38DAerN .active1,#mermaid-svg-wm00KnhWN38DAerN .active2,#mermaid-svg-wm00KnhWN38DAerN .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-wm00KnhWN38DAerN .activeText0,#mermaid-svg-wm00KnhWN38DAerN .activeText1,#mermaid-svg-wm00KnhWN38DAerN .activeText2,#mermaid-svg-wm00KnhWN38DAerN .activeText3{fill:#000 !important}#mermaid-svg-wm00KnhWN38DAerN .done0,#mermaid-svg-wm00KnhWN38DAerN .done1,#mermaid-svg-wm00KnhWN38DAerN .done2,#mermaid-svg-wm00KnhWN38DAerN .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-wm00KnhWN38DAerN .doneText0,#mermaid-svg-wm00KnhWN38DAerN .doneText1,#mermaid-svg-wm00KnhWN38DAerN .doneText2,#mermaid-svg-wm00KnhWN38DAerN .doneText3{fill:#000 !important}#mermaid-svg-wm00KnhWN38DAerN .crit0,#mermaid-svg-wm00KnhWN38DAerN .crit1,#mermaid-svg-wm00KnhWN38DAerN .crit2,#mermaid-svg-wm00KnhWN38DAerN .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-wm00KnhWN38DAerN .activeCrit0,#mermaid-svg-wm00KnhWN38DAerN .activeCrit1,#mermaid-svg-wm00KnhWN38DAerN .activeCrit2,#mermaid-svg-wm00KnhWN38DAerN .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-wm00KnhWN38DAerN .doneCrit0,#mermaid-svg-wm00KnhWN38DAerN .doneCrit1,#mermaid-svg-wm00KnhWN38DAerN .doneCrit2,#mermaid-svg-wm00KnhWN38DAerN .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-wm00KnhWN38DAerN .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-wm00KnhWN38DAerN .milestoneText{font-style:italic}#mermaid-svg-wm00KnhWN38DAerN .doneCritText0,#mermaid-svg-wm00KnhWN38DAerN .doneCritText1,#mermaid-svg-wm00KnhWN38DAerN .doneCritText2,#mermaid-svg-wm00KnhWN38DAerN .doneCritText3{fill:#000 !important}#mermaid-svg-wm00KnhWN38DAerN .activeCritText0,#mermaid-svg-wm00KnhWN38DAerN .activeCritText1,#mermaid-svg-wm00KnhWN38DAerN .activeCritText2,#mermaid-svg-wm00KnhWN38DAerN .activeCritText3{fill:#000 !important}#mermaid-svg-wm00KnhWN38DAerN .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-wm00KnhWN38DAerN g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-wm00KnhWN38DAerN g.classGroup text .title{font-weight:bolder}#mermaid-svg-wm00KnhWN38DAerN g.clickable{cursor:pointer}#mermaid-svg-wm00KnhWN38DAerN g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-wm00KnhWN38DAerN g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-wm00KnhWN38DAerN .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-wm00KnhWN38DAerN .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-wm00KnhWN38DAerN .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-wm00KnhWN38DAerN .dashed-line{stroke-dasharray:3}#mermaid-svg-wm00KnhWN38DAerN #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-wm00KnhWN38DAerN #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-wm00KnhWN38DAerN #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-wm00KnhWN38DAerN #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-wm00KnhWN38DAerN #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-wm00KnhWN38DAerN #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-wm00KnhWN38DAerN #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-wm00KnhWN38DAerN #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-wm00KnhWN38DAerN .commit-id,#mermaid-svg-wm00KnhWN38DAerN .commit-msg,#mermaid-svg-wm00KnhWN38DAerN .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-wm00KnhWN38DAerN .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-wm00KnhWN38DAerN .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-wm00KnhWN38DAerN g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-wm00KnhWN38DAerN g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-wm00KnhWN38DAerN g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-wm00KnhWN38DAerN g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-wm00KnhWN38DAerN g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-wm00KnhWN38DAerN g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-wm00KnhWN38DAerN .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-wm00KnhWN38DAerN .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-wm00KnhWN38DAerN .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-wm00KnhWN38DAerN .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-wm00KnhWN38DAerN .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-wm00KnhWN38DAerN .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-wm00KnhWN38DAerN .edgeLabel text{fill:#333}#mermaid-svg-wm00KnhWN38DAerN .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-wm00KnhWN38DAerN .node circle.state-start{fill:black;stroke:black}#mermaid-svg-wm00KnhWN38DAerN .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-wm00KnhWN38DAerN #statediagram-barbEnd{fill:#9370db}#mermaid-svg-wm00KnhWN38DAerN .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-wm00KnhWN38DAerN .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-wm00KnhWN38DAerN .statediagram-state .divider{stroke:#9370db}#mermaid-svg-wm00KnhWN38DAerN .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-wm00KnhWN38DAerN .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-wm00KnhWN38DAerN .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-wm00KnhWN38DAerN .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-wm00KnhWN38DAerN .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-wm00KnhWN38DAerN .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-wm00KnhWN38DAerN .note-edge{stroke-dasharray:5}#mermaid-svg-wm00KnhWN38DAerN .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-wm00KnhWN38DAerN .error-icon{fill:#522}#mermaid-svg-wm00KnhWN38DAerN .error-text{fill:#522;stroke:#522}#mermaid-svg-wm00KnhWN38DAerN .edge-thickness-normal{stroke-width:2px}#mermaid-svg-wm00KnhWN38DAerN .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-wm00KnhWN38DAerN .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-wm00KnhWN38DAerN .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-wm00KnhWN38DAerN .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-wm00KnhWN38DAerN .marker{fill:#333}#mermaid-svg-wm00KnhWN38DAerN .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-wm00KnhWN38DAerN {color: rgba(0, 0, 0, 0.75);font: ;}鏈接長方形圓圓角長方形菱形- 關于 Mermaid 語法,參考 這兒,
FLowchart流程圖
我們依舊會支持flowchart的流程圖:
Created with Rapha?l 2.2.0開始我的操作確認?結束yesno- 關于 Flowchart流程圖 語法,參考 這兒.
導出與導入
導出
如果你想嘗試使用此編輯器, 你可以在此篇文章任意編輯。當你完成了一篇文章的寫作, 在上方工具欄找到 文章導出 ,生成一個.md文件或者.html文件進行本地保存。
導入
如果你想加載一篇你寫過的.md文件,在上方工具欄可以選擇導入功能進行對應擴展名的文件導入,
繼續你的創作。
注腳的解釋 ??
總結
以上是生活随笔為你收集整理的pyGurobi使用手册的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构括号是否匹配
- 下一篇: python图片内容长度识别_Pytho