diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/200.html b/docs/200.html new file mode 100644 index 0000000..3a60821 --- /dev/null +++ b/docs/200.html @@ -0,0 +1 @@ +
\n Valori che sono calcolati al momento della compilazione del programma:\n
\n\n param nomeparametro;\n
\n \n Si possono assegnare valori ai parametri nel codice con:\n
\n\n nomeparametro := 123 + 234;\n
\n \n Insiemi di parametri:\n
\n\n set NOMESET;\n
\n \n Si possono definire i contenuti dei set con:\n
\n{r`\n set DA_UNO_A_DIECI := 1 .. 10;\n set DA_UNO_A_PARAMETRO := 1 .. parametro;\n `}
\n \n Si possono effettuare operazioni su set con:\n
\n{r`\n set UNIONE := SET_A union SET_B;\n set INTERSEZIONE := SET_A inter SET_B;\n `}
\n \n Valori che sono calcolati al momento dell'esecuzione del programma:\n
\n\n var nomevariabile;\n
\n \n È possibile richiedere che un parametro o una variabile soddisfino certi requisiti.\n
\n\n Si può richiedere che siano
{r`\n param positivo, > 0;\n var non_positiva, <= 0;\n `}
\n \n Si può richiedere che appartengano a un dato set:\n
\n{r`\n param intero_positivo, integer, > 0;\n var zero_oppure_uno, binary;\n `}
\n \n È possibile creare anche un \"array\" di parametri o variabili:\n
\n{r`\n param dieci_parametri{1..10};\n var quadrato{1..10, 1..10};\n var cubo{1..10, 1..10, 1..10};\n `}
\n \n Si possono usare anche set:\n
\n{r`\n param dieci_parametri{DA_UNO_A_DIECI};\n `}
\n \n La funzione obiettivo può comparire solo una volta nel programma.\n
\n\n Si definisce con:\n
\n{r`\n minimize valore_ottimo_min: espressione;\n maximize valore_ottimo_max: espressione;\n `}
\n \n I vincoli a cui sono soggette le variabili si definiscono con:\n
\n{r`\n nome_vincolo_1: espressione <= 1;\n nome_vincolo_2: espressione >= parametro;\n `}
\n \n I vincoli possono essere indicizzati:\n
\n{r`\n // La diagonale del quadrato deve essere minore di 1\n v_3{i in DA_UNO_A_DIECI}: quadrato[i, i] <= 1;\n \n // Tutti i valori del quadrato devono essere minori o uguali a 1\n v_4{i in DA_UNO_A_DIECI, j in DA_UNO_A_DIECI}: quadrato[i, j] <= 1;\n `}
\n \n Esistono anche operatori aggregati:\n
\n{r`\n // La somma degli elementi della diagonale deve essere maggiore o uguale a 0\n v_5: sum{i in DA_UNO_A_DIECI} quadrato[i, i] >= 0;\n \n // Il prodotto degli elementi della diagonale deve essere maggiore o uguale a 0\n v_6: prod{i in DA_UNO_A_DIECI} quadrato[i, i] >= 0;\n `}
\n \n Si possono anche aggiungere requisiti agli indici:\n
\n{r`\n v_7: sum{i in DA_UNO_A_DIECI, i <= 5} quadrato[i, i] >= 0;\n \n v_8: prod{i in SET, i not in ALTRO_SET} quadrato[i, i] >= 0;\n `}
\n \n Perchè il programma calcoli i valori di tutte le variabili, è necessaria l'istruzione:\n
\n{r`\n solve;\n `}
\n \n Per stampare i valori calcolati, è possibile usare:\n
\n{r`\n printf \"%d \\n\", nomevar;\n `}
\n \n Eventualmente, anche in un ciclo for:\n
\n{r`\n for{i in DA_UNO_A_DIECI} {\n printf \"%d: %d \\n\", i, x[i];\n }\n `}
\n \n Per compilare ed eseguire il programma, è sufficiente eseguire:\n
\n\n glpsol --math nomefile.mod\n
\n \n È possibile specificare i dati in un file separato da quello del modello; in tal caso, si dovrà eseguire:\n
\n\n glpsol --math -m modello.mod -d dati.mod\n
\n \n Per salvare i risultati su file e visualizzarli a schermo:\n
\n\n glpsol --math nomefile.mod | tee risultati.txt\n
\n