zoukankan      html  css  js  c++  java
  • 应用运筹学1 变量使用

    Use of variables

    Continuous variables

    Continuous variables are intuitively used to determine divisible quantities. Are very often bounded.

    Discrete variables

    1. Represent a quantity which can come only in whole amounts
    2. Model type of decisions

    Logical condition

    \[\begin{array}{ll} \text { Logical condition } & \text { Constraint } \\ \hline A \text { OR } B & x_{A}+x_{B} \geq 1 \\ A \text { AND } B & x_{A}=1, x_{B}=1 \\ \text { NOT } A & x_{A}=0 \text { or }\left(1-x_{A}\right)=1 \\ A \Longrightarrow B & x_{A} \leq x_{B} \\ A \Longleftrightarrow B & x_{A}-x_{B}=0 \end{array} \]

    Generalized logical conditions

    \[\begin{array}{cc} \text { Implication } & \text { Translation } \\ \hline A \Longrightarrow B & x_{A} \leq x_{B} \\ A \Longrightarrow \text { SOME } B_{j} & x_{A} \leq \sum_{j=1}^{m} x_{B_{j}} \\ A \Longrightarrow \text { ALL } B_{j} & x_{A} \leq x_{B_{j}} \text { for } j=1, \ldots, m \\ \text { SOME } A_{i} \Longrightarrow B & x_{A_{i}} \leq x_{B} \text { for } i=1, \ldots, n \\ \text { SOME } A_{i} \Longrightarrow \text { SOME } B_{j} & x_{A_{i}} \leq \sum_{j=1}^{m} x_{B_{j}} \text { for } i=1, \ldots, n \\ \text { SOME } A_{i} \Longrightarrow \text { ALL } B_{j} & x_{A_{i}} \leq x_{B_{j}} \text { for } i=1, \ldots, n \text { and } j=1, \ldots, m \\ \text { ALL } A_{i} \Longrightarrow B & \sum_{i=1}^{n} x_{A_{i}} \leq x_{B}+n-1 \text { for } i=1, \ldots, n \\ \text { ALL } A_{i} \Longrightarrow \text { SOME } B_{j} & \sum_{i=1}^{n} x_{A_{i}} \leq \sum_{j=1}^{m} x_{B_{j}}+n-1 \\ \text { ALL } A_{i} \Longrightarrow \text { ALL } B_{j} & \sum_{i=1}^{n} x_{A_{i}} \leq x_{B_{j}}+n-1 \text { for } j=1, \ldots, m \\ \hline \end{array} \]

    Indicator variables

    Indicate the variable value:

    1. Consider \(x\geq 0\) and a binary variable \(y\in\{0,1\}\). Enforce \(x>0 \Longrightarrow y=1\), achieved by:

    \[x\leq Uy \]

    \(U\) is an upper bound of \(x\). Note that if \(x=0,y\) can be either 0 or 1.

    1. To impose also \(x=0 \Longrightarrow y=0\), we add:

    \[x\geq Ly \]

    \(L\) is the lower bound for \(x\).

    Indicate the constraints \(\leq\):

    1. To model \(y=1 \Longrightarrow \sum_{i} a_{i} x_{i} \leq b\), (force the inequality holds by variable) we can have:

    \[\sum_{i} a_{i} x_{i}+M y \leq b+M \]

    where \(M\) is an upper bound to \(\sum_{i}a_ix_i-b\). When \(y=1\) the constraint is forced to hold. However, if the constraint holds \(y\) can be either 1 or 0.

    1. To model \(\sum_{i} a_{i} x_{i} \leq b \Longrightarrow y=1\), (be the indicate variable) according to \(p \Longrightarrow q \equiv N O T q \Longrightarrow N O T p\)​, we can have:

      \[y=0 \Longrightarrow \sum_{i} a_{i} x_{i}>b=\sum_{i}a_ix_i\geq b+\epsilon \]

      Let \(L \leq \sum_{i} a_{i} x_{i}-b\)​, we have

      \[\sum_{i} a_{i} x_{i}-(L-\epsilon) y \geq b+\epsilon \]

    Indicate the constraints \(\geq\):

    \[\begin{gathered} y=1 \Longrightarrow \sum_{i} a_{i} x_{i} \geq b \\ \sum_{i} a_{i} x_{i}+L y \geq b+L \end{gathered} \]

    and

    \[\begin{gathered} \sum_{i} a_{i} x_{i} \geq b \Longrightarrow y=1 \\ \sum_{i} a_{i} x_{i}-(M+\epsilon) y \leq b-\epsilon \end{gathered} \]

    Indicate the constraints \(=\):

    Consider \(\sum_{j}a_jx_j=b\):

    \[y=1 \Longrightarrow \sum_{i} a_{i} x_{i} \geq b \operatorname{AND} \sum_{i} a_{i} x_{i} \leq b \]

    both inequalities hold at the same time:

    \[\begin{aligned} &\sum_{i} a_{i} x_{i}+M y \leq M+b \\ &\sum_{i} a_{i} x_{i}+L y \geq L+b \end{aligned} \]

    Indicate the constraints \(\neq\):

    Consider:

    \[y=0 \Longrightarrow \sum_{i} a_{i} x_{i} \neq b \]

    If \(y=0\), we enforce one of the two inequalities to be broken:

    \[\begin{gathered} \sum_{i} a_{i} x_{i}-(L-\epsilon) y^{\prime} \geq b+\epsilon \\ \sum_{i} a_{i} x_{i}-(M+\epsilon) y^{\prime \prime} \leq b-\epsilon \\ y^{\prime}+y^{\prime \prime} \leq 1+y \end{gathered} \]

    Connecting continuous and binary variables

    Fixed costs

    if \(x=1\), then add cost \(K\) in objective function.

    \[\begin{aligned} &\min C x+K y \\ &\quad x \leq U y \\ &x \geq 0, y \in\{0,1\} \end{aligned} \]

    Counting

    we want to have a constraint that only a certain number of real variables are strictly greater than 0, namely \(K\).

    \[\begin{aligned} &x_{i} \leq Uy_{i} \\ &\sum_{i=1}^{I} y_{i} \leq K \end{aligned} \]

    Economies of scale

    If \(x\leq B_1\), pay \(C_1x\);

    If \(B_1\leq x\leq B_2\), pay \(C_2x\);

    If \(B_2\leq x\leq B_3\), pay \(C_3x\).

    \[\begin{aligned} &y_{1}+y_{2}+y_{3}=1 \\ &x_{1} \leq B_{1} y_{1} \\ &B_{1} y_{2} \leq x_{2} \leq B_{2} y_{2} \\ &B_{2} y_{3} \leq x_{3} \leq B_{3} y_{3} \end{aligned} \]

    Disjunctive Constraint

    Disjunctive Constraint require that at least or at most one subset of constraints holds.

    1. At least \(K\).

      First introduce \(N\) indicator variables \(\delta_i\)​, such that

      \[\delta_i=1\Longrightarrow C_i \]

      If \(C_i\) is in type \(\leq\), we have:

      \[\sum_ja_ix_i+L\delta_i\leq b_i+L,\qquad \forall i \]

      If \(C_i\) is in type \(\geq\), we have:

      \[\sum_{j} a_{i j} x_{i j}+L \delta_{i} \geq L+b_{i},\qquad \forall i \]

      Finally,

      \[\sum_i\delta_i\geq K \]

    2. At most \(K\).

      We need to impose \(\sum_i\delta_i\leq K\), in turn:

      \[C_i\Longrightarrow \delta_i=1 \]

      For \(\leq\):

      \[\sum_ja_{ij}x_{ij}-(U-\epsilon)\delta_i\geq b_i+\epsilon \]

      For \(\geq\):

      \[\sum_ja_{ij}x_{ij}-(L+\epsilon)\delta_i\leq b_i-\epsilon \]

    Linearizing Models

    1. We wish to linearize the product of two binary term \(\delta_1\delta_2\) by \(\delta\), we can

    \[\delta=1\Longrightarrow \delta_1=1\land\delta_2=1 \]

    ​ In this case:

    \[\begin{aligned} &\delta \leq \delta_{1} \\ &\delta \leq \delta_{2} \\ &\delta_{1}+\delta_{2} \leq 1+\delta \end{aligned} \]

    1. linearize terms involving a product of a binary variable, say \(\delta\), with a continuous variable, say \(x\).

      \[x\delta \]

      using continuous variables \(y\), such that:

      \[\begin{aligned} &\delta=0 \Longrightarrow y=0 \\ &\delta=1 \Longrightarrow y=x \end{aligned} \]

      by enforcing:

      \[\begin{aligned} &y \leq M \delta \\ &y \leq x \\ &x+M \delta \leq y+M \end{aligned} \]

  • 相关阅读:
    Mysql字符串字段判断是否包含某个字符串的方法
    linux下安装jenkins实现自动化部署
    Python:webshell 跳板机审计服务器
    Yum:更换aliyun的yum源
    Python:安装3.6
    Mysql:零散记录
    Kvm:通过 libvirt 远程管理虚拟机
    Python:socket实现ftp程序
    Python:用户自定义异常
    Kvm:启动报错:error: internal error: process exited while connecting to monitor: 2018-11-12T01:47:14.993371Z qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory
  • 原文地址:https://www.cnblogs.com/romaLzhih/p/15582866.html
Copyright © 2011-2022 走看看