diff --git a/sajat_gyakorlasok/mikulasbuntetessel.mod b/sajat_gyakorlasok/mikulasbuntetessel.mod new file mode 100644 index 0000000..5a02465 --- /dev/null +++ b/sajat_gyakorlasok/mikulasbuntetessel.mod @@ -0,0 +1,39 @@ +#Mikulás csomagok összeállítása: +#A Mikulás csomag tartalma a következő legyen - csoki, narancs, mogyoró, virgács, kindertojás és gumicukor +#Összetevő csomagok amiből választhatok - +#Az 1. csomag ára 5 pénzegység - narancsot és mogyorót tartalmaz. +#A 2. csomag ára 10 pénzegység - gumicukor, mogyoró, csoki +#A 3. csomag ára 3 pénzegység - gumicukor, kinder, virgács +#A 4. csomag ára 4 pénzegység - narancs, kinder, csoki +#A 5. csomag ára 6 pénzegység - csoki, virgács +#Milyen csomagokat vegyünk az általunk összeállított Mikulás csomaghoz, úgy hogy minél kevesebb költségünkbe kerüljön? + +#Az előző feladat kiegészítése- +#Ha valamiből felesleg marad, azért büntetés jár. +#A csokiért 2 pénzegység a büntetés. A narancs 3, a mogyoró 1, virgács 4, kindertojás 5 és a gumicukor 6 pénzegység büntetést von maga után. Milyen csomagokat vegyünk a Mikulás csomagunk összeállításához, ha minimálisan szeretnénk költekezni és minimális büntetést szeretnénk kapni a végén. + + +var csomag1 binary; +var csomag2 binary; +var csomag3 binary; +var csomag4 binary; +var csomag5 binary; + +var plusszcsoki >= 0 integer; +var plussznarancs >= 0 integer; +var plusszmogyoro >= 0 integer; +var plusszvirgacs >= 0 integer; +var plusszkinder >= 0 integer; +var plusszgumi >= 0 integer; + +s.t. csoki: csomag2 + csomag4 + csomag5 - plusszcsoki = 1; +s.t. narancs: csomag1 + csomag4 - plussznarancs = 1; +s.t. mogyoro: csomag1 + csomag2 - plusszmogyoro = 1; +s.t. virgacs: csomag3 + csomag5 - plusszvirgacs = 1; +s.t. kinder: csomag3 + csomag4 - plusszkinder = 1; +s.t. gumi: csomag2 + csomag3 - plusszgumi = 1; + +minimize koltseg: csomag1 * 5 + csomag2 * 10 + csomag3 * 3 + csomag4 * 4 + csomag5 * 6 + +plusszcsoki * 2 + plussznarancs * 3 + plusszmogyoro * 1 + plusszvirgacs * 4 + plusszkinder * 5 + plusszgumi * 6; + +end; diff --git a/sajat_gyakorlasok/mikulasbuntetessel.out b/sajat_gyakorlasok/mikulasbuntetessel.out new file mode 100644 index 0000000..82e9e26 --- /dev/null +++ b/sajat_gyakorlasok/mikulasbuntetessel.out @@ -0,0 +1,45 @@ +Problem: mikulasbuntetessel +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 csoki 1 1 = + 2 narancs 1 1 = + 3 mogyoro 1 1 = + 4 virgacs 1 1 = + 5 kinder 1 1 = + 6 gumi 1 1 = + 7 koltseg 18 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 csomag1 * 1 0 1 + 2 csomag2 * 0 0 1 + 3 csomag3 * 1 0 1 + 4 csomag4 * 0 0 1 + 5 csomag5 * 1 0 1 + 6 plusszcsoki * 0 0 + 7 plussznarancs + * 0 0 + 8 plusszmogyoro + * 0 0 + 9 plusszvirgacs + * 1 0 + 10 plusszkinder * 0 0 + 11 plusszgumi * 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/sajat_gyakorlasok/mikulascsomag.mod b/sajat_gyakorlasok/mikulascsomag.mod index 3bbfa4d..80a0240 100644 --- a/sajat_gyakorlasok/mikulascsomag.mod +++ b/sajat_gyakorlasok/mikulascsomag.mod @@ -8,3 +8,21 @@ #A 5. csomag ára 6 pénzegység - csoki, virgács #Milyen csomagokat vegyünk az általunk összeállított Mikulás csomaghoz, úgy hogy minél kevesebb költségünkbe kerüljön? +var csomag1 binary; +var csomag2 binary; +var csomag3 binary; +var csomag4 binary; +var csomag5 binary; + +s.t. csoki: csomag2 + csomag4 + csomag5 >= 1; +s.t. narancs: csomag1 + csomag4 >= 1; +s.t. mogyoro: csomag1 + csomag2 >= 1; +s.t. virgacs: csomag3 + csomag5 >= 1; +s.t. kinder: csomag3 + csomag4 >= 1; +s.t. gumi: csomag2 + csomag3 >= 1; + +minimize koltseg: csomag1 * 5 + csomag2 * 10 + csomag3 * 3 + csomag4 * 4 + csomag5 * 6; + +end; + + diff --git a/sajat_gyakorlasok/mikulascsomag.out b/sajat_gyakorlasok/mikulascsomag.out new file mode 100644 index 0000000..58d1f77 --- /dev/null +++ b/sajat_gyakorlasok/mikulascsomag.out @@ -0,0 +1,36 @@ +Problem: mikulascsomag +Rows: 7 +Columns: 5 (5 integer, 5 binary) +Non-zeros: 18 +Status: INTEGER OPTIMAL +Objective: koltseg = 12 (MINimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 csoki 1 1 + 2 narancs 2 1 + 3 mogyoro 1 1 + 4 virgacs 1 1 + 5 kinder 2 1 + 6 gumi 1 1 + 7 koltseg 12 + + No. Column name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 csomag1 * 1 0 1 + 2 csomag2 * 0 0 1 + 3 csomag3 * 1 0 1 + 4 csomag4 * 1 0 1 + 5 csomag5 * 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/sajat_gyakorlasok/szerelde.mod b/sajat_gyakorlasok/szerelde.mod new file mode 100644 index 0000000..c80f87c --- /dev/null +++ b/sajat_gyakorlasok/szerelde.mod @@ -0,0 +1,21 @@ +#Egy üzemben 2 terméket gyártanak, 2 gépen folyik a gyártás. +#T1 megmunkálása 1. gépen 3 óra, második gépen pedig 4 óra. +#T2 megmunkálása 4 és 6 óra. +#Gép1 kapacitása - 130 óra +#Gép2 kapacitása - 200 óra +#Szerelése a terméknek - T1 1óra, T2 - 2óra. +#Szerelde kapacitása - 60 óra +#Eladási egységár - T1 - 8 +# T2 - 10 +#Milyen termékösszetételben érdemes gyártani, ha maximális árbevételre törekszünk, úgy hogy a gépek kapacitását nem lépjük túl, a szerelde pedig teljes kapacitással (=) dolgozik. + +var T1 >= 0 integer; +var T2 >= 0 integer; + +s.t. gep1kapacitas: T1 * 3 + T2 * 4 <= 130; +s.t. gep2kapacitas: T1 * 4 + T2 * 6 <= 200; +s.t. szereles: T1 * 1 + T2 * 2 = 60; + +maximize profit: T1 * 8 + T2 * 10; + +end; \ No newline at end of file diff --git a/sajat_gyakorlasok/szerelde.out b/sajat_gyakorlasok/szerelde.out new file mode 100644 index 0000000..58913dd --- /dev/null +++ b/sajat_gyakorlasok/szerelde.out @@ -0,0 +1,38 @@ +Problem: szerelde +Rows: 4 +Columns: 2 +Non-zeros: 8 +Status: OPTIMAL +Objective: arbevetel = 330 (MAXimum) + + No. Row name St Activity Lower bound Upper bound Marginal +------ ------------ -- ------------- ------------- ------------- ------------- + 1 szerelesiido NS 60 60 = -1 + 2 gep1 NU 130 130 3 + 3 gep2 B 190 200 + 4 arbevetel B 330 + + No. Column name St Activity Lower bound Upper bound Marginal +------ ------------ -- ------------- ------------- ------------- ------------- + 1 T1 B 10 0 + 2 T2 B 25 0 + +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/sajat_gyakorlasok/szoknyaing.mod b/sajat_gyakorlasok/szoknyaing.mod new file mode 100644 index 0000000..97ed0ec --- /dev/null +++ b/sajat_gyakorlasok/szoknyaing.mod @@ -0,0 +1,13 @@ +#Egy kis szabóságban ingeket és szoknyákat készítenek. Egy ingen 4$ , a szoknyán pedig 3$ nyeresége van a szabóságnak. Egy ing elkészítéséhez 3m anyag és 5 óra szükséges. Egy szoknya esetén ez 4m és 2 óra. A cég vezetője elvárja a varrónőktől, hogy napi 10 órás munkaidőben dolgozzanak, és ezalatt legalább 4 ruhadarabot készítsenek el, és legfeljebb 12m anyagot használjanak. +#Hány ing és hány szoknya megvarrásával érhető el egy varrónő esetén a maximális profit? + +var ing >= 0, integer; +var szoknya >= 0, integer; + +s.t. ido: ing * 5 + szoknya * 2 = 10; +s.t. anyag: ing * 3 + szoknya * 4 <= 12; +s.t. minanyag: ing + szoknya >= 4; + +maximize profit: ing * 4 + szoknya * 3; + +end; \ No newline at end of file diff --git a/sajat_gyakorlasok/szoknyaing.out b/sajat_gyakorlasok/szoknyaing.out new file mode 100644 index 0000000..482d760 --- /dev/null +++ b/sajat_gyakorlasok/szoknyaing.out @@ -0,0 +1,30 @@ +Problem: szoknyaing +Rows: 4 +Columns: 2 (2 integer, 0 binary) +Non-zeros: 8 +Status: INTEGER EMPTY +Objective: profit = 0 (MAXimum) + + No. Row name Activity Lower bound Upper bound +------ ------------ ------------- ------------- ------------- + 1 ido 0 10 = + 2 anyag 0 12 + 3 minanyag 0 4 + 4 profit 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 1 + max.rel.err = 9.09e-01 on row 1 + SOLUTION IS INFEASIBLE + +End of output