diff --git a/gyakorlatok/Feladatok_v1.docx b/gyakorlatok/Feladatok_v1.docx new file mode 100644 index 0000000..1b17222 Binary files /dev/null and b/gyakorlatok/Feladatok_v1.docx differ diff --git a/gyakorlatok/csarnok.mod b/gyakorlatok/csarnok.mod new file mode 100644 index 0000000..c36c5e7 --- /dev/null +++ b/gyakorlatok/csarnok.mod @@ -0,0 +1,10 @@ +var a >= 0, integer; +var b >= 0, integer; + +s.t. lemez: a*4000 + b*5000 <= 32000; +s.t. acel: a*3 + b*3 <= 24; +s.t. tetofedo: a*300 + b*200 <= 2000; +s.t. beton: a*200 + b*100 <= 1600; + +maximize nyereseg: a*4000 + b*5000; +end; \ No newline at end of file diff --git a/gyakorlatok/csarnok.out b/gyakorlatok/csarnok.out new file mode 100644 index 0000000..52864c6 --- /dev/null +++ b/gyakorlatok/csarnok.out @@ -0,0 +1,31 @@ +Problem: csarnok +Rows: 5 +Columns: 2 (2 integer, 0 binary) +Non-zeros: 10 +Status: INTEGER OPTIMAL +Objective: nyereseg = 32000 (MAXimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 lemez 32000 32000 + 2 acel 21 24 + 3 tetofedo 1700 2000 + 4 beton 1000 1600 + 5 nyereseg 32000 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 a * 3 0 + 2 b * 4 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/cvitamin.mod b/gyakorlatok/cvitamin.mod new file mode 100644 index 0000000..c7c9ced --- /dev/null +++ b/gyakorlatok/cvitamin.mod @@ -0,0 +1,9 @@ +var alma >= 0, integer; +var citrom >= 0, integer; + +s.t. kaloria: alma*80 + citrom*50 <= 400; +s.t. vitamin: alma*100 + citrom*300 >= 500; +s.t. vas: alma*0.5 + citrom*0.2 >= 1.2; + +minimize gyumolcs: alma*40 + citrom*60; +end; \ No newline at end of file diff --git a/gyakorlatok/cvitamin.out b/gyakorlatok/cvitamin.out new file mode 100644 index 0000000..45a1442 --- /dev/null +++ b/gyakorlatok/cvitamin.out @@ -0,0 +1,30 @@ +Problem: cvitamin +Rows: 4 +Columns: 2 (2 integer, 0 binary) +Non-zeros: 8 +Status: INTEGER OPTIMAL +Objective: gyumolcs = 140 (MINimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 kaloria 210 400 + 2 vitamin 500 500 + 3 vas 1.2 1.2 + 4 gyumolcs 140 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 alma * 2 0 + 2 citrom * 1 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/fesztival.mod b/gyakorlatok/fesztival.mod new file mode 100644 index 0000000..efe2d5a --- /dev/null +++ b/gyakorlatok/fesztival.mod @@ -0,0 +1,17 @@ +#Fesztival + +var F1 binary; +var F2 binary; +var F3 binary; +var F4 binary; +var F5 binary; + +s.t. Haggard: F1 + F3 + F4 >= 1; +s.t. Stratovarius: F1 + F2 + F3 + F5>= 1; +s.t. Epica: F1 + F2 + F4 + F5 >= 1; +s.t. Dalriada: F3 + F5 >= 1; +s.t. Apocalyptica: F4 >= 1; +s.t. Liva: F2 + F3 + F4 + F5 >= 1; +s.t. Eluveitie: F3 + F5 >= 1; + +minimize NumberOfFestivals: F1 + F2 + F3 + F4 + F5; \ No newline at end of file diff --git a/gyakorlatok/fesztival.out b/gyakorlatok/fesztival.out new file mode 100644 index 0000000..3471558 --- /dev/null +++ b/gyakorlatok/fesztival.out @@ -0,0 +1,38 @@ +Problem: fesztival +Rows: 8 +Columns: 5 (5 integer, 5 binary) +Non-zeros: 25 +Status: INTEGER OPTIMAL +Objective: NumberOfFestivals = 2 (MINimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 Haggard 2 1 + 2 Stratovarius 1 1 + 3 Epica 1 1 + 4 Dalriada 1 1 + 5 Apocalyptica 1 1 + 6 Liva 2 1 + 7 Eluveitie 1 1 + 8 NumberOfFestivals + 2 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 F1 * 0 0 1 + 2 F2 * 0 0 1 + 3 F3 * 1 0 1 + 4 F4 * 1 0 1 + 5 F5 * 0 0 1 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/forgatas.mod b/gyakorlatok/forgatas.mod new file mode 100644 index 0000000..fc32dd8 --- /dev/null +++ b/gyakorlatok/forgatas.mod @@ -0,0 +1,62 @@ +set Actors; +param salary {Actors} >=0; + +param sceneCount; +set Scene:=1..sceneCount; + +param time{Scene} >=0; + +param shooting {Scene, Actors} binary; + + +param dayCount; +set Days:=1..dayCount; + +param hoursADay; + + +var doScene{Scene, Days} binary; +var actorComeIn{Actors, Days} binary; + +#Max forgatási idő +s.t. MaxShootingHoursADay{d in Days}: sum{s in Scene} doScene[s, d] * time[s] <= hoursADay; + +#Forgat e a színész +s.t. IfActorActsADay{d in Days, s in Scene, a in Actors: shooting[s,a]==1}: doScene [s, d] <= actorComeIn[a, d]; + +#Minden jelenet legyen leforgatva +s.t. DoAllScene {s in Scene}: sum{d in Days} doScene[s, d]=1; + +minimize CostOfShooting: sum{ d in Days, a in Actors} actorComeIn[a, d] * salary [a]; + +data; +set Actors:= A B C D E; +param sceneCount:=5; +param dayCount:=10; +param hoursADay:=8; + + +param salary:= +A 180 +B 280 +C 250 +D 230 +E 450 +; + +param shooting: + A B C D E := +1 1 0 0 0 1 +2 0 1 1 1 0 +3 1 0 0 1 1 +4 0 1 1 0 0 +5 0 0 1 1 0 +; + +param time:= +1 1 +2 1.5 +3 2.3 +4 1.4 +5 1.7 +; \ No newline at end of file diff --git a/gyakorlatok/forgatas.out b/gyakorlatok/forgatas.out new file mode 100644 index 0000000..48d4834 --- /dev/null +++ b/gyakorlatok/forgatas.out @@ -0,0 +1,451 @@ +Problem: forgatas +Rows: 136 +Columns: 100 (100 integer, 100 binary) +Non-zeros: 390 +Status: INTEGER OPTIMAL +Objective: CostOfShooting = 1390 (MINimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 MaxShootingHoursADay[1] + 0 8 + 2 MaxShootingHoursADay[2] + 0 8 + 3 MaxShootingHoursADay[3] + 0 8 + 4 MaxShootingHoursADay[4] + 0 8 + 5 MaxShootingHoursADay[5] + 0 8 + 6 MaxShootingHoursADay[6] + 0 8 + 7 MaxShootingHoursADay[7] + 0 8 + 8 MaxShootingHoursADay[8] + 0 8 + 9 MaxShootingHoursADay[9] + 0 8 + 10 MaxShootingHoursADay[10] + 7.9 8 + 11 IfActorActsADay[1,1,A] + 0 -0 + 12 IfActorActsADay[1,1,E] + 0 -0 + 13 IfActorActsADay[1,2,B] + 0 -0 + 14 IfActorActsADay[1,2,C] + 0 -0 + 15 IfActorActsADay[1,2,D] + 0 -0 + 16 IfActorActsADay[1,3,A] + 0 -0 + 17 IfActorActsADay[1,3,D] + 0 -0 + 18 IfActorActsADay[1,3,E] + 0 -0 + 19 IfActorActsADay[1,4,B] + 0 -0 + 20 IfActorActsADay[1,4,C] + 0 -0 + 21 IfActorActsADay[1,5,C] + 0 -0 + 22 IfActorActsADay[1,5,D] + 0 -0 + 23 IfActorActsADay[2,1,A] + 0 -0 + 24 IfActorActsADay[2,1,E] + 0 -0 + 25 IfActorActsADay[2,2,B] + 0 -0 + 26 IfActorActsADay[2,2,C] + 0 -0 + 27 IfActorActsADay[2,2,D] + 0 -0 + 28 IfActorActsADay[2,3,A] + 0 -0 + 29 IfActorActsADay[2,3,D] + 0 -0 + 30 IfActorActsADay[2,3,E] + 0 -0 + 31 IfActorActsADay[2,4,B] + 0 -0 + 32 IfActorActsADay[2,4,C] + 0 -0 + 33 IfActorActsADay[2,5,C] + 0 -0 + 34 IfActorActsADay[2,5,D] + 0 -0 + 35 IfActorActsADay[3,1,A] + 0 -0 + 36 IfActorActsADay[3,1,E] + 0 -0 + 37 IfActorActsADay[3,2,B] + 0 -0 + 38 IfActorActsADay[3,2,C] + 0 -0 + 39 IfActorActsADay[3,2,D] + 0 -0 + 40 IfActorActsADay[3,3,A] + 0 -0 + 41 IfActorActsADay[3,3,D] + 0 -0 + 42 IfActorActsADay[3,3,E] + 0 -0 + 43 IfActorActsADay[3,4,B] + 0 -0 + 44 IfActorActsADay[3,4,C] + 0 -0 + 45 IfActorActsADay[3,5,C] + 0 -0 + 46 IfActorActsADay[3,5,D] + 0 -0 + 47 IfActorActsADay[4,1,A] + 0 -0 + 48 IfActorActsADay[4,1,E] + 0 -0 + 49 IfActorActsADay[4,2,B] + 0 -0 + 50 IfActorActsADay[4,2,C] + 0 -0 + 51 IfActorActsADay[4,2,D] + 0 -0 + 52 IfActorActsADay[4,3,A] + 0 -0 + 53 IfActorActsADay[4,3,D] + 0 -0 + 54 IfActorActsADay[4,3,E] + 0 -0 + 55 IfActorActsADay[4,4,B] + 0 -0 + 56 IfActorActsADay[4,4,C] + 0 -0 + 57 IfActorActsADay[4,5,C] + 0 -0 + 58 IfActorActsADay[4,5,D] + 0 -0 + 59 IfActorActsADay[5,1,A] + 0 -0 + 60 IfActorActsADay[5,1,E] + 0 -0 + 61 IfActorActsADay[5,2,B] + 0 -0 + 62 IfActorActsADay[5,2,C] + 0 -0 + 63 IfActorActsADay[5,2,D] + 0 -0 + 64 IfActorActsADay[5,3,A] + 0 -0 + 65 IfActorActsADay[5,3,D] + 0 -0 + 66 IfActorActsADay[5,3,E] + 0 -0 + 67 IfActorActsADay[5,4,B] + 0 -0 + 68 IfActorActsADay[5,4,C] + 0 -0 + 69 IfActorActsADay[5,5,C] + 0 -0 + 70 IfActorActsADay[5,5,D] + 0 -0 + 71 IfActorActsADay[6,1,A] + 0 -0 + 72 IfActorActsADay[6,1,E] + 0 -0 + 73 IfActorActsADay[6,2,B] + 0 -0 + 74 IfActorActsADay[6,2,C] + 0 -0 + 75 IfActorActsADay[6,2,D] + 0 -0 + 76 IfActorActsADay[6,3,A] + 0 -0 + 77 IfActorActsADay[6,3,D] + 0 -0 + 78 IfActorActsADay[6,3,E] + 0 -0 + 79 IfActorActsADay[6,4,B] + 0 -0 + 80 IfActorActsADay[6,4,C] + 0 -0 + 81 IfActorActsADay[6,5,C] + 0 -0 + 82 IfActorActsADay[6,5,D] + 0 -0 + 83 IfActorActsADay[7,1,A] + 0 -0 + 84 IfActorActsADay[7,1,E] + 0 -0 + 85 IfActorActsADay[7,2,B] + 0 -0 + 86 IfActorActsADay[7,2,C] + 0 -0 + 87 IfActorActsADay[7,2,D] + 0 -0 + 88 IfActorActsADay[7,3,A] + 0 -0 + 89 IfActorActsADay[7,3,D] + 0 -0 + 90 IfActorActsADay[7,3,E] + 0 -0 + 91 IfActorActsADay[7,4,B] + 0 -0 + 92 IfActorActsADay[7,4,C] + 0 -0 + 93 IfActorActsADay[7,5,C] + 0 -0 + 94 IfActorActsADay[7,5,D] + 0 -0 + 95 IfActorActsADay[8,1,A] + 0 -0 + 96 IfActorActsADay[8,1,E] + 0 -0 + 97 IfActorActsADay[8,2,B] + 0 -0 + 98 IfActorActsADay[8,2,C] + 0 -0 + 99 IfActorActsADay[8,2,D] + 0 -0 + 100 IfActorActsADay[8,3,A] + 0 -0 + 101 IfActorActsADay[8,3,D] + 0 -0 + 102 IfActorActsADay[8,3,E] + 0 -0 + 103 IfActorActsADay[8,4,B] + 0 -0 + 104 IfActorActsADay[8,4,C] + 0 -0 + 105 IfActorActsADay[8,5,C] + 0 -0 + 106 IfActorActsADay[8,5,D] + 0 -0 + 107 IfActorActsADay[9,1,A] + 0 -0 + 108 IfActorActsADay[9,1,E] + 0 -0 + 109 IfActorActsADay[9,2,B] + 0 -0 + 110 IfActorActsADay[9,2,C] + 0 -0 + 111 IfActorActsADay[9,2,D] + 0 -0 + 112 IfActorActsADay[9,3,A] + 0 -0 + 113 IfActorActsADay[9,3,D] + 0 -0 + 114 IfActorActsADay[9,3,E] + 0 -0 + 115 IfActorActsADay[9,4,B] + 0 -0 + 116 IfActorActsADay[9,4,C] + 0 -0 + 117 IfActorActsADay[9,5,C] + 0 -0 + 118 IfActorActsADay[9,5,D] + 0 -0 + 119 IfActorActsADay[10,1,A] + 0 -0 + 120 IfActorActsADay[10,1,E] + 0 -0 + 121 IfActorActsADay[10,2,B] + 0 -0 + 122 IfActorActsADay[10,2,C] + 0 -0 + 123 IfActorActsADay[10,2,D] + 0 -0 + 124 IfActorActsADay[10,3,A] + 0 -0 + 125 IfActorActsADay[10,3,D] + 0 -0 + 126 IfActorActsADay[10,3,E] + 0 -0 + 127 IfActorActsADay[10,4,B] + 0 -0 + 128 IfActorActsADay[10,4,C] + 0 -0 + 129 IfActorActsADay[10,5,C] + 0 -0 + 130 IfActorActsADay[10,5,D] + 0 -0 + 131 DoAllScene[1] + 1 1 = + 132 DoAllScene[2] + 1 1 = + 133 DoAllScene[3] + 1 1 = + 134 DoAllScene[4] + 1 1 = + 135 DoAllScene[5] + 1 1 = + 136 CostOfShooting + 1390 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 doScene[1,1] * 0 0 1 + 2 doScene[2,1] * 0 0 1 + 3 doScene[3,1] * 0 0 1 + 4 doScene[4,1] * 0 0 1 + 5 doScene[5,1] * 0 0 1 + 6 doScene[1,2] * 0 0 1 + 7 doScene[2,2] * 0 0 1 + 8 doScene[3,2] * 0 0 1 + 9 doScene[4,2] * 0 0 1 + 10 doScene[5,2] * 0 0 1 + 11 doScene[1,3] * 0 0 1 + 12 doScene[2,3] * 0 0 1 + 13 doScene[3,3] * 0 0 1 + 14 doScene[4,3] * 0 0 1 + 15 doScene[5,3] * 0 0 1 + 16 doScene[1,4] * 0 0 1 + 17 doScene[2,4] * 0 0 1 + 18 doScene[3,4] * 0 0 1 + 19 doScene[4,4] * 0 0 1 + 20 doScene[5,4] * 0 0 1 + 21 doScene[1,5] * 0 0 1 + 22 doScene[2,5] * 0 0 1 + 23 doScene[3,5] * 0 0 1 + 24 doScene[4,5] * 0 0 1 + 25 doScene[5,5] * 0 0 1 + 26 doScene[1,6] * 0 0 1 + 27 doScene[2,6] * 0 0 1 + 28 doScene[3,6] * 0 0 1 + 29 doScene[4,6] * 0 0 1 + 30 doScene[5,6] * 0 0 1 + 31 doScene[1,7] * 0 0 1 + 32 doScene[2,7] * 0 0 1 + 33 doScene[3,7] * 0 0 1 + 34 doScene[4,7] * 0 0 1 + 35 doScene[5,7] * 0 0 1 + 36 doScene[1,8] * 0 0 1 + 37 doScene[2,8] * 0 0 1 + 38 doScene[3,8] * 0 0 1 + 39 doScene[4,8] * 0 0 1 + 40 doScene[5,8] * 0 0 1 + 41 doScene[1,9] * 0 0 1 + 42 doScene[2,9] * 0 0 1 + 43 doScene[3,9] * 0 0 1 + 44 doScene[4,9] * 0 0 1 + 45 doScene[5,9] * 0 0 1 + 46 doScene[1,10] + * 1 0 1 + 47 doScene[2,10] + * 1 0 1 + 48 doScene[3,10] + * 1 0 1 + 49 doScene[4,10] + * 1 0 1 + 50 doScene[5,10] + * 1 0 1 + 51 actorComeIn[A,1] + * 0 0 1 + 52 actorComeIn[E,1] + * 0 0 1 + 53 actorComeIn[B,1] + * 0 0 1 + 54 actorComeIn[C,1] + * 0 0 1 + 55 actorComeIn[D,1] + * 0 0 1 + 56 actorComeIn[A,2] + * 0 0 1 + 57 actorComeIn[E,2] + * 0 0 1 + 58 actorComeIn[B,2] + * 0 0 1 + 59 actorComeIn[C,2] + * 0 0 1 + 60 actorComeIn[D,2] + * 0 0 1 + 61 actorComeIn[A,3] + * 0 0 1 + 62 actorComeIn[E,3] + * 0 0 1 + 63 actorComeIn[B,3] + * 0 0 1 + 64 actorComeIn[C,3] + * 0 0 1 + 65 actorComeIn[D,3] + * 0 0 1 + 66 actorComeIn[A,4] + * 0 0 1 + 67 actorComeIn[E,4] + * 0 0 1 + 68 actorComeIn[B,4] + * 0 0 1 + 69 actorComeIn[C,4] + * 0 0 1 + 70 actorComeIn[D,4] + * 0 0 1 + 71 actorComeIn[A,5] + * 0 0 1 + 72 actorComeIn[E,5] + * 0 0 1 + 73 actorComeIn[B,5] + * 0 0 1 + 74 actorComeIn[C,5] + * 0 0 1 + 75 actorComeIn[D,5] + * 0 0 1 + 76 actorComeIn[A,6] + * 0 0 1 + 77 actorComeIn[E,6] + * 0 0 1 + 78 actorComeIn[B,6] + * 0 0 1 + 79 actorComeIn[C,6] + * 0 0 1 + 80 actorComeIn[D,6] + * 0 0 1 + 81 actorComeIn[A,7] + * 0 0 1 + 82 actorComeIn[E,7] + * 0 0 1 + 83 actorComeIn[B,7] + * 0 0 1 + 84 actorComeIn[C,7] + * 0 0 1 + 85 actorComeIn[D,7] + * 0 0 1 + 86 actorComeIn[A,8] + * 0 0 1 + 87 actorComeIn[E,8] + * 0 0 1 + 88 actorComeIn[B,8] + * 0 0 1 + 89 actorComeIn[C,8] + * 0 0 1 + 90 actorComeIn[D,8] + * 0 0 1 + 91 actorComeIn[A,9] + * 0 0 1 + 92 actorComeIn[E,9] + * 0 0 1 + 93 actorComeIn[B,9] + * 0 0 1 + 94 actorComeIn[C,9] + * 0 0 1 + 95 actorComeIn[D,9] + * 0 0 1 + 96 actorComeIn[A,10] + * 1 0 1 + 97 actorComeIn[E,10] + * 1 0 1 + 98 actorComeIn[B,10] + * 1 0 1 + 99 actorComeIn[C,10] + * 1 0 1 + 100 actorComeIn[D,10] + * 1 0 1 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/froccs.mod b/gyakorlatok/froccs.mod new file mode 100644 index 0000000..3a51ee0 --- /dev/null +++ b/gyakorlatok/froccs.mod @@ -0,0 +1,23 @@ +var kf >=0, integer; +var nf >=0, integer; +var hl >=0, integer; +var hm >=0, integer; +var vh >=0, integer; +var krf >=0, integer; +var sf >=0, integer; +var pf >=0, integer; +var hu >=0, integer; +var lf >=0, integer; +var pm >=0, integer; +var maf >=0, integer; +var csat >=0, integer; +var lmp >=0, integer; +var kaszf >=0, integer; +var harm >=0, integer; + + +s.t. bor: kf*1 + nf*2 + hl*1 + hm*3 + vh*2 +krf*9 + sf*1 + pf*6 + hu*4 + lf*1 + pm*6 + maf*0.5 + csat*1 + lmp*1.5 + kaszf*7 +harm*1 <= 100; +s.t. szoda: kf*1 + nf*1 + hl*2 + hm*2 + vh*3 +krf*1 + sf*9 + pf*3 + hu*1 + lf*4 + pm*4 + maf*0.5 + csat*0.5 + lmp*0.5 + kaszf*3 +harm*5 <= 150; + +maximize arbevetel: (kf*200 + nf*330 + hl*210 + hm*470 + vh*400 + krf*1500 + sf*300 + pf*900 + hu*600 +lf*250 + pm*1000 + maf*150 + csat*170 + lmp*300 + kaszf*1100 +harm*300)*10; +end; \ No newline at end of file diff --git a/gyakorlatok/froccs.out b/gyakorlatok/froccs.out new file mode 100644 index 0000000..ffadc97 --- /dev/null +++ b/gyakorlatok/froccs.out @@ -0,0 +1,37 @@ +Problem: froccs +Rows: 3 +Columns: 10 (10 integer, 0 binary) +Non-zeros: 30 +Status: INTEGER OPTIMAL +Objective: arbevetel = 208200 (MAXimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 bor 100 100 + 2 szoda 150 150 + 3 arbevetel 208200 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 kf * 82 0 + 2 nf * 0 0 + 3 hl * 2 0 + 4 hm * 0 0 + 5 vh * 0 0 + 6 krf * 0 0 + 7 sf * 0 0 + 8 pf * 0 0 + 9 hu * 0 0 + 10 lf * 16 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/froccs_kie b/gyakorlatok/froccs_kie new file mode 100644 index 0000000..3a51ee0 --- /dev/null +++ b/gyakorlatok/froccs_kie @@ -0,0 +1,23 @@ +var kf >=0, integer; +var nf >=0, integer; +var hl >=0, integer; +var hm >=0, integer; +var vh >=0, integer; +var krf >=0, integer; +var sf >=0, integer; +var pf >=0, integer; +var hu >=0, integer; +var lf >=0, integer; +var pm >=0, integer; +var maf >=0, integer; +var csat >=0, integer; +var lmp >=0, integer; +var kaszf >=0, integer; +var harm >=0, integer; + + +s.t. bor: kf*1 + nf*2 + hl*1 + hm*3 + vh*2 +krf*9 + sf*1 + pf*6 + hu*4 + lf*1 + pm*6 + maf*0.5 + csat*1 + lmp*1.5 + kaszf*7 +harm*1 <= 100; +s.t. szoda: kf*1 + nf*1 + hl*2 + hm*2 + vh*3 +krf*1 + sf*9 + pf*3 + hu*1 + lf*4 + pm*4 + maf*0.5 + csat*0.5 + lmp*0.5 + kaszf*3 +harm*5 <= 150; + +maximize arbevetel: (kf*200 + nf*330 + hl*210 + hm*470 + vh*400 + krf*1500 + sf*300 + pf*900 + hu*600 +lf*250 + pm*1000 + maf*150 + csat*170 + lmp*300 + kaszf*1100 +harm*300)*10; +end; \ No newline at end of file diff --git a/gyakorlatok/froccs_kieg.mod b/gyakorlatok/froccs_kieg.mod new file mode 100644 index 0000000..8a54197 --- /dev/null +++ b/gyakorlatok/froccs_kieg.mod @@ -0,0 +1,46 @@ +var kf >=0, integer; +var nf >=0, integer; +var hl >=0, integer; +var hm >=0, integer; +var vh >=0, integer; +var krf >=0, integer; +var sf >=0, integer; +var pf >=0, integer; +var hu >=0, integer; +var lf >=0, integer; +var pm >=0, integer; +var maf >=0, integer; +var csat >=0, integer; +var lmp >=0, integer; +var kaszf >=0, integer; +var harm >=0, integer; + + +#extra +#Maci fröccs: 1 fehérbor, 1.9 szóda, 0.1 mszörp - 800 ft +#Szerencsésflótás: 1 fbor, 1 rum, 1 szóda - 900 ft +#Újházi fröccs: 1 fbor és 2 kuborka - 150 ft +#Nagy medve: 3 vbor, 1 rum, 1 kóla - 1200 ft +#kisvadász: 1 vbor, 1 kóla - 500 ft +#nagyvadász: 2 vbor, 1 kóla - 650 ft + +var maci >= 0, integer; +var szerencs >= 0, integer; +var uf >= 0, integer; +var nagym >= 0, integer; +var kisv >= 0, integer; +var nagyv >= 0, integer; + +#Málnaszörp: 10l, Rum 20 l, Uborka 10 l, kóla 20 l, vbor 50l + +s.t. bor: kf*1 + nf*2 + hl*1 + hm*3 + vh*2 +krf*9 + sf*1 + pf*6 + hu*4 + lf*1 + pm*6 + maf*0.5 + csat*1 + lmp*1.5 + kaszf*7 +harm*1 + maci*1 + szerencs*1 + uf*1 <= 1000; +s.t. szoda: kf*1 + nf*1 + hl*2 + hm*2 + vh*3 +krf*1 + sf*9 + pf*3 + hu*1 + lf*4 + pm*4 + maf*0.5 + csat*0.5 + lmp*0.5 + kaszf*3 +harm*5 + maci*1.9 + szerencs*1 <= 1500; + +s.t. rum: szerencs*1 +nagym*1 <= 200; +s.t. szorp: maci*0.1 <= 100; +s.t. uborka: uf*2 <= 100; +s.t. kola: nagym*1 + kisv*1 + nagyv*1 <= 200; +s.t. vbor: nagym*3 + kisv*1 + nagyv*2 <= 500; + +maximize arbevetel: (kf*200 + nf*330 + hl*210 + hm*470 + vh*400 + krf*1500 + sf*300 + pf*900 + hu*600 +lf*250 + pm*1000 + maf*150 + csat*170 + lmp*300 + kaszf*1100 +harm*300 + maci*800 + szerencs*900 + uf*150 + nagym*1200 + kisv*500 + nagyv*650); +end; \ No newline at end of file diff --git a/gyakorlatok/froccs_kieg.out b/gyakorlatok/froccs_kieg.out new file mode 100644 index 0000000..03794d0 --- /dev/null +++ b/gyakorlatok/froccs_kieg.out @@ -0,0 +1,54 @@ +Problem: froccs_kieg +Rows: 8 +Columns: 22 (22 integer, 0 binary) +Non-zeros: 69 +Status: INTEGER OPTIMAL +Objective: arbevetel = 886250 (MAXimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 bor 1000 1000 + 2 szoda 1500 1500 + 3 rum 200 200 + 4 szorp 73 100 + 5 uborka 90 100 + 6 kola 200 200 + 7 vbor 500 500 + 8 arbevetel 886250 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 kf * 0 0 + 2 nf * 0 0 + 3 hl * 0 0 + 4 hm * 0 0 + 5 vh * 0 0 + 6 krf * 14 0 + 7 sf * 0 0 + 8 pf * 0 0 + 9 hu * 0 0 + 10 lf * 0 0 + 11 pm * 0 0 + 12 maf * 0 0 + 13 csat * 0 0 + 14 lmp * 0 0 + 15 kaszf * 0 0 + 16 harm * 0 0 + 17 maci * 730 0 + 18 szerencs * 99 0 + 19 uf * 45 0 + 20 nagym * 101 0 + 21 kisv * 1 0 + 22 nagyv * 98 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/froccs_kieg_2 b/gyakorlatok/froccs_kieg_2 new file mode 100644 index 0000000..9dc7456 --- /dev/null +++ b/gyakorlatok/froccs_kieg_2 @@ -0,0 +1,21 @@ +set Froccs; +set Ingredients; + +var kf >=0, integer; +var nf >=0, integer; +var hl >=0, integer; +var hm >=0, integer; +var vh >=0, integer; +var krf >=0, integer; +var sf >=0, integer; +var pf >=0, integer; +var hu >=0, integer; +var lf >=0, integer; + + + +s.t. bor: kf*1 + nf*2 + hl*1 + hm*3 + vh*2 +krf*9 + sf*1 + pf*6 + hu*4 + lf*1 <= 1000; +s.t. szoda: kf*1 + nf*1 + hl*2 + hm*2 + vh*3 +krf*1 + sf*9 + pf*3 + hu*1 + lf*4 <= 1500; + +maximize arbevetel: (kf*200 + nf*330 + hl*210 + hm*470 + vh*400 + krf*1500 + sf*300 + pf*900 + hu*600 +lf*250 ); +end; \ No newline at end of file diff --git a/gyakorlatok/froccs_kieg_2.mod b/gyakorlatok/froccs_kieg_2.mod new file mode 100644 index 0000000..4f840bf --- /dev/null +++ b/gyakorlatok/froccs_kieg_2.mod @@ -0,0 +1,48 @@ +set Froccs; +set Ingredients; +var Sale {Froccs} >= 0, integer; + +param HowMany {Froccs, Ingredients}; +param Price {Froccs}; +param Use {Ingredients}; + +s.t. UseIngredietns{i in Ingredients}:sum{f in Froccs}HowMany[f,i]*Sale[f] <= Use[i]; +maximize TotalIncome: sum{f in Froccs} Sale[f]*Price[f]; + +data; +set Froccs:= kf, nf, hl, hm, vh, krf, sf, pf, hu, lf; +set Ingredients:= Wine, Soda; + +param HowMany: + Wine Soda:= +kf 1 1 +nf 2 1 +hl 1 2 +hm 3 2 +vh 2 3 +krf 9 1 +sf 1 9 +pf 6 3 +hu 4 1 +lf 1 4 +; + +param Price:= +kf 200 +nf 330 +hl 210 +hm 470 +vh 400 +krf 1500 +sf 300 +pf 900 +hu 600 +lf 250 +; + +param Use:= +Wine 1000 +Soda 1500 +; + +end; \ No newline at end of file diff --git a/gyakorlatok/froccs_kieg_2.out b/gyakorlatok/froccs_kieg_2.out new file mode 100644 index 0000000..54486a5 --- /dev/null +++ b/gyakorlatok/froccs_kieg_2.out @@ -0,0 +1,39 @@ +Problem: froccs_kieg_2 +Rows: 3 +Columns: 10 (10 integer, 0 binary) +Non-zeros: 30 +Status: INTEGER OPTIMAL +Objective: TotalIncome = 208320 (MAXimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 UseIngredietns[Wine] + 1000 1000 + 2 UseIngredietns[Soda] + 1500 1500 + 3 TotalIncome 208320 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 Sale[kf] * 832 0 + 2 Sale[nf] * 0 0 + 3 Sale[hl] * 2 0 + 4 Sale[hm] * 0 0 + 5 Sale[vh] * 0 0 + 6 Sale[krf] * 0 0 + 7 Sale[sf] * 0 0 + 8 Sale[pf] * 0 0 + 9 Sale[hu] * 0 0 + 10 Sale[lf] * 166 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/gyartas.mod b/gyakorlatok/gyartas.mod new file mode 100644 index 0000000..ee01e68 --- /dev/null +++ b/gyakorlatok/gyartas.mod @@ -0,0 +1,9 @@ +var T1 >= 0, integer; +var T2 >= 0, integer; + +s.t. G1: 3*T1 + 4*T2 <=130; +s.t. G2: 4*T1 + 6*T2 <=130; +s.t. szerelde: 1*T1 + 2*T2 <= 60; + +maximize arbevetel: 8*T1 + 10*T2; +end; \ No newline at end of file diff --git a/gyakorlatok/gyartas.out b/gyakorlatok/gyartas.out new file mode 100644 index 0000000..f08a13e --- /dev/null +++ b/gyakorlatok/gyartas.out @@ -0,0 +1,30 @@ +Problem: gyartas +Rows: 4 +Columns: 2 (2 integer, 0 binary) +Non-zeros: 8 +Status: INTEGER OPTIMAL +Objective: arbevetel = 258 (MAXimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 G1 97 130 + 2 G2 130 130 + 3 szerelde 33 60 + 4 arbevetel 258 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 T1 * 31 0 + 2 T2 * 1 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/happy.mod b/gyakorlatok/happy.mod new file mode 100644 index 0000000..ff2fdc5 --- /dev/null +++ b/gyakorlatok/happy.mod @@ -0,0 +1,28 @@ +#Happy feladat +#Webes projekt csapat, 3-4 fő, minden jobban kell magát éreznie a csapattagoknak és a skilleknek is meg kell lennie +# |Frontend|Backend |Database| CSS |Agility |DevOps | +#Tibor | | X | | X | | | +#Dávid | X | | | X | | | +#Botond | | | X | | X | | +#Bence | | X | X | X | | X | +#Márk | X | | | | X | | +#Balázs | | | X | | | X | + +#Kedveltség: Tibor 0, Dávid 8, Botond -2, Bence 4, Márk 3, Balázs -10 + +var t binary; +var d binary; +var bo binary; +var be binary; +var m binary; +var b binary; + +s.t. front: d+m >= 1; +s.t. back: t+be >= 1; +s.t. datab: bo+be+b >= 1; +s.t. css: t+d+be >= 1; +s.t. agi: bo+m >= 1; +s.t. dev: be+b >= 1; +s.t. letszam: 3 <= t + d + bo + be + m + b <= 4; + +maximize skill: t*0+d*8+bo*(-2)+be*4+m*3+b*(-10); \ No newline at end of file diff --git a/gyakorlatok/happy.out b/gyakorlatok/happy.out new file mode 100644 index 0000000..ba13545 --- /dev/null +++ b/gyakorlatok/happy.out @@ -0,0 +1,38 @@ +Problem: happy +Rows: 8 +Columns: 6 (6 integer, 6 binary) +Non-zeros: 25 +Status: INTEGER OPTIMAL +Objective: skill = 15 (MAXimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 front 2 1 + 2 back 2 1 + 3 datab 1 1 + 4 css 3 1 + 5 agi 1 1 + 6 dev 1 1 + 7 letszam 4 3 4 + 8 skill 15 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 t * 1 0 1 + 2 d * 1 0 1 + 3 bo * 0 0 1 + 4 be * 1 0 1 + 5 m * 1 0 1 + 6 b * 0 0 1 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/hatizsak.mod b/gyakorlatok/hatizsak.mod new file mode 100644 index 0000000..bd17cf2 --- /dev/null +++ b/gyakorlatok/hatizsak.mod @@ -0,0 +1,10 @@ +var tura >=0, integer; +var mini >=0, integer; + +s.t. munkaido: 45 * tura + 40 * mini <= 35*(40*60); +s.t. maxt: tura <= 100; +s.t. maxm: mini <= 1200; +s.t. anyag: tura * 3 + 2 * mini <= 5400; + +maximize haszon: tura * 32 + mini * 24; +end; \ No newline at end of file diff --git a/gyakorlatok/hatizsak.out b/gyakorlatok/hatizsak.out new file mode 100644 index 0000000..518cddd --- /dev/null +++ b/gyakorlatok/hatizsak.out @@ -0,0 +1,31 @@ +Problem: hatizsak +Rows: 5 +Columns: 2 (2 integer, 0 binary) +Non-zeros: 8 +Status: INTEGER OPTIMAL +Objective: haszon = 32000 (MAXimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 munkaido 52500 84000 + 2 maxt 100 100 + 3 maxm 1200 1200 + 4 anyag 2700 5400 + 5 haszon 32000 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 tura * 100 0 + 2 mini * 1200 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/lekvar.mod b/gyakorlatok/lekvar.mod new file mode 100644 index 0000000..336436f --- /dev/null +++ b/gyakorlatok/lekvar.mod @@ -0,0 +1,8 @@ +var lekvar >= 0, integer; +var befott >= 0, integer; + +s.t. cukor: lekvar*40 + befott*40 <= 8000; +s.t. gyum: lekvar*80 + befott*40 <= 12000; + +maximize profit: lekvar*120 + befott*80; +end; \ No newline at end of file diff --git a/gyakorlatok/lekvar.out b/gyakorlatok/lekvar.out new file mode 100644 index 0000000..ec52c45 --- /dev/null +++ b/gyakorlatok/lekvar.out @@ -0,0 +1,29 @@ +Problem: lekvar +Rows: 3 +Columns: 2 (2 integer, 0 binary) +Non-zeros: 6 +Status: INTEGER OPTIMAL +Objective: profit = 20000 (MAXimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 cukor 8000 8000 + 2 gyum 12000 12000 + 3 profit 20000 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 lekvar * 100 0 + 2 befott * 100 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/malom.mod b/gyakorlatok/malom.mod new file mode 100644 index 0000000..5a03df1 --- /dev/null +++ b/gyakorlatok/malom.mod @@ -0,0 +1,76 @@ +# Halmazok és paraméterek +set Mezo; # Mező +set Malom; # Malom +set Pekseg; # Pékségek + +param Buza {Mezo} >= 0; # Mezőn termelt búza +param MalomKapacitas {Malom} >= 0; # Malmok kapacitása +param TavolsagMezoMalom {Mezo, Malom} >= 0; # Mező és malom közötti távolság +param TavolsagMalomPekseg {Malom, Pekseg} >= 0; # Malom és pékség közötti távolság + +param TeherautoKapacitas; # Teherautó kapacitása (kg) +param OrlesArany; # Őrlési arány (liszt/búza) +param UresFogyasztas; # Üres teherautó fogyasztás (l/100 km) +param ValtozoFogyasztas; # Változó fogyasztás (l/kg/100 km) +param Benzinar; # Benzin ára (Ft/100 km) + +# Változók +var SzallitasMezoMalom {Mezo, Malom} >= 0; # Szállított búza mennyisége mezőről malomba +var SzallitasMalomPekseg {Malom, Pekseg} >= 0; # Szállított liszt mennyisége malomból pékségbe + +# Korlátozások + +# Minden mezőről csak a termelt mennyiség szállítható +s.t. KeszletKorlatozas {m in Mezo}: + sum {l in Malom} SzallitasMezoMalom[m, l] <= Buza[m]; + +# Malom kapacitásának figyelembevétele +s.t. MalomKapacitasKorlatozas {l in Malom}: + sum {m in Mezo} SzallitasMezoMalom[m, l] <= MalomKapacitas[l]; + +# Őrlési arány figyelembevétele (malomból csak a megfelelő lisztmennyiséget lehet szállítani) +s.t. OrlesiAranyKorlatozas {l in Malom}: + sum {p in Pekseg} SzallitasMalomPekseg[l, p] <= sum {m in Mezo} SzallitasMezoMalom[m, l] * OrlesArany; + +# Költségfüggvény +minimize TeljesUzemanyagKoltseg: + # Mezőről malmokba szállítás + sum {m in Mezo, l in Malom} + (UresFogyasztas + ValtozoFogyasztas * SzallitasMezoMalom[m, l]) * TavolsagMezoMalom[m, l] * Benzinar + + + # Malmokból pékségekbe szállítás + sum {l in Malom, p in Pekseg} + (UresFogyasztas + ValtozoFogyasztas * SzallitasMalomPekseg[l, p]) * TavolsagMalomPekseg[l, p] * Benzinar; + +# Adatok +data; +set Mezo := mezo1 mezo2 mezo3 mezo4; +set Malom := malom1 malom2; +set Pekseg := pek1 pek2 pek3; + +param Buza := + mezo1 36526 + mezo2 12368 + mezo3 25634 + mezo4 9999; + +param MalomKapacitas := + malom1 50000 + malom2 60000; + +param TavolsagMezoMalom : malom1 malom2 := + mezo1 201 79 + mezo2 174 143 + mezo3 107 102 + mezo4 130 21; + +param TavolsagMalomPekseg : pek1 pek2 pek3 := + malom1 184 98 60 + malom2 79 58 159; + +param TeherautoKapacitas := 500; +param OrlesArany := 0.9; +param UresFogyasztas := 10; +param ValtozoFogyasztas := 0.006; +param Benzinar := 600; +end; diff --git a/gyakorlatok/malom.out b/gyakorlatok/malom.out new file mode 100644 index 0000000..bd27401 --- /dev/null +++ b/gyakorlatok/malom.out @@ -0,0 +1,78 @@ +Problem: malom +Rows: 9 +Columns: 14 +Non-zeros: 44 +Status: OPTIMAL +Objective: TeljesUzemanyagKoltseg = 9570000 (MINimum) + + No. Row name St Activity Lower bound Upper bound Marginal +------ ------------ -- ------------- ------------- ------------- ------------- + 1 KeszletKorlatozas[mezo1] + B 0 36526 + 2 KeszletKorlatozas[mezo2] + B 0 12368 + 3 KeszletKorlatozas[mezo3] + B 0 25634 + 4 KeszletKorlatozas[mezo4] + B 0 9999 + 5 MalomKapacitasKorlatozas[malom1] + B 0 50000 + 6 MalomKapacitasKorlatozas[malom2] + B 0 60000 + 7 OrlesiAranyKorlatozas[malom1] + B 0 -0 + 8 OrlesiAranyKorlatozas[malom2] + B 0 -0 + 9 TeljesUzemanyagKoltseg + B 0 + + No. Column name St Activity Lower bound Upper bound Marginal +------ ------------ -- ------------- ------------- ------------- ------------- + 1 SzallitasMezoMalom[mezo1,malom1] + NL 0 0 723.6 + 2 SzallitasMezoMalom[mezo1,malom2] + NL 0 0 284.4 + 3 SzallitasMezoMalom[mezo2,malom1] + NL 0 0 626.4 + 4 SzallitasMezoMalom[mezo2,malom2] + NL 0 0 514.8 + 5 SzallitasMezoMalom[mezo3,malom1] + NL 0 0 385.2 + 6 SzallitasMezoMalom[mezo3,malom2] + NL 0 0 367.2 + 7 SzallitasMezoMalom[mezo4,malom1] + NL 0 0 468 + 8 SzallitasMezoMalom[mezo4,malom2] + NL 0 0 75.6 + 9 SzallitasMalomPekseg[malom1,pek1] + NL 0 0 662.4 + 10 SzallitasMalomPekseg[malom1,pek2] + NL 0 0 352.8 + 11 SzallitasMalomPekseg[malom1,pek3] + NL 0 0 216 + 12 SzallitasMalomPekseg[malom2,pek1] + NL 0 0 284.4 + 13 SzallitasMalomPekseg[malom2,pek2] + NL 0 0 208.8 + 14 SzallitasMalomPekseg[malom2,pek3] + NL 0 0 572.4 + +Karush-Kuhn-Tucker optimality conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.DE: max.abs.err = 0.00e+00 on column 0 + max.rel.err = 0.00e+00 on column 0 + High quality + +KKT.DB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/mikulas.mod b/gyakorlatok/mikulas.mod new file mode 100644 index 0000000..4a56516 --- /dev/null +++ b/gyakorlatok/mikulas.mod @@ -0,0 +1,22 @@ +var cs1, binary; +var cs2, binary; +var cs3, binary; +var cs4, binary; +var cs5, binary; + +var y1 >= 0, integer; +var y2 >= 0, integer; +var y3 >= 0, integer; +var y4 >= 0, integer; +var y5 >= 0, integer; +var y6 >= 0, integer; + +s.t. bcsoki: cs2 + cs4 + cs5 - y1 = 1; +s.t. bnarancs: cs1 + cs4 - y2 = 1; +s.t. bmogyoro: cs1 + cs2 - y3 = 1; +s.t. bvirgacs: cs3 + cs5 - y4 = 1; +s.t. bkinder: cs3 + cs4 - y5 = 1; +s.t. bgumicukor: cs2 + cs3 - y6 = 1; + +minimize koltseg: (5*cs1 + cs2*10 + cs3*3 + cs4*4 + cs5*6) + (y1*2 + y2*3 + y3*1 + y4*4 + y5*5 + y6*6); +end; \ No newline at end of file diff --git a/gyakorlatok/mikulas.out b/gyakorlatok/mikulas.out new file mode 100644 index 0000000..6b0ea0d --- /dev/null +++ b/gyakorlatok/mikulas.out @@ -0,0 +1,42 @@ +Problem: mikulas +Rows: 7 +Columns: 11 (11 integer, 5 binary) +Non-zeros: 30 +Status: INTEGER OPTIMAL +Objective: koltseg = 18 (MINimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 bcsoki 1 1 = + 2 bnarancs 1 1 = + 3 bmogyoro 1 1 = + 4 bvirgacs 1 1 = + 5 bkinder 1 1 = + 6 bgumicukor 1 1 = + 7 koltseg 18 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 cs1 * 1 0 1 + 2 cs2 * 0 0 1 + 3 cs3 * 1 0 1 + 4 cs4 * 0 0 1 + 5 cs5 * 1 0 1 + 6 y1 * 0 0 + 7 y2 * 0 0 + 8 y3 * 0 0 + 9 y4 * 1 0 + 10 y5 * 0 0 + 11 y6 * 0 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/szabo.mod b/gyakorlatok/szabo.mod new file mode 100644 index 0000000..bae9353 --- /dev/null +++ b/gyakorlatok/szabo.mod @@ -0,0 +1,9 @@ +var ing >= 0, integer; +var szoknya >= 0, integer; + +s.t. anyag: ing*3 + szoknya*4 <= 12; +s.t. ido: ing*5 + szoknya*2 = 10; +s.t. darab: ing + szoknya >= 4; + +maximize ruha: ing*4 + szoknya*3; +end; \ No newline at end of file diff --git a/gyakorlatok/szabo.out b/gyakorlatok/szabo.out new file mode 100644 index 0000000..4d98c09 --- /dev/null +++ b/gyakorlatok/szabo.out @@ -0,0 +1,30 @@ +Problem: szabo +Rows: 4 +Columns: 2 (2 integer, 0 binary) +Non-zeros: 8 +Status: INTEGER EMPTY +Objective: ruha = 0 (MAXimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 anyag 0 12 + 2 ido 0 10 = + 3 darab 0 4 + 4 ruha 0 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 ing * 0 0 + 2 szoknya * 0 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 1.00e+01 on row 2 + max.rel.err = 9.09e-01 on row 2 + SOLUTION IS INFEASIBLE + +End of output diff --git a/gyakorlatok/szendvicsek.mod b/gyakorlatok/szendvicsek.mod new file mode 100644 index 0000000..c1354b8 --- /dev/null +++ b/gyakorlatok/szendvicsek.mod @@ -0,0 +1,18 @@ +#Két féle szendvicset készítünk +#Szalámis szendvics - 3 gramm vaj, 3 karika tojás, 2 szelet szalámi +#Sonkás szendvics - 4 gramm vaj 2 karika tojás, 1 szelet sonka +#Összesen 100 szelet szalámi, 40 szelet sonka, 170 karika tojás és 220 gramm vaj van. Kenyér szelet korlátlan +#Melyik fajta szendvicsből mennyit kell készíteni, ahhoz, hogy a lehető legtöbb szendvicset tudjam elkészíteni + +#Megoldás: + +var sonkas >= 0, integer; +var szalamis >= 0, integer; + +s.t. vaj: 3* szalamis + 4* sonkas <= 220; +s.t. tojas: 3* szalamis + 2* sonkas <= 170; +s.t. szalami: 2* szalamis <= 100; +s.t. sonka: 1* sonkas <= 40; + +maximize szendvicsekszama: sonkas + szalamis; +end; \ No newline at end of file diff --git a/gyakorlatok/szendvicsek.out b/gyakorlatok/szendvicsek.out new file mode 100644 index 0000000..1af6f63 --- /dev/null +++ b/gyakorlatok/szendvicsek.out @@ -0,0 +1,32 @@ +Problem: szendvicsek +Rows: 5 +Columns: 2 (2 integer, 0 binary) +Non-zeros: 8 +Status: INTEGER OPTIMAL +Objective: szendvicsekszama = 65 (MAXimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 vaj 220 220 + 2 tojas 170 170 + 3 szalami 80 100 + 4 sonka 25 40 + 5 szendvicsekszama + 65 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 sonkas * 25 0 + 2 szalamis * 40 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output diff --git a/gyakorlatok/tabletta b/gyakorlatok/tabletta new file mode 100644 index 0000000..dfbe951 --- /dev/null +++ b/gyakorlatok/tabletta @@ -0,0 +1,9 @@ +var eper >= 0, integer; +var spenot >=0, integer; + +s.t. ossztabletta: eper + spenot <= 8 +s.t. vizsgasiker: eper*7+spenot*10 >=60; +s.t. osszetetel: spenot <= epres; + +minimize tabletta: eper*1500 + spenot*2000; +end; \ No newline at end of file diff --git a/gyakorlatok/tabletta.mod b/gyakorlatok/tabletta.mod new file mode 100644 index 0000000..3358b30 --- /dev/null +++ b/gyakorlatok/tabletta.mod @@ -0,0 +1,9 @@ +var eper >=0, integer; +var spenot >=0, integer; + +s.t. ossztabletta: eper + spenot <= 8; +s.t. vizsgasiker: eper*7 + spenot*10 >=60; +s.t. osszetetel: spenot <= eper; + +minimize tabletta: eper*1500 + spenot*2000; +end; \ No newline at end of file diff --git a/gyakorlatok/tabletta.out b/gyakorlatok/tabletta.out new file mode 100644 index 0000000..b8f25d7 --- /dev/null +++ b/gyakorlatok/tabletta.out @@ -0,0 +1,30 @@ +Problem: tabletta +Rows: 4 +Columns: 2 (2 integer, 0 binary) +Non-zeros: 8 +Status: INTEGER OPTIMAL +Objective: tabletta = 13000 (MINimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 ossztabletta 8 8 + 2 vizsgasiker 62 60 + 3 osszetetel -4 -0 + 4 tabletta 13000 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 eper * 6 0 + 2 spenot * 2 0 + +Integer feasibility conditions: + +KKT.PE: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +KKT.PB: max.abs.err = 0.00e+00 on row 0 + max.rel.err = 0.00e+00 on row 0 + High quality + +End of output