Toto je starší verze dokumentu!


Warehousing

param n; /* product count */
param m; /* season count */
param R, integer, >= 0; /* max capacity of warehouse */

/* uzly vyrobku*/
set V1 := 1..n;
set V2 := 1..m;


#set E, within V1 cross V2;
set E := V1 cross V2;
/* set of arcs */

/* unit cost, i - product in j - season */
param c{(i,j) in E},>=0;

/* units demand, i - product in j - season */
param d{(i,j) in E},>=0;

/* production capacity, i - product in j - season */
param u{(i,j) in E},>=0;

/* unit holding storage cost, i - product from j - season (to j+1) season */
param h{(i,j) in E}, >=0;

/* unit production, i - product in j - season */
var x{(i,j) in E}, integer, >=0;

/* chceme platit co nejmene. Vyprodukujeme x produktu, za kazdy zaplatime c dle sezony + holding cost, pokud jsme ho neprodali */
#minimize total: sum{(i,j) in E} (x[i,j] * c[i,j] + ((x[i,j] - d[i,j]) * h[i,j]));
#minimize total: sum{j in {1..m-1} (  sum{i in {1..n}} (x[i,j] * c[i,j]))# + h[i,j] * sum{k in {1..j}} ((x[i,k] - d[i,k]))  ) + sum{i in {1..n}} (x[i,m] * c [i,m]);
minimize total: sum{j in {1..m-1}} (  sum{i in {1..n}} ((x[i,j] * c[i,j]) + h[i,j] * sum{k in {1..j}} ((x[i,k] - d[i,k])))  ) + sum{i in {1..n}} (x[i,m] * c [i,m]);

/* vsechno, co jsme vyrobili, se proda */
s.t. satisfactionTotal: sum{(i,j) in E} x[i,j] = sum{(i,j) in E} d[i,j];

/* nemuzeme vyrobit vic, nez kolik je kapacita v sezone */
s.t. maxproduction{(i,j) in E}: x[i,j] <= u[i,j];

/* vyrobime aspon tolik, aby vsechna poptavka danou sezonu byla uspokojena */
s.t. satisfactionSeasonal{(i,j) in E}: x[i,j] >= ( d[i,j] - sum{l in {1..j-1}}(x[i,l] - d[i,l]) );

/* Po sezone uskladnime maximalne R vyrobku. Coz je soucet dosud vyrobenych - dosud prodanych. */
/* Tato podminka nezmeni vysledek. Je zajimave, ze kdyz je sklad velky 90, NO PRIMAL SOLUTION FOUND. Vys je cena trochu vetsi nez optimal. Zrejme je nekde maximalni kapacita u mala a musime ulozit do skladu... */
#s.t. maxstorage{j in {1..m}}: sum{(k,l) in {1..n,1..j}} ((x[k,l] - d[k,l])) <= R;




solve;
printf "Optimal solution: %d\n",
  sum{j in {1..m-1}} (  sum{i in {1..n}} ((x[i,j] * c[i,j]) + h[i,j] * sum{k in {1..j}} ((x[i,k] - d[i,k])))  ) + sum{i in {1..n}} (x[i,m] * c [i,m]);
printf("From node   To node   Total cost\n");
printf{(i,j) in E: x[i,j]} "      %3d       %3d   %8g\n",
   i, j, c[i,j];



data;

- Nevite nekdo, jak na to? - Ano, ale kdo odevzdá plagiát, žene do záhuby!

courses/a4b35ko/ukol-2015-5.1430273118.txt.gz · Poslední úprava: 2025/01/03 18:24 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0