大数据人|大数据第一社区

 找回密码
 注册会员

扫一扫,访问微社区

查看: 1252|回复: 0
打印 上一主题 下一主题

§6.1 定义0-1变量命令INT

[复制链接]
  • TA的每日心情
    奋斗
    2015-7-30 23:05
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    852

    主题

    972

    帖子

    4804

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    4804
    QQ
    跳转到指定楼层
    楼主
    发表于 2015-7-14 13:16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    §6.1 定义0-1变量命令INT

    1.命令功能:定义当前模型中的0-1型整数变量。
    2.命令格式:
                  :INT[变量名]<CR>
    其中的变量名表示将要定义为0-1变量的变量。
    3.命令使用:输入一个0-1型整数规划模型的方法,是先按前述的线性规划模型的输入方法进行操作,尔后用INT命令来定义0-1变量。INT命令一般应在对应的线性规划模型输入完毕后立即进行。下面请看有三个0-1变量的整数规划模型的上机操作实例:

    MAX3X1+4X2+5X3+3X4+2X5

    ?ST
    ?2X1+3X2+4X3+5X4+X5<11
    ?3X1+4X2+2X3+X4+3X5<16
    ?7X1+2X2+5X3+4X4+2X5<19
    ?END

    :INTX1                          !定义X1为0-1变量

    :INTX2                          !定义X2为0-1变量

    :INTX3                          !定义X3为0-1变量

    :LOOK ALL

    MAX3X1+4X2+5X3+3X4+2X5

    SUBJECTTO

    2)2X1+3X2+4X3+5X4+X5<=11

    3)3X1+4X2+2X3+X4+3X5<=16

    4)7X1+2X2+5X3+4X4+2X5<=19

    END
    INTEGER-VARIABLES=3           !前三个变量为0-1变量
    :GO

         LP OPTIMUM FOUND AT STEP 6  !已获得线性规划的最优解

         OBJECTIVE FUNCTION VALUE

             1)16.4000000             !线性规划的目标函数值

    VARIABLE       VALUE       REDUCEDCOST

    X1             1.000000     .200000
    X2              .800000     .000000
    X3             1.000000    1.000000
    X4              .000000    1.400000
    X5             2.600000     .000000

    ROW            SLACK       DUAL PRICES
    2)             .000000     .800000
    3)             .000000     .400000
    4)             .200000     .000000

    NO.ITERATIONS=6               !开始分支定界算法

    BRANCHES=0DETERM.=-5.000E0

    SET2 TO 1 AT 1 BND=16.333330 TWIN=16.000000

    SET1 TO 1 AT 2 BND=16.300000 TWIN=16.000000

    SET3 TO 1 AT 3 BND=16.000000 TWIN=16.000000


    NEWINTEGER SOLUTION AT BRANCH 3 PIVOT 10


         OBJECTIVE FUNCTION VALUE
             1)16.0000000             !第一个(0-1)整数解

    VARIABLE       VALUE       REDUCEDCOST

    X1             1.000000    -1.000000
    X2             1.000000    -2.000000
    X3             1.000000    -3.000000
    X4              .000000    7.000000
    X5             2.000000     .000000

    ROW            SLACK       DUAL PRICES
    2)              .000000    2.000000
    3)             1.000000     .000000
    4)             1.000000     .000000

    NO.ITERATIONS=10

    BRANCHES=3DETERM.=1.000E0

    BESTREMAINING SOLUTION NO BETTER THAN 16.00000

    DELETE3 AT LEVEL 3

    DELETE1 AT LEVEL 2

    DELETE2 AT LEVEL 1

    ENUMERATIONCOMPLETE. BRANCHES = 3 PIVOTS = 10


    LASTINTEGER SOLUTION IS THE BEST FOUND!以上整数解是最优解




    从上例可以看到,求解一个0-1整数规划模型的命令,仍是GO命令。GO命令下的第一步计算结果不是整数的,接着键入回车键,即开始用分支定界法计算整数解(而不是进行灵敏度分析)。
    当模型中有很多变量需要定义成0-1变量,可以有以下命令:

                  :INT<n>

    其中n表示模型中的0-1型整数变量数目。使用这命令来定义0-1变量,可以极大地提高键盘输入效率。对于上节的例子,三个0-1变量的定义可以如此操作:

                  :INT3

    使用该命令时须特别注意变量在目标函数中的排列次序。当目标函数中不是包含有全部变量时,应慎用这一命令。命令中的n,是指目标函数中(或模型中先输入的)前n个变量,不注意这一点,就容易出错。
    如果要取消已定义的0-1变量,用以下命令:
                  :INT  0<CR>
    键入这一命令后,模型中原有的0-1变量全部被取消,整数规划模型变成线性规划模型,但原有的 0-1变量被限制在区间[0,1]上。如:

    :LOOK ALL

    MAX    3 X1 + 4 X2 + 5 X3 + 3 X4 + 2 X5

    SUBJECT TO

            2)  2 X1 + 3 X2 + 4 X3 + X4 + 3 X5 <=  11

            3)  3 X1 + 4 X2 + 2 X3 + X4 + 3 X5 <=  16

            4)  7 X1 + 2 X2 + 5 X3 + 4 X4 + 2 X5 <=  19

    END

    INTE    3

    :INT  0
    :LOOK ALL

    MAX    3 X1 + 4 X2 + 5 X3 + 3 X4 + 2 X5

    SUBJECT TO

            2)  2 X1 + 3 X2 + 4 X3 + X4 + 3 X5 <=  11

            3)  3 X1 + 4 X2 + 2 X3 + X4 + 3 X5 <=  16

            4)  7 X1 + 2 X2 + 5 X3 + 4 X4 + 2 X5 <=  19

    END

    SUB      X1        1.00000

    SUB      X2        1.00000

    SUB      X3        1.00000


    :


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条


    id="mn_portal" >首页Portalid="mn_P18" onmouseover="navShow('P18')">应用id="mn_P15" onmouseover="navShow('P15')">技术id="mn_P37" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">前沿id="mn_P36" onmouseover="navShow('P36')">宝箱id="mn_P61" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">专栏id="mn_P65" >企业id="mn_Nd633" >导航 折叠导航 关注微信 关注微博 关注我们

    QQ|广告服务|关于我们|Archiver|手机版|小黑屋|大数据人 ( 鄂ICP备14012176号-2  

    GMT+8, 2024-5-2 09:19 , Processed in 0.258065 second(s), 33 queries .

    Powered by 小雄! X3.2

    © 2014-2020 bigdataer Inc.

    快速回复 返回顶部 返回列表