Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Done
  • Loading branch information
Moria committed Sep 28, 2015
1 parent 675f260 commit dac8c99
Show file tree
Hide file tree
Showing 6 changed files with 453 additions and 20 deletions.
22 changes: 22 additions & 0 deletions Outputs/input1.lp
@@ -0,0 +1,22 @@
Minimize
obj: d
Subject To
c0: - A0 - C1 - C2 - A3 - C4 - d <= - 5
c1: - A0 - C1 - A2 - A3 - C4 - d <= - 5
c2: - C0 - C1 - A2 - C3 - C4 - d <= - 5
c3: - A0 - C1 - A2 - A3 - C4 - d <= - 5
c4: - A0 - A1 - C2 - C3 - A4 - d <= - 5
c5: - C0 - A1 - A2 - C3 - C4 - d <= - 5
c6: - C0 - C1 - A2 - A3 - C4 - d <= - 5
c7: - C0 - A1 - A2 - C3 - A4 - d <= - 5
c8: - A0 - A1 - C2 - A3 - A4 - d <= - 5
c9: - C0 - A1 - A2 - C3 - A4 - d <= - 5
c10: + A0 + C0 + T0 + G0 = 1
c11: + A1 + C1 + T1 + G1 = 1
c12: + A2 + C2 + T2 + G2 = 1
c13: + A3 + C3 + T3 + G3 = 1
c14: + A4 + C4 + T4 + G4 = 1
Bounds
Binaries
A0 C0 T0 G0 A1 C1 T1 G1 A2 C2 T2 G2 A3 C3 T3 G3 A4 C4 T4 G4
End
37 changes: 37 additions & 0 deletions Outputs/input2.lp
@@ -0,0 +1,37 @@
Minimize
obj: d
Subject To
c0: - A0 - C1 - C2 - C3 - A4 - C5 - C6 - C7 - C8 - C9 - d <= - 10
c1: - A0 - C1 - A2 - A3 - C4 - A5 - A6 - C7 - C8 - A9 - d <= - 10
c2: - A0 - C1 - A2 - A3 - C4 - C5 - A6 - C7 - C8 - A9 - d <= - 10
c3: - A0 - A1 - C2 - A3 - A4 - C5 - C6 - A7 - C8 - C9 - d <= - 10
c4: - C0 - C1 - A2 - C3 - C4 - C5 - C6 - C7 - C8 - A9 - d <= - 10
c5: - A0 - C1 - C2 - A3 - C4 - C5 - A6 - C7 - C8 - C9 - d <= - 10
c6: - A0 - A1 - C2 - A3 - A4 - C5 - A6 - A7 - C8 - C9 - d <= - 10
c7: - C0 - C1 - A2 - A3 - C4 - A5 - A6 - C7 - A8 - A9 - d <= - 10
c8: - C0 - C1 - A2 - C3 - C4 - A5 - C6 - C7 - C8 - A9 - d <= - 10
c9: - C0 - C1 - C2 - C3 - C4 - C5 - A6 - C7 - A8 - C9 - d <= - 10
c10: - A0 - C1 - C2 - A3 - C4 - C5 - C6 - A7 - C8 - C9 - d <= - 10
c11: - C0 - A1 - C2 - C3 - C4 - A5 - C6 - C7 - C8 - C9 - d <= - 10
c12: - C0 - A1 - C2 - C3 - C4 - C5 - C6 - C7 - A8 - C9 - d <= - 10
c13: - A0 - A1 - C2 - C3 - A4 - C5 - C6 - A7 - C8 - C9 - d <= - 10
c14: - C0 - C1 - C2 - A3 - C4 - C5 - C6 - C7 - C8 - C9 - d <= - 10
c15: - C0 - A1 - A2 - C3 - C4 - A5 - C6 - C7 - A8 - C9 - d <= - 10
c16: - C0 - A1 - C2 - C3 - A4 - C5 - C6 - C7 - A8 - C9 - d <= - 10
c17: - A0 - C1 - C2 - C3 - C4 - C5 - C6 - A7 - C8 - A9 - d <= - 10
c18: - C0 - C1 - A2 - C3 - C4 - C5 - A6 - C7 - C8 - C9 - d <= - 10
c19: - C0 - A1 - A2 - C3 - A4 - A5 - C6 - C7 - A8 - C9 - d <= - 10
c20: + A0 + C0 + T0 + G0 = 1
c21: + A1 + C1 + T1 + G1 = 1
c22: + A2 + C2 + T2 + G2 = 1
c23: + A3 + C3 + T3 + G3 = 1
c24: + A4 + C4 + T4 + G4 = 1
c25: + A5 + C5 + T5 + G5 = 1
c26: + A6 + C6 + T6 + G6 = 1
c27: + A7 + C7 + T7 + G7 = 1
c28: + A8 + C8 + T8 + G8 = 1
c29: + A9 + C9 + T9 + G9 = 1
Bounds
Binaries
A0 C0 T0 G0 A1 C1 T1 G1 A2 C2 T2 G2 A3 C3 T3 G3 A4 C4 T4 G4 A5 C5 T5 G5 A6 C6 T6 G6 A7 C7 T7 G7 A8 C8 T8 G8 A9 C9 T9 G9
End
42 changes: 42 additions & 0 deletions Outputs/input3.lp
@@ -0,0 +1,42 @@
Minimize
obj: d
Subject To
c0: - C0 - A1 - T2 - A3 - C4 - G5 - T6 - A7 - A8 - A9 - A10 - G11 - A12 - A13 - A14 - G15 - G16 - C17 - G18 - G19 - A20 - C21 - A22 - A23 - T24 - d <= - 25
c1: - A0 - A1 - G2 - A3 - G4 - G5 - A6 - A7 - A8 - A9 - A10 - G11 - A12 - A13 - A14 - C15 - G16 - G17 - G18 - G19 - A20 - C21 - A22 - A23 - T24 - d <= - 25
c2: - C0 - A1 - G2 - A3 - G4 - G5 - T6 - A7 - A8 - A9 - A10 - G11 - T12 - A13 - A14 - G15 - G16 - C17 - G18 - G19 - A20 - C21 - T22 - A23 - T24 - d <= - 25
c3: - G0 - A1 - G2 - A3 - G4 - G5 - T6 - A7 - T8 - A9 - A10 - G11 - A12 - A13 - A14 - G15 - C16 - G17 - G18 - G19 - A20 - C21 - A22 - A23 - T24 - d <= - 25
c4: - G0 - A1 - G2 - A3 - G4 - G5 - T6 - A7 - A8 - A9 - A10 - G11 - T12 - A13 - A14 - G15 - G16 - G17 - G18 - G19 - A20 - C21 - A22 - A23 - A24 - d <= - 25
c5: - C0 - A1 - G2 - A3 - G4 - G5 - T6 - A7 - A8 - C9 - A10 - G11 - A12 - A13 - A14 - G15 - G16 - C17 - G18 - G19 - A20 - C21 - G22 - A23 - T24 - d <= - 25
c6: - T0 - A1 - G2 - A3 - G4 - G5 - T6 - A7 - A8 - C9 - A10 - G11 - A12 - A13 - A14 - G15 - C16 - G17 - G18 - G19 - A20 - C21 - A22 - A23 - T24 - d <= - 25
c7: - C0 - A1 - G2 - A3 - C4 - G5 - T6 - T7 - A8 - A9 - A10 - G11 - A12 - A13 - A14 - G15 - G16 - C17 - G18 - G19 - A20 - C21 - A22 - A23 - T24 - d <= - 25
c8: - C0 - C1 - G2 - A3 - G4 - G5 - T6 - A7 - A8 - A9 - A10 - C11 - A12 - A13 - A14 - G15 - G16 - G17 - G18 - A19 - A20 - C21 - A22 - A23 - T24 - d <= - 25
c9: - A0 - A1 - G2 - A3 - G4 - T5 - T6 - A7 - A8 - A9 - A10 - G11 - A12 - A13 - A14 - G15 - G16 - G17 - G18 - G19 - A20 - A21 - A22 - A23 - T24 - d <= - 25
c10: + A0 + C0 + T0 + G0 = 1
c11: + A1 + C1 + T1 + G1 = 1
c12: + A2 + C2 + T2 + G2 = 1
c13: + A3 + C3 + T3 + G3 = 1
c14: + A4 + C4 + T4 + G4 = 1
c15: + A5 + C5 + T5 + G5 = 1
c16: + A6 + C6 + T6 + G6 = 1
c17: + A7 + C7 + T7 + G7 = 1
c18: + A8 + C8 + T8 + G8 = 1
c19: + A9 + C9 + T9 + G9 = 1
c20: + A10 + C10 + T10 + G10 = 1
c21: + A11 + C11 + T11 + G11 = 1
c22: + A12 + C12 + T12 + G12 = 1
c23: + A13 + C13 + T13 + G13 = 1
c24: + A14 + C14 + T14 + G14 = 1
c25: + A15 + C15 + T15 + G15 = 1
c26: + A16 + C16 + T16 + G16 = 1
c27: + A17 + C17 + T17 + G17 = 1
c28: + A18 + C18 + T18 + G18 = 1
c29: + A19 + C19 + T19 + G19 = 1
c30: + A20 + C20 + T20 + G20 = 1
c31: + A21 + C21 + T21 + G21 = 1
c32: + A22 + C22 + T22 + G22 = 1
c33: + A23 + C23 + T23 + G23 = 1
c34: + A24 + C24 + T24 + G24 = 1
Bounds
Binaries
A0 C0 T0 G0 A1 C1 T1 G1 A2 C2 T2 G2 A3 C3 T3 G3 A4 C4 T4 G4 A5 C5 T5 G5 A6 C6 T6 G6 A7 C7 T7 G7 A8 C8 T8 G8 A9 C9 T9 G9 A10 C10 T10 G10 A11 C11 T11 G11 A12 C12 T12 G12 A13 C13 T13 G13 A14 C14 T14 G14 A15 C15 T15 G15 A16 C16 T16 G16 A17 C17 T17 G17 A18 C18 T18 G18 A19 C19 T19 G19 A20 C20 T20 G20 A21 C21 T21 G21 A22 C22 T22 G22 A23 C23 T23 G23 A24 C24 T24 G24
End
117 changes: 117 additions & 0 deletions Outputs/input4.lp
@@ -0,0 +1,117 @@
Minimize
obj: d
Subject To
c0: - C0 - T1 - G2 - G3 - C4 - G5 - G6 - T7 - G8 - G9 - C10 - T11 - A12 - T13 - C14 - A15 - T16 - C17 - C18 - G19 - T20 - C21 - C22 - C23 - T24 - C25 - A26 - T27 - G28 - C29 - G30 - A31 - G32 - T33 - G34 - G35 - T36 - C37 - G38 - G39 - T40 - G41 - A42 - T43 - A44 - G45 - C46 - T47 - C48 - G49 - G50 - A51 - A52 - G53 - T54 - G55 - T56 - G57 - A58 - G59 - G60 - A61 - A62 - T63 - C64 - C65 - G66 - T67 - A68 - G69 - A70 - G71 - A72 - A73 - T74 - G75 - A76 - A77 - C78 - T79 - A80 - A81 - G82 - T83 - A84 - G85 - T86 - T87 - C88 - A89 - C90 - C91 - T92 - T93 - A94 - C95 - C96 - C97 - T98 - C99 - d <= - 100
c1: - C0 - C1 - A2 - A3 - C4 - A5 - C6 - T7 - C8 - A9 - T10 - A11 - T12 - C13 - G14 - T15 - C16 - T17 - T18 - G19 - C20 - T21 - A22 - C23 - T24 - T25 - G26 - A27 - C28 - T29 - C30 - C31 - T32 - T33 - T34 - T35 - T36 - T37 - A38 - T39 - T40 - C41 - A42 - T43 - A44 - T45 - T46 - T47 - T48 - C49 - A50 - A51 - T52 - A53 - C54 - T55 - C56 - G57 - A58 - C59 - C60 - T61 - T62 - C63 - C64 - A65 - C66 - G67 - A68 - A69 - G70 - G71 - C72 - T73 - G74 - G75 - G76 - A77 - T78 - T79 - C80 - A81 - C82 - C83 - T84 - C85 - C86 - C87 - T88 - T89 - T90 - C91 - C92 - G93 - C94 - T95 - G96 - A97 - A98 - T99 - d <= - 100
c2: - C0 - A1 - G2 - A3 - G4 - G5 - T6 - A7 - A8 - A9 - A10 - G11 - A12 - A13 - A14 - G15 - G16 - G17 - G18 - G19 - A20 - C21 - A22 - A23 - T24 - G25 - A26 - T27 - A28 - A29 - T30 - C31 - G32 - T33 - A34 - G35 - A36 - A37 - T38 - T39 - A40 - A41 - A42 - T43 - A44 - A45 - G46 - A47 - C48 - A49 - G50 - G51 - T52 - G53 - T54 - C55 - G56 - A57 - T58 - T59 - A60 - C61 - G62 - A63 - C64 - C65 - C66 - A67 - T68 - T69 - T70 - C71 - C72 - C73 - T74 - T75 - C76 - G77 - C78 - T79 - T80 - A81 - C82 - G83 - G84 - A85 - T86 - G87 - T88 - A89 - T90 - A91 - G92 - G93 - C94 - G95 - T96 - C97 - T98 - C99 - d <= - 100
c3: - A0 - G1 - T2 - A3 - T4 - A5 - G6 - G7 - G8 - T9 - G10 - A11 - A12 - A13 - T14 - A15 - G16 - C17 - G18 - G19 - C20 - T21 - A22 - T23 - A24 - A25 - C26 - C27 - C28 - A29 - T30 - T31 - T32 - C33 - C34 - A35 - T36 - G37 - C38 - G39 - G40 - A41 - C42 - T43 - C44 - G45 - G46 - A47 - A48 - C49 - T50 - G51 - C52 - T53 - A54 - G55 - T56 - A57 - G58 - T59 - C60 - T61 - C62 - A63 - G64 - T65 - C66 - A67 - T68 - C69 - G70 - G71 - G72 - A73 - T74 - C75 - A76 - A77 - C78 - G79 - T80 - T81 - G82 - A83 - T84 - A85 - T86 - G87 - C88 - T89 - A90 - G91 - G92 - T93 - C94 - C95 - G96 - A97 - G98 - A99 - d <= - 100
c4: - G0 - G1 - A2 - G3 - G4 - T5 - G6 - T7 - C8 - T9 - A10 - C11 - A12 - G13 - A14 - C15 - A16 - G17 - C18 - C19 - G20 - C21 - C22 - C23 - A24 - A25 - A26 - G27 - T28 - A29 - A30 - G31 - G32 - C33 - G34 - G35 - A36 - A37 - T38 - G39 - G40 - T41 - C42 - G43 - T44 - A45 - A46 - G47 - A48 - G49 - C50 - T51 - T52 - T53 - C54 - C55 - T56 - C57 - G58 - T59 - C60 - G61 - T62 - C63 - G64 - A65 - C66 - T67 - A68 - A69 - G70 - A71 - T72 - T73 - A74 - T75 - C76 - T77 - T78 - C79 - T80 - T81 - A82 - T83 - G84 - A85 - A86 - A87 - C88 - A89 - A90 - C91 - G92 - A93 - G94 - A95 - C96 - C97 - T98 - T99 - d <= - 100
c5: - C0 - A1 - A2 - A3 - A4 - T5 - T6 - G7 - A8 - A9 - A10 - G11 - T12 - C13 - T14 - G15 - T16 - A17 - A18 - G19 - G20 - A21 - T22 - A23 - T24 - A25 - G26 - A27 - G28 - G29 - A30 - C31 - T32 - C33 - C34 - C35 - G36 - C37 - A38 - T39 - T40 - T41 - C42 - A43 - G44 - C45 - A46 - A47 - C48 - C49 - T50 - A51 - T52 - G53 - A54 - T55 - G56 - G57 - C58 - T59 - A60 - G61 - G62 - C63 - T64 - T65 - C66 - A67 - T68 - C69 - T70 - A71 - C72 - C73 - C74 - C75 - G76 - C77 - T78 - G79 - G80 - G81 - T82 - C83 - T84 - C85 - A86 - T87 - C88 - C89 - C90 - T91 - G92 - G93 - T94 - T95 - T96 - T97 - C98 - C99 - d <= - 100
c6: - G0 - G1 - C2 - C3 - G4 - T5 - C6 - G7 - A8 - G9 - C10 - C11 - T12 - G13 - C14 - T15 - C16 - C17 - A18 - A19 - T20 - T21 - C22 - T23 - C24 - C25 - A26 - C27 - T28 - A29 - T30 - C31 - G32 - G33 - G34 - C35 - T36 - T37 - G38 - C39 - C40 - C41 - C42 - T43 - A44 - G45 - T46 - A47 - A48 - G49 - A50 - A51 - G52 - C53 - G54 - C55 - T56 - C57 - A58 - G59 - T60 - C61 - C62 - A63 - C64 - G65 - G66 - T67 - A68 - C69 - G70 - G71 - C72 - A73 - A74 - C75 - G76 - C77 - A78 - G79 - T80 - A81 - A82 - A83 - A84 - A85 - C86 - A87 - C88 - T89 - T90 - A91 - G92 - A93 - C94 - T95 - A96 - A97 - A98 - G99 - d <= - 100
c7: - C0 - A1 - T2 - T3 - G4 - A5 - C6 - T7 - A8 - T9 - A10 - G11 - C12 - T13 - T14 - G15 - A16 - G17 - T18 - C19 - G20 - C21 - G22 - T23 - G24 - C25 - A26 - T27 - G28 - T29 - T30 - G31 - T32 - T33 - A34 - C35 - A36 - A37 - T38 - C39 - C40 - T41 - C42 - A43 - A44 - C45 - C46 - C47 - T48 - C49 - G50 - G51 - G52 - C53 - G54 - A55 - G56 - C57 - G58 - G59 - A60 - A61 - C62 - T63 - T64 - G65 - T66 - C67 - T68 - T69 - C70 - T71 - C72 - A73 - G74 - C75 - T76 - T77 - G78 - C79 - T80 - T81 - T82 - C83 - A84 - A85 - A86 - G87 - G88 - C89 - C90 - T91 - T92 - A93 - C94 - C95 - C96 - T97 - T98 - C99 - d <= - 100
c8: - G0 - T1 - C2 - C3 - G4 - C5 - A6 - C7 - T8 - T9 - G10 - C11 - C12 - T13 - A14 - C15 - C16 - T17 - A18 - A19 - G20 - G21 - C22 - T23 - G24 - G25 - A26 - C27 - G28 - C29 - A30 - A31 - C32 - A33 - C34 - C35 - A36 - A37 - T38 - A39 - T40 - T41 - A42 - A43 - C44 - G45 - G46 - G47 - C48 - T49 - T50 - A51 - G52 - C53 - C54 - T55 - G56 - G57 - A58 - G59 - T60 - T61 - G62 - A63 - C64 - C65 - G66 - G67 - A68 - T69 - C70 - C71 - T72 - G73 - G74 - C75 - C76 - G77 - A78 - C79 - C80 - T81 - C82 - T83 - A84 - C85 - T86 - C87 - G88 - G89 - C90 - G91 - C92 - C93 - C94 - G95 - T96 - T97 - G98 - C99 - d <= - 100
c9: - G0 - C1 - A2 - C3 - C4 - C5 - A6 - T7 - C8 - T9 - C10 - A11 - G12 - T13 - A14 - G15 - T16 - G17 - T18 - C19 - A20 - C21 - G22 - A23 - A24 - C25 - G26 - A27 - G28 - G29 - A30 - T31 - A32 - G33 - C34 - T35 - G36 - A37 - C38 - G39 - A40 - T41 - G42 - T43 - A44 - A45 - A46 - T47 - G48 - T49 - T50 - C51 - T52 - G53 - G54 - T55 - C56 - A57 - A58 - G59 - C60 - C61 - G62 - G63 - C64 - A65 - T66 - T67 - G68 - C69 - G70 - G71 - T72 - G73 - T74 - G75 - A76 - A77 - T78 - T79 - A80 - A81 - C82 - T83 - A84 - T85 - C86 - T87 - G88 - C89 - C90 - T91 - A92 - C93 - G94 - C95 - A96 - G97 - G98 - G99 - d <= - 100
c10: + A0 + C0 + T0 + G0 = 1
c11: + A1 + C1 + T1 + G1 = 1
c12: + A2 + C2 + T2 + G2 = 1
c13: + A3 + C3 + T3 + G3 = 1
c14: + A4 + C4 + T4 + G4 = 1
c15: + A5 + C5 + T5 + G5 = 1
c16: + A6 + C6 + T6 + G6 = 1
c17: + A7 + C7 + T7 + G7 = 1
c18: + A8 + C8 + T8 + G8 = 1
c19: + A9 + C9 + T9 + G9 = 1
c20: + A10 + C10 + T10 + G10 = 1
c21: + A11 + C11 + T11 + G11 = 1
c22: + A12 + C12 + T12 + G12 = 1
c23: + A13 + C13 + T13 + G13 = 1
c24: + A14 + C14 + T14 + G14 = 1
c25: + A15 + C15 + T15 + G15 = 1
c26: + A16 + C16 + T16 + G16 = 1
c27: + A17 + C17 + T17 + G17 = 1
c28: + A18 + C18 + T18 + G18 = 1
c29: + A19 + C19 + T19 + G19 = 1
c30: + A20 + C20 + T20 + G20 = 1
c31: + A21 + C21 + T21 + G21 = 1
c32: + A22 + C22 + T22 + G22 = 1
c33: + A23 + C23 + T23 + G23 = 1
c34: + A24 + C24 + T24 + G24 = 1
c35: + A25 + C25 + T25 + G25 = 1
c36: + A26 + C26 + T26 + G26 = 1
c37: + A27 + C27 + T27 + G27 = 1
c38: + A28 + C28 + T28 + G28 = 1
c39: + A29 + C29 + T29 + G29 = 1
c40: + A30 + C30 + T30 + G30 = 1
c41: + A31 + C31 + T31 + G31 = 1
c42: + A32 + C32 + T32 + G32 = 1
c43: + A33 + C33 + T33 + G33 = 1
c44: + A34 + C34 + T34 + G34 = 1
c45: + A35 + C35 + T35 + G35 = 1
c46: + A36 + C36 + T36 + G36 = 1
c47: + A37 + C37 + T37 + G37 = 1
c48: + A38 + C38 + T38 + G38 = 1
c49: + A39 + C39 + T39 + G39 = 1
c50: + A40 + C40 + T40 + G40 = 1
c51: + A41 + C41 + T41 + G41 = 1
c52: + A42 + C42 + T42 + G42 = 1
c53: + A43 + C43 + T43 + G43 = 1
c54: + A44 + C44 + T44 + G44 = 1
c55: + A45 + C45 + T45 + G45 = 1
c56: + A46 + C46 + T46 + G46 = 1
c57: + A47 + C47 + T47 + G47 = 1
c58: + A48 + C48 + T48 + G48 = 1
c59: + A49 + C49 + T49 + G49 = 1
c60: + A50 + C50 + T50 + G50 = 1
c61: + A51 + C51 + T51 + G51 = 1
c62: + A52 + C52 + T52 + G52 = 1
c63: + A53 + C53 + T53 + G53 = 1
c64: + A54 + C54 + T54 + G54 = 1
c65: + A55 + C55 + T55 + G55 = 1
c66: + A56 + C56 + T56 + G56 = 1
c67: + A57 + C57 + T57 + G57 = 1
c68: + A58 + C58 + T58 + G58 = 1
c69: + A59 + C59 + T59 + G59 = 1
c70: + A60 + C60 + T60 + G60 = 1
c71: + A61 + C61 + T61 + G61 = 1
c72: + A62 + C62 + T62 + G62 = 1
c73: + A63 + C63 + T63 + G63 = 1
c74: + A64 + C64 + T64 + G64 = 1
c75: + A65 + C65 + T65 + G65 = 1
c76: + A66 + C66 + T66 + G66 = 1
c77: + A67 + C67 + T67 + G67 = 1
c78: + A68 + C68 + T68 + G68 = 1
c79: + A69 + C69 + T69 + G69 = 1
c80: + A70 + C70 + T70 + G70 = 1
c81: + A71 + C71 + T71 + G71 = 1
c82: + A72 + C72 + T72 + G72 = 1
c83: + A73 + C73 + T73 + G73 = 1
c84: + A74 + C74 + T74 + G74 = 1
c85: + A75 + C75 + T75 + G75 = 1
c86: + A76 + C76 + T76 + G76 = 1
c87: + A77 + C77 + T77 + G77 = 1
c88: + A78 + C78 + T78 + G78 = 1
c89: + A79 + C79 + T79 + G79 = 1
c90: + A80 + C80 + T80 + G80 = 1
c91: + A81 + C81 + T81 + G81 = 1
c92: + A82 + C82 + T82 + G82 = 1
c93: + A83 + C83 + T83 + G83 = 1
c94: + A84 + C84 + T84 + G84 = 1
c95: + A85 + C85 + T85 + G85 = 1
c96: + A86 + C86 + T86 + G86 = 1
c97: + A87 + C87 + T87 + G87 = 1
c98: + A88 + C88 + T88 + G88 = 1
c99: + A89 + C89 + T89 + G89 = 1
c100: + A90 + C90 + T90 + G90 = 1
c101: + A91 + C91 + T91 + G91 = 1
c102: + A92 + C92 + T92 + G92 = 1
c103: + A93 + C93 + T93 + G93 = 1
c104: + A94 + C94 + T94 + G94 = 1
c105: + A95 + C95 + T95 + G95 = 1
c106: + A96 + C96 + T96 + G96 = 1
c107: + A97 + C97 + T97 + G97 = 1
c108: + A98 + C98 + T98 + G98 = 1
c109: + A99 + C99 + T99 + G99 = 1
Bounds
Binaries
A0 C0 T0 G0 A1 C1 T1 G1 A2 C2 T2 G2 A3 C3 T3 G3 A4 C4 T4 G4 A5 C5 T5 G5 A6 C6 T6 G6 A7 C7 T7 G7 A8 C8 T8 G8 A9 C9 T9 G9 A10 C10 T10 G10 A11 C11 T11 G11 A12 C12 T12 G12 A13 C13 T13 G13 A14 C14 T14 G14 A15 C15 T15 G15 A16 C16 T16 G16 A17 C17 T17 G17 A18 C18 T18 G18 A19 C19 T19 G19 A20 C20 T20 G20 A21 C21 T21 G21 A22 C22 T22 G22 A23 C23 T23 G23 A24 C24 T24 G24 A25 C25 T25 G25 A26 C26 T26 G26 A27 C27 T27 G27 A28 C28 T28 G28 A29 C29 T29 G29 A30 C30 T30 G30 A31 C31 T31 G31 A32 C32 T32 G32 A33 C33 T33 G33 A34 C34 T34 G34 A35 C35 T35 G35 A36 C36 T36 G36 A37 C37 T37 G37 A38 C38 T38 G38 A39 C39 T39 G39 A40 C40 T40 G40 A41 C41 T41 G41 A42 C42 T42 G42 A43 C43 T43 G43 A44 C44 T44 G44 A45 C45 T45 G45 A46 C46 T46 G46 A47 C47 T47 G47 A48 C48 T48 G48 A49 C49 T49 G49 A50 C50 T50 G50 A51 C51 T51 G51 A52 C52 T52 G52 A53 C53 T53 G53 A54 C54 T54 G54 A55 C55 T55 G55 A56 C56 T56 G56 A57 C57 T57 G57 A58 C58 T58 G58 A59 C59 T59 G59 A60 C60 T60 G60 A61 C61 T61 G61 A62 C62 T62 G62 A63 C63 T63 G63 A64 C64 T64 G64 A65 C65 T65 G65 A66 C66 T66 G66 A67 C67 T67 G67 A68 C68 T68 G68 A69 C69 T69 G69 A70 C70 T70 G70 A71 C71 T71 G71 A72 C72 T72 G72 A73 C73 T73 G73 A74 C74 T74 G74 A75 C75 T75 G75 A76 C76 T76 G76 A77 C77 T77 G77 A78 C78 T78 G78 A79 C79 T79 G79 A80 C80 T80 G80 A81 C81 T81 G81 A82 C82 T82 G82 A83 C83 T83 G83 A84 C84 T84 G84 A85 C85 T85 G85 A86 C86 T86 G86 A87 C87 T87 G87 A88 C88 T88 G88 A89 C89 T89 G89 A90 C90 T90 G90 A91 C91 T91 G91 A92 C92 T92 G92 A93 C93 T93 G93 A94 C94 T94 G94 A95 C95 T95 G95 A96 C96 T96 G96 A97 C97 T97 G97 A98 C98 T98 G98 A99 C99 T99 G99
End
66 changes: 46 additions & 20 deletions center_string.py
Expand Up @@ -37,12 +37,16 @@ OUTPUT

# Imports
import os
import sys

sys.path.append('/usr/local/lib/python2.7/dist-packages')
import cplex

# Absolutepath to inputs
path_to_inputs = "/home/moria/Projects/Bioinformatics/CenterStringLP/Inputs/"
path_to_outputs = "/home/moria/Projects/Bioinformatics/CenterStringLP/Outputs/"
bases = ['A','C','T','G']

# Absolutepath to inputs, outputs
path_to_inputs = '/home/moria/Projects/Bioinformatics/CenterStringLP/Inputs/'
path_to_outputs = '/home/moria/Projects/Bioinformatics/CenterStringLP/Outputs/'
bases = ['A','C','T','G']

for fn in os.listdir(path_to_inputs):
# Split filename into prefix, suffix
Expand All @@ -51,7 +55,7 @@ for fn in os.listdir(path_to_inputs):
# Reset line counter
line_num = 0
S = []
# Opeb the file
# Open the files
f_in = open(path_to_inputs+fn, 'r')
f_out = open(path_to_outputs+pre+'.lp', 'w')
for line in f_in:
Expand All @@ -64,35 +68,57 @@ for fn in os.listdir(path_to_inputs):
else:
S.append(str(line))

f_out.write("Minimize\n")
f_out.write(" obj: d\n")
f_out.write("Subject To\n")
count = 0
# Write LP
f_out.write('Minimize\n')
f_out.write(' obj: d\n')
f_out.write('Subject To\n')

count = 0 # Constraint counter

# For each sequence in S
for s in S:
equation = " "
equation = ' '
s = s.strip()
equation += "c" + str(count) + ": " + str(n)
equation += 'c' + str(count) + ': '
count += 1

# For each index, value in sequence s
for i,v in enumerate(s):
equation += " - " + str(v) + str(i)
equation += " - d <= 0\n"
equation += ' - ' + str(v) + str(i)
equation += ' - d <= - ' + str(n) + '\n'
f_out.write(equation)

for number in range(n):
constraint = " c" + str(count) + ": 0 <="
constraint = ' c' + str(count) + ': '
count += 1
for letter in bases:
constraint += " + " + letter + str(number)
constraint += " <= 1\n"
constraint += ' + ' + letter + str(number)
constraint += ' = 1\n'

f_out.write(constraint)
f_out.write("Binaries\n")
f_out.write('Bounds\n')
f_out.write('Binaries\n')
for number in range(n):
for letter in bases:
f_out.write(

f_out.write(' '+ letter + str(number))

f_out.write('\n')
f_out.write('End')


f_in.close()
f_out.close()


# Solve the problem, output solution
lp_problem = cplex.Cplex()
print 'Solving ' + pre + '.lp\n'
lp_problem.read(path_to_outputs+pre+'.lp')
lp_problem.solve()

soln = ''
for number in range(n):
for letter in bases:
if lp_problem.solution.get_values(letter+str(number)) == 1:
soln += letter
print "Center string is: " + soln + "\n"
print "d is " + str(lp_problem.solution.get_values('d')) + "\n"

0 comments on commit dac8c99

Please sign in to comment.