set ATTIVITA; param inizio symbolic in ATTIVITA; param fine symbolic in ATTIVITA, <> inizio; set PRECEDENZE within {ATTIVITA,ATTIVITA}; param durata{ATTIVITA}; var x{ATTIVITA}>=0; subject to vincoli_precedenza{(i,j) in PRECEDENZE}: x[j]>=x[i]+durata[i]; minimize durata_totale : x[fine];