diff --git a/Outputs/input1.lp b/Outputs/input1.lp new file mode 100644 index 0000000..fc154f0 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/Outputs/input2.lp b/Outputs/input2.lp new file mode 100644 index 0000000..5b72bfe --- /dev/null +++ b/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 \ No newline at end of file diff --git a/Outputs/input3.lp b/Outputs/input3.lp new file mode 100644 index 0000000..a7bfea9 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/Outputs/input4.lp b/Outputs/input4.lp new file mode 100644 index 0000000..180fd35 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/center_string.py b/center_string.py index 4b1a2ab..d6692b3 100644 --- a/center_string.py +++ b/center_string.py @@ -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 @@ -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: @@ -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" diff --git a/output.txt b/output.txt new file mode 100644 index 0000000..818b66c --- /dev/null +++ b/output.txt @@ -0,0 +1,189 @@ +Solving input4.lp + +Found incumbent of value 100.000000 after 0.00 sec. (0.02 ticks) +Tried aggregator 1 time. +MIP Presolve eliminated 0 rows and 21 columns. +Reduced MIP has 110 rows, 380 columns, and 1389 nonzeros. +Reduced MIP has 379 binaries, 0 generals, 0 SOSs, and 0 indicators. +Presolve time = 0.00 sec. (0.58 ticks) +Probing fixed 0 vars, tightened 1 bounds. +Probing time = 0.00 sec. (2.10 ticks) +Tried aggregator 1 time. +Reduced MIP has 110 rows, 380 columns, and 1389 nonzeros. +Reduced MIP has 379 binaries, 1 generals, 0 SOSs, and 0 indicators. +Presolve time = 0.00 sec. (0.64 ticks) +Probing time = 0.00 sec. (0.24 ticks) +Clique table members: 100. +MIP emphasis: balance optimality and feasibility. +MIP search method: dynamic search. +Parallel mode: deterministic, using up to 2 threads. +Root relaxation solution time = 0.00 sec. (1.85 ticks) + + Nodes Cuts/ + Node Left Objective IInf Best Integer Best Bound ItCnt Gap + +* 0+ 0 100.0000 1.0000 143 99.00% +* 0+ 0 87.0000 1.0000 143 98.85% +* 0+ 0 85.0000 1.0000 143 98.82% + 0 0 58.1362 19 85.0000 58.1362 143 31.60% +* 0+ 0 59.0000 58.1362 143 1.46% + 0 0 cutoff 59.0000 58.1362 143 1.46% +Elapsed time = 0.01 sec. (6.47 ticks, tree = 0.00 MB, solutions = 4) + +Root node processing (before b&c): + Real time = 0.01 sec. (6.49 ticks) +Parallel b&c, 2 threads: + Real time = 0.00 sec. (0.00 ticks) + Sync time (average) = 0.00 sec. + Wait time (average) = 0.00 sec. + ------------ +Total (root+branch&cut) = 0.01 sec. (6.49 ticks) +Center string is: CGAAGACTATAAATAGCGAGGCCTTAAAGAACTTCCAATGTTCTAGAACCTATGCTTGAGCTGACACTACGGCATCGATTTTCTAATGCTCCGACCCATC + +d is 59.0 + +Solving input3.lp + +Found incumbent of value 25.000000 after 0.00 sec. (0.01 ticks) +Tried aggregator 2 times. +MIP Presolve eliminated 0 rows and 54 columns. +Aggregator did 7 substitutions. +Reduced MIP has 28 rows, 40 columns, and 229 nonzeros. +Reduced MIP has 39 binaries, 0 generals, 0 SOSs, and 0 indicators. +Presolve time = 0.00 sec. (0.31 ticks) +Probing fixed 0 vars, tightened 1 bounds. +Probing time = 0.00 sec. (0.07 ticks) +Tried aggregator 1 time. +MIP Presolve eliminated 16 rows and 20 columns. +Reduced MIP has 12 rows, 20 columns, and 157 nonzeros. +Reduced MIP has 16 binaries, 4 generals, 0 SOSs, and 0 indicators. +Presolve time = 0.00 sec. (0.11 ticks) +Probing time = 0.00 sec. (0.01 ticks) +Tried aggregator 1 time. +Reduced MIP has 12 rows, 20 columns, and 157 nonzeros. +Reduced MIP has 16 binaries, 4 generals, 0 SOSs, and 0 indicators. +Presolve time = 0.00 sec. (0.06 ticks) +Probing time = 0.00 sec. (0.01 ticks) +Clique table members: 2. +MIP emphasis: balance optimality and feasibility. +MIP search method: dynamic search. +Parallel mode: deterministic, using up to 2 threads. +Root relaxation solution time = 0.00 sec. (0.03 ticks) + + Nodes Cuts/ + Node Left Objective IInf Best Integer Best Bound ItCnt Gap + +* 0+ 0 25.0000 1.0000 3 96.00% +* 0+ 0 5.0000 1.0000 3 80.00% +* 0 0 integral 0 3.0000 3.0000 3 0.00% +Elapsed time = 0.00 sec. (0.71 ticks, tree = 0.00 MB, solutions = 2) + +Root node processing (before b&c): + Real time = 0.00 sec. (0.71 ticks) +Parallel b&c, 2 threads: + Real time = 0.00 sec. (0.00 ticks) + Sync time (average) = 0.00 sec. + Wait time (average) = 0.00 sec. + ------------ +Total (root+branch&cut) = 0.00 sec. (0.71 ticks) +Center string is: CAGAGGTAAAAGAAAGGGGGACAAT + +d is 3.0 + +Solving input1.lp + +Found incumbent of value 5.000000 after 0.00 sec. (0.00 ticks) +Tried aggregator 1 time. +MIP Presolve eliminated 2 rows and 10 columns. +Reduced MIP has 13 rows, 11 columns, and 58 nonzeros. +Reduced MIP has 10 binaries, 0 generals, 0 SOSs, and 0 indicators. +Presolve time = 0.00 sec. (0.05 ticks) +Probing fixed 0 vars, tightened 1 bounds. +Probing time = 0.00 sec. (0.01 ticks) +Tried aggregator 1 time. +MIP Presolve eliminated 5 rows and 5 columns. +Reduced MIP has 8 rows, 6 columns, and 48 nonzeros. +Reduced MIP has 5 binaries, 1 generals, 0 SOSs, and 0 indicators. +Presolve time = 0.00 sec. (0.02 ticks) +Probing time = 0.00 sec. (0.00 ticks) +Tried aggregator 1 time. +Reduced MIP has 8 rows, 6 columns, and 48 nonzeros. +Reduced MIP has 5 binaries, 1 generals, 0 SOSs, and 0 indicators. +Presolve time = 0.00 sec. (0.02 ticks) +Probing time = 0.00 sec. (0.00 ticks) +MIP emphasis: balance optimality and feasibility. +MIP search method: dynamic search. +Parallel mode: deterministic, using up to 2 threads. +Root relaxation solution time = 0.00 sec. (0.02 ticks) + + Nodes Cuts/ + Node Left Objective IInf Best Integer Best Bound ItCnt Gap + +* 0+ 0 5.0000 1.0000 6 80.00% +* 0+ 0 4.0000 1.0000 6 75.00% + 0 0 2.5000 2 4.0000 2.5000 6 37.50% +* 0+ 0 3.0000 2.5000 6 16.67% + 0 0 cutoff 3.0000 3.0000 6 0.00% +Elapsed time = 0.03 sec. (0.17 ticks, tree = 0.00 MB, solutions = 3) + +Root node processing (before b&c): + Real time = 0.03 sec. (0.17 ticks) +Parallel b&c, 2 threads: + Real time = 0.00 sec. (0.00 ticks) + Sync time (average) = 0.00 sec. + Wait time (average) = 0.00 sec. + ------------ +Total (root+branch&cut) = 0.03 sec. (0.17 ticks) +Center string is: AAACC + +d is 3.0 + +Solving input2.lp + +Found incumbent of value 10.000000 after 0.00 sec. (0.01 ticks) +Tried aggregator 1 time. +MIP Presolve eliminated 0 rows and 20 columns. +Reduced MIP has 30 rows, 21 columns, and 240 nonzeros. +Reduced MIP has 20 binaries, 0 generals, 0 SOSs, and 0 indicators. +Presolve time = 0.00 sec. (0.17 ticks) +Probing fixed 0 vars, tightened 1 bounds. +Probing time = 0.00 sec. (0.05 ticks) +Tried aggregator 1 time. +MIP Presolve eliminated 10 rows and 10 columns. +Reduced MIP has 20 rows, 11 columns, and 220 nonzeros. +Reduced MIP has 10 binaries, 1 generals, 0 SOSs, and 0 indicators. +Presolve time = 0.00 sec. (0.09 ticks) +Probing time = 0.00 sec. (0.01 ticks) +Tried aggregator 1 time. +Reduced MIP has 20 rows, 11 columns, and 220 nonzeros. +Reduced MIP has 10 binaries, 1 generals, 0 SOSs, and 0 indicators. +Presolve time = 0.00 sec. (0.08 ticks) +Probing time = 0.00 sec. (0.01 ticks) +MIP emphasis: balance optimality and feasibility. +MIP search method: dynamic search. +Parallel mode: deterministic, using up to 2 threads. +Root relaxation solution time = 0.00 sec. (0.06 ticks) + + Nodes Cuts/ + Node Left Objective IInf Best Integer Best Bound ItCnt Gap + +* 0+ 0 10.0000 1.0000 12 90.00% +* 0+ 0 6.0000 1.0000 12 83.33% + 0 0 5.0000 2 6.0000 5.0000 12 16.67% + 0 0 cutoff 6.0000 13 0.00% +Elapsed time = 0.00 sec. (0.71 ticks, tree = 0.00 MB, solutions = 2) + +Gomory fractional cuts applied: 1 + +Root node processing (before b&c): + Real time = 0.00 sec. (0.71 ticks) +Parallel b&c, 2 threads: + Real time = 0.00 sec. (0.00 ticks) + Sync time (average) = 0.00 sec. + Wait time (average) = 0.00 sec. + ------------ +Total (root+branch&cut) = 0.00 sec. (0.71 ticks) +Center string is: ACAAACCCCC + +d is 6.0 +