E' da giorni che sto provando a risolvere un assegnamento ch mi è stato dato con AMPL.
Il mio problema, a prescindere dall'assegnamento, è il non riuscire a fare calcoli su valori dati in input. Per spiegarmi meglio mostro di seguito i miei files DAT e MOD (solo la parte che interessa)
FILE MOD
### SETS
set N ;
set n ;
### PARAMS
param val{N} <= 1, >= 0;
param ncount;
param Ncount;
param mult;
param k default 1;
param x2{1..mult} ;
set n2 := 1..mult;
for {i in n2}
{
let x2[i] := mult*k;
let k := k+1;
}
FILE DAT
### INSIEMI
set N := 1..8 ;
set n := 1..5 ;
### PARAMETRI
param ncount := 5;
param Ncount := 16;
param val :=
1 0.2
2 0.3
3 0.5
4 0.6
5 0.7
6 0.8
7 0.8
8 1 ;
param mult := Ncount/ncount ;
Quello che vorrei fare è creare un array di "ncount" lunghezza e popolarlo a di valori ottenuti moltiplicando "mult" (ottenuto dalla divisone di 2 valori in input Ncount e ncount) per un indice k crescente prendendo solo la parte intera. Nell'esempio :
mult = 8/5 = 1,6
mi serve un array con i seguenti valori : 1-3-4-6-8 (che ho ottenuto facendo 1,6*1 - 1,6*2 - ecc e prendendo solo la parte intera)
Quando provo a farlo andare e digito "model mymodel.mod" ho il seguente errore
error processing set n2:
no value for mult
Ho guardato tutte le dispense che mi sono state fornite, ne ho cercate nuove su internet ma non sono riuscito a capire come fare. Penso di aver capito che sbaglio proprio nel concetto di uso di AMPL o che sbaglio a mettere i dati..Ho sempre usato linguaggi di programmazione e non di moderazione e questo credo che un po' mi freghi
Spero di essere stato chiaro,
grazie in anticipo