dingjun 发表于 2008-4-6 14:47:00

lingo代码求教

model:
sets:
pipe/1..200/:n;
size/1..4/:length,need;
links(size,pipe):number;
endsets
data:
length=1.5 1.45 1.3 0.35;
need=200 200 300 1200;
enddata
@for(pipe(j):@bin(n(j)));
@for(links(i,j):@gin(number(i,j)));
@for(pipe(i)|i#lt#200:n(i)>=n(i+1));
@for(pipe(j):@sum(size(i):length(i)*number(i,j))<=8*n(j));
@for(size(i):@sum(pipe(j):number(i,j))=need(i));
min=@sum(pipe(i):n(i));   

以上是我写的lingo代码,无法运行,求高人指教

深蓝世界 发表于 2008-4-6 16:31:54

我要看的是数学表达试!

dingjun 发表于 2008-4-6 18:59:19

多明显的数学式啊,强人同志

dingjun 发表于 2008-4-6 20:03:24

代码没错,溢出了

深蓝世界 发表于 2008-4-6 21:58:23

呵呵,同学你认为就这种规模的问题在计算机上会发生溢出,你不觉得你的程序很有问题吗?不是说语法没错程序就一定对的.我用的lingo是正版的10.0版本根本无法计算你的程序.求助也是需要耐性的......

dingjun 发表于 2008-4-6 22:04:59

你把need里的数全改至小于10就可以运行了

dingjun 发表于 2008-4-6 22:20:50

请问你的正版lingo10.0多少钱买的,我也想买.:$

qingquan1 发表于 2008-4-7 12:56:25

正版起码要十几万呢!

ionsie 发表于 2008-4-17 22:01:14

唉,想找正版或破解的lingo10 或11,又没多少钱呀。谁能帮忙呀?

tangbaby 发表于 2008-4-18 19:38:41

同志,我很负责的告诉你,你的模型可以解,但是你可能用的是DEMO版本无法超过整型32个变量的版本,可能显示超过变量数目。

但是1000个变量的PILP模型,想要求得全局最优解是有困难的,更何况你有一条强严格约束。
你的模型写的也不是非常好读,我帮你改了一下顺序和语法(不要吝啬用空行):

model:
sets:
pipe/1..200/:n;
size/1..4/:length,need;
links(size,pipe):number;
endsets
data:
length=1.5 1.45 1.3 0.35;
need=200 200300 1200;
enddata

    min=@sum(pipe:n);

@for(pipe(i)|i#lt#200:n(i)>=n(i+1));

@for(pipe(j):
@sum(size(i):length(i)*number(i,j))
<= 8*n(j)
);

@for(size(i):
@sum(pipe(j):number(i,j))
= need(i)
);

@for(pipe: @bin(n));
@for(links: @Gin(number));
end

我帮你求了个可行解,如下:
Feasible solution found.
Objective value:186.0000
                  Variable            Value            Reduced Cost
                  NUMBER( 1, 1)      1.000000            0.000000
                  NUMBER( 1, 2)      5.000000            0.000000
                  NUMBER( 1, 3)      5.000000            0.000000
                  NUMBER( 1, 4)      5.000000            0.000000
                  NUMBER( 1, 5)      2.000000            0.000000
                  NUMBER( 1, 6)      5.000000            0.000000
                  NUMBER( 1, 8)      2.000000            0.000000
               NUMBER( 1, 10)      1.000000            0.000000
               NUMBER( 1, 15)      1.000000            0.000000
               NUMBER( 1, 19)      5.000000            0.000000
               NUMBER( 1, 20)      5.000000            0.000000
               NUMBER( 1, 21)      5.000000            0.000000
               NUMBER( 1, 22)      5.000000            0.000000
               NUMBER( 1, 23)      5.000000            0.000000
               NUMBER( 1, 24)      5.000000            0.000000
               NUMBER( 1, 25)      5.000000            0.000000
               NUMBER( 1, 26)      5.000000            0.000000
               NUMBER( 1, 27)      5.000000            0.000000
               NUMBER( 1, 28)      5.000000            0.000000
               NUMBER( 1, 30)      5.000000            0.000000
               NUMBER( 1, 31)      5.000000            0.000000
               NUMBER( 1, 32)      5.000000            0.000000
               NUMBER( 1, 33)      5.000000            0.000000
               NUMBER( 1, 34)      5.000000            0.000000
               NUMBER( 1, 35)      5.000000            0.000000
               NUMBER( 1, 36)      5.000000            0.000000
               NUMBER( 1, 37)      5.000000            0.000000
               NUMBER( 1, 38)      5.000000            0.000000
               NUMBER( 1, 39)      5.000000            0.000000
               NUMBER( 1, 40)      5.000000            0.000000
               NUMBER( 1, 41)      5.000000            0.000000
               NUMBER( 1, 42)      5.000000            0.000000
               NUMBER( 1, 43)      5.000000            0.000000
               NUMBER( 1, 57)      5.000000            0.000000
               NUMBER( 1, 76)      5.000000            0.000000
               NUMBER( 1, 80)      5.000000            0.000000
               NUMBER( 1, 81)      5.000000            0.000000
                NUMBER( 1, 117)      2.000000            0.000000
                NUMBER( 1, 118)      1.000000            0.000000
                NUMBER( 1, 119)      2.000000            0.000000
                NUMBER( 1, 128)      5.000000            0.000000
                NUMBER( 1, 130)      1.000000            0.000000
                NUMBER( 1, 141)      1.000000            0.000000
                NUMBER( 1, 143)      1.000000            0.000000
                NUMBER( 1, 150)      4.000000            0.000000
                NUMBER( 1, 153)      4.000000            0.000000
                NUMBER( 1, 154)      1.000000            0.000000
                NUMBER( 1, 158)      4.000000            0.000000
                NUMBER( 1, 159)      3.000000            0.000000
                NUMBER( 1, 175)      2.000000            0.000000
                NUMBER( 1, 184)      1.000000            0.000000
                NUMBER( 1, 186)      1.000000            0.000000
               NUMBER( 2, 61)      5.000000            0.000000
               NUMBER( 2, 63)      5.000000            0.000000
               NUMBER( 2, 64)      5.000000            0.000000
               NUMBER( 2, 65)      5.000000            0.000000
               NUMBER( 2, 66)      5.000000            0.000000
               NUMBER( 2, 67)      5.000000            0.000000
               NUMBER( 2, 68)      5.000000            0.000000
               NUMBER( 2, 69)      5.000000            0.000000
               NUMBER( 2, 70)      5.000000            0.000000
               NUMBER( 2, 71)      5.000000            0.000000
               NUMBER( 2, 73)      5.000000            0.000000
               NUMBER( 2, 92)      5.000000            0.000000
               NUMBER( 2, 93)      5.000000            0.000000
               NUMBER( 2, 94)      5.000000            0.000000
               NUMBER( 2, 97)      5.000000            0.000000
               NUMBER( 2, 98)      5.000000            0.000000
               NUMBER( 2, 99)      5.000000            0.000000
                NUMBER( 2, 100)      1.000000            0.000000
                NUMBER( 2, 101)      5.000000            0.000000
                NUMBER( 2, 102)      5.000000            0.000000
                NUMBER( 2, 104)      1.000000            0.000000
                NUMBER( 2, 106)      1.000000            0.000000
                NUMBER( 2, 111)      3.000000            0.000000
                NUMBER( 2, 113)      1.000000            0.000000
                NUMBER( 2, 114)      2.000000            0.000000
                NUMBER( 2, 115)      4.000000            0.000000
                NUMBER( 2, 119)      3.000000            0.000000
                NUMBER( 2, 120)      5.000000            0.000000
                NUMBER( 2, 121)      5.000000            0.000000
                NUMBER( 2, 122)      5.000000            0.000000
                NUMBER( 2, 123)      5.000000            0.000000
                NUMBER( 2, 124)      4.000000            0.000000
                NUMBER( 2, 125)      5.000000            0.000000
                NUMBER( 2, 126)      5.000000            0.000000
                NUMBER( 2, 129)      5.000000            0.000000
                NUMBER( 2, 138)      5.000000            0.000000
                NUMBER( 2, 140)      4.000000            0.000000
                NUMBER( 2, 144)      2.000000            0.000000
                NUMBER( 2, 147)      5.000000            0.000000
                NUMBER( 2, 148)      2.000000            0.000000
                NUMBER( 2, 156)      1.000000            0.000000
                NUMBER( 2, 157)      5.000000            0.000000
                NUMBER( 2, 158)      1.000000            0.000000
                NUMBER( 2, 161)      5.000000            0.000000
                NUMBER( 2, 163)      5.000000            0.000000
                NUMBER( 2, 165)      3.000000            0.000000
                NUMBER( 2, 168)      2.000000            0.000000
                NUMBER( 2, 170)      2.000000            0.000000
                NUMBER( 2, 174)      2.000000            0.000000
                NUMBER( 2, 175)      1.000000            0.000000
                NUMBER( 2, 182)      1.000000            0.000000
                NUMBER( 2, 186)      4.000000            0.000000
                  NUMBER( 3, 1)      5.000000            0.000000
                  NUMBER( 3, 5)      3.000000            0.000000
                  NUMBER( 3, 7)      6.000000            0.000000
                  NUMBER( 3, 8)      1.000000            0.000000
                  NUMBER( 3, 9)      3.000000            0.000000
               NUMBER( 3, 10)      1.000000            0.000000
               NUMBER( 3, 12)      3.000000            0.000000
               NUMBER( 3, 14)      3.000000            0.000000
               NUMBER( 3, 15)      1.000000            0.000000
               NUMBER( 3, 17)      6.000000            0.000000
               NUMBER( 3, 18)      5.000000            0.000000
               NUMBER( 3, 44)      6.000000            0.000000
               NUMBER( 3, 48)      6.000000            0.000000
               NUMBER( 3, 54)      3.000000            0.000000
               NUMBER( 3, 55)      3.000000            0.000000
               NUMBER( 3, 56)      6.000000            0.000000
               NUMBER( 3, 58)      6.000000            0.000000
               NUMBER( 3, 72)      1.000000            0.000000
               NUMBER( 3, 75)      6.000000            0.000000
               NUMBER( 3, 77)      4.000000            0.000000
               NUMBER( 3, 78)      6.000000            0.000000
               NUMBER( 3, 82)      1.000000            0.000000
               NUMBER( 3, 87)      4.000000            0.000000
               NUMBER( 3, 88)      1.000000            0.000000
               NUMBER( 3, 91)      1.000000            0.000000
                NUMBER( 3, 103)      6.000000            0.000000
                NUMBER( 3, 104)      5.000000            0.000000
                NUMBER( 3, 105)      6.000000            0.000000
                NUMBER( 3, 114)      3.000000            0.000000
                NUMBER( 3, 115)      1.000000            0.000000
                NUMBER( 3, 116)      1.000000            0.000000
                NUMBER( 3, 130)      2.000000            0.000000
                NUMBER( 3, 131)      6.000000            0.000000
                NUMBER( 3, 132)      6.000000            0.000000
                NUMBER( 3, 133)      5.000000            0.000000
                NUMBER( 3, 134)      5.000000            0.000000
                NUMBER( 3, 135)      2.000000            0.000000
                NUMBER( 3, 136)      6.000000            0.000000
                NUMBER( 3, 137)      6.000000            0.000000
                NUMBER( 3, 139)      6.000000            0.000000
                NUMBER( 3, 140)      1.000000            0.000000
                NUMBER( 3, 141)      5.000000            0.000000
                NUMBER( 3, 142)      4.000000            0.000000
                NUMBER( 3, 143)      3.000000            0.000000
                NUMBER( 3, 144)      1.000000            0.000000
                NUMBER( 3, 145)      6.000000            0.000000
                NUMBER( 3, 146)      6.000000            0.000000
                NUMBER( 3, 148)      3.000000            0.000000
                NUMBER( 3, 149)      6.000000            0.000000
                NUMBER( 3, 150)      1.000000            0.000000
                NUMBER( 3, 151)      6.000000            0.000000
                NUMBER( 3, 152)      6.000000            0.000000
                NUMBER( 3, 154)      2.000000            0.000000
                NUMBER( 3, 155)      5.000000            0.000000
                NUMBER( 3, 156)      5.000000            0.000000
                NUMBER( 3, 159)      2.000000            0.000000
                NUMBER( 3, 160)      6.000000            0.000000
                NUMBER( 3, 162)      6.000000            0.000000
                NUMBER( 3, 164)      1.000000            0.000000
                NUMBER( 3, 165)      1.000000            0.000000
                NUMBER( 3, 166)      6.000000            0.000000
                NUMBER( 3, 167)      6.000000            0.000000
                NUMBER( 3, 169)      6.000000            0.000000
                NUMBER( 3, 170)      2.000000            0.000000
                NUMBER( 3, 173)      6.000000            0.000000
                NUMBER( 3, 176)      6.000000            0.000000
                NUMBER( 3, 178)      6.000000            0.000000
                NUMBER( 3, 179)      6.000000            0.000000
                NUMBER( 3, 180)      6.000000            0.000000
                NUMBER( 3, 181)      6.000000            0.000000
                NUMBER( 3, 182)      5.000000            0.000000
                NUMBER( 3, 183)      6.000000            0.000000
                  NUMBER( 4, 2)      1.000000            0.000000
                  NUMBER( 4, 3)      1.000000            0.000000
                  NUMBER( 4, 4)      1.000000            0.000000
                  NUMBER( 4, 5)      3.000000            0.000000
                  NUMBER( 4, 6)      1.000000            0.000000
                  NUMBER( 4, 8)      10.00000            0.000000
                  NUMBER( 4, 9)      11.00000            0.000000
               NUMBER( 4, 10)      14.00000            0.000000
               NUMBER( 4, 11)      22.00000            0.000000
               NUMBER( 4, 12)      11.00000            0.000000
               NUMBER( 4, 13)      22.00000            0.000000
               NUMBER( 4, 14)      11.00000            0.000000
               NUMBER( 4, 15)      14.00000            0.000000
               NUMBER( 4, 16)      22.00000            0.000000
               NUMBER( 4, 18)      4.000000            0.000000
               NUMBER( 4, 19)      1.000000            0.000000
               NUMBER( 4, 20)      1.000000            0.000000
               NUMBER( 4, 21)      1.000000            0.000000
               NUMBER( 4, 22)      1.000000            0.000000
               NUMBER( 4, 23)      1.000000            0.000000
               NUMBER( 4, 24)      1.000000            0.000000
               NUMBER( 4, 25)      1.000000            0.000000
               NUMBER( 4, 26)      1.000000            0.000000
               NUMBER( 4, 27)      1.000000            0.000000
               NUMBER( 4, 28)      1.000000            0.000000
               NUMBER( 4, 29)      22.00000            0.000000
               NUMBER( 4, 30)      1.000000            0.000000
               NUMBER( 4, 31)      1.000000            0.000000
               NUMBER( 4, 32)      1.000000            0.000000
               NUMBER( 4, 33)      1.000000            0.000000
               NUMBER( 4, 34)      1.000000            0.000000
               NUMBER( 4, 35)      1.000000            0.000000
               NUMBER( 4, 36)      1.000000            0.000000
               NUMBER( 4, 37)      1.000000            0.000000
               NUMBER( 4, 38)      1.000000            0.000000
               NUMBER( 4, 39)      1.000000            0.000000
               NUMBER( 4, 40)      1.000000            0.000000
               NUMBER( 4, 41)      1.000000            0.000000
               NUMBER( 4, 42)      1.000000            0.000000
               NUMBER( 4, 43)      1.000000            0.000000
               NUMBER( 4, 45)      22.00000            0.000000
               NUMBER( 4, 46)      22.00000            0.000000
               NUMBER( 4, 47)      22.00000            0.000000
               NUMBER( 4, 49)      22.00000            0.000000
               NUMBER( 4, 50)      22.00000            0.000000
               NUMBER( 4, 51)      22.00000            0.000000
               NUMBER( 4, 52)      22.00000            0.000000
               NUMBER( 4, 53)      22.00000            0.000000
               NUMBER( 4, 54)      11.00000            0.000000
               NUMBER( 4, 55)      11.00000            0.000000
               NUMBER( 4, 57)      1.000000            0.000000
               NUMBER( 4, 59)      22.00000            0.000000
               NUMBER( 4, 60)      22.00000            0.000000
               NUMBER( 4, 61)      1.000000            0.000000
               NUMBER( 4, 62)      22.00000            0.000000
               NUMBER( 4, 63)      2.000000            0.000000
               NUMBER( 4, 64)      2.000000            0.000000
               NUMBER( 4, 65)      1.000000            0.000000
               NUMBER( 4, 72)      15.00000            0.000000
               NUMBER( 4, 74)      22.00000            0.000000
               NUMBER( 4, 76)      1.000000            0.000000
               NUMBER( 4, 77)      4.000000            0.000000
               NUMBER( 4, 79)      22.00000            0.000000
               NUMBER( 4, 82)      17.00000            0.000000
               NUMBER( 4, 83)      22.00000            0.000000
               NUMBER( 4, 84)      22.00000            0.000000
               NUMBER( 4, 85)      22.00000            0.000000
               NUMBER( 4, 86)      22.00000            0.000000
               NUMBER( 4, 87)      6.000000            0.000000
               NUMBER( 4, 88)      17.00000            0.000000
               NUMBER( 4, 89)      22.00000            0.000000
               NUMBER( 4, 90)      22.00000            0.000000
               NUMBER( 4, 91)      16.00000            0.000000
               NUMBER( 4, 92)      2.000000            0.000000
               NUMBER( 4, 93)      2.000000            0.000000
               NUMBER( 4, 94)      2.000000            0.000000
               NUMBER( 4, 95)      22.00000            0.000000
               NUMBER( 4, 96)      22.00000            0.000000
               NUMBER( 4, 97)      2.000000            0.000000
               NUMBER( 4, 98)      2.000000            0.000000
               NUMBER( 4, 99)      2.000000            0.000000
                NUMBER( 4, 100)      18.00000            0.000000
                NUMBER( 4, 101)      2.000000            0.000000
                NUMBER( 4, 102)      2.000000            0.000000
                NUMBER( 4, 106)      18.00000            0.000000
                NUMBER( 4, 107)      22.00000            0.000000
                NUMBER( 4, 108)      22.00000            0.000000
                NUMBER( 4, 109)      22.00000            0.000000
                NUMBER( 4, 110)      22.00000            0.000000
                NUMBER( 4, 111)      10.00000            0.000000
                NUMBER( 4, 112)      22.00000            0.000000
                NUMBER( 4, 113)      18.00000            0.000000
                NUMBER( 4, 114)      3.000000            0.000000
                NUMBER( 4, 115)      2.000000            0.000000
                NUMBER( 4, 116)      19.00000            0.000000
                NUMBER( 4, 117)      14.00000            0.000000
                NUMBER( 4, 118)      1.000000            0.000000
                NUMBER( 4, 119)      1.000000            0.000000
                NUMBER( 4, 120)      2.000000            0.000000
                NUMBER( 4, 121)      2.000000            0.000000
                NUMBER( 4, 122)      2.000000            0.000000
                NUMBER( 4, 123)      2.000000            0.000000
                NUMBER( 4, 124)      6.000000            0.000000
                NUMBER( 4, 125)      2.000000            0.000000
                NUMBER( 4, 126)      2.000000            0.000000
                NUMBER( 4, 127)      22.00000            0.000000
                NUMBER( 4, 128)      1.000000            0.000000
                NUMBER( 4, 129)      2.000000            0.000000
                NUMBER( 4, 133)      4.000000            0.000000
                NUMBER( 4, 135)      15.00000            0.000000
                NUMBER( 4, 138)      2.000000            0.000000
                NUMBER( 4, 144)      10.00000            0.000000
                NUMBER( 4, 148)      3.000000            0.000000
                NUMBER( 4, 153)      5.000000            0.000000
                NUMBER( 4, 157)      2.000000            0.000000
                NUMBER( 4, 158)      1.000000            0.000000
                NUMBER( 4, 163)      2.000000            0.000000
                NUMBER( 4, 164)      19.00000            0.000000
                NUMBER( 4, 165)      6.000000            0.000000
                NUMBER( 4, 168)      14.00000            0.000000
                NUMBER( 4, 170)      7.000000            0.000000
                NUMBER( 4, 171)      22.00000            0.000000
                NUMBER( 4, 172)      22.00000            0.000000
                NUMBER( 4, 174)      14.00000            0.000000
                NUMBER( 4, 175)      10.00000            0.000000
                NUMBER( 4, 184)      8.000000            0.000000

[ 本帖最后由 tangbaby 于 2008-4-18 19:45 编辑 ]
页: [1]
查看完整版本: lingo代码求教