set I; # secciones set J; # proyectos set S{J} within I; # secciones para llegar a un proyecto param cs{I} >= 0; # costo de construir la sección de camino param cp{J} >= 0; # costo de desarrollar un proyecto param m{J} >= 0; # madera de un proyecto param v{J} >= 0; # visitantes esperados de un proyecto param M >= 0; # demanda de madera param V >= 0; # demanda de visitantes var X{J} binary; # si se instala un proyecto var Y{I} binary; # si se instala una seccion minimize costo: sum{i in I} cs[i]*Y[i] + sum{j in J} cp[j]*X[j]; s.t. madera : sum{j in J} m[j]*X[j] >= M; s.t. recreacion : sum{j in J} v[j]*X[j] >= V; s.t. proyectos_secciones{j in J} : card(S[j])*X[j] <= sum{i in S[j]} Y[i]; data; ############ DATA STARTS HERE ############ set I := 1 2 3 4 5; set J := e h t g; set S[e] := 1; set S[g] := 1 3 5; set S[h] := 1 2; set S[t] := 1 3 4; param cs := 1 0.8 2 0.4 3 0.3 4 0.2 5 0.4; param cp := e 0.7 g 0.8 h 0.1 t 0.5; param m := e 6 g 10 h 8 t 13; param v := e 1 g 3 h 1 t 2; param M := 17; param V := 2; https://cocoto.github.io/glpk-online/ https://ampl.com/cgi-bin/ampl/amplcgi =========================================================================================== solve; display _varname, _var ===========================================================================================