Structura unui program ALLO

    Un model in limbajul ALLO are o structura demarcata de cuvintele cheie MODEL, VARIABLES, OBJECTIVES, CONSTRAINS, END :

MODEL nume_model

        sectiunea variabilelor auxiliare in care pot apare instructiuni semnalate de cuvintele cheie FILE, RANGE, INTEGER, REAL

VARIABLES

        sectiunea variabilelor model

OBJECTIVES

        sectiunea functiilor obiectiv care se incheie cu o instructiune de selectie functie obiectiv ce incepe cu unul din cuvintele cheie MINIMIZE, MAXIMIZE

CONSTRAINS

        sectiunea restrictiilor model

END

Sectiunea Variabilelor Auxiliare Model

    Sectiunea variabilelor auxiliare incepe dupa epuizarea instructiunii MODEL si se termina prin aparitia instructiunii VARIABLES care indica inceputul sectiunii urmatoare.

Aceasta sectiune este dedicata definirii si pregatirii tuturor datelor necesare in constructia modelului ale carei elemente specifice se regasesc in ultimile trei sectiuni : sectiunea variabilelor model, a functiilor obiectiv si sectiunea restrictiilor.

Aici se pot defini fisiere secundare invocate de fisierul sursa principal in diverse puncte prin comanda READ care permite atribuirea de date unor variabile auxiliare in cadrul instructiunii de definire. Un rol important il are si definirea domeniilor intregi sau reale care sunt necesare in definirea oricarei structuri de tip masiv, in definirea marginilor unor variabile sau restrictii si nu in ultimul rind in definirea listelor de ciclare din blocurile FOR sau SUM.

In aceasta sectiune sunt definite variabilele auxiliare scalare sau masiv de tip intreg sau real. Valorile unor astfel de variabile auxiliare pot fi modificate numai prin apelul unor functii speciale precum ATR sau SEARCH. Sunt patru tipuri de variabile auxiliare : FILE, RANGE, INTEGER, REAL care fiecare induc o instructiune de definire a uneia sau mai multe variabile de acest tip. Instructiunile pot fi folosite dupa dorinta sau necesitate fara sa conteze ordinea dintre ele.

Sectiunea Variabilelor Model

    Aceasta sectiune este semnalata de aparitia instructiunii VARIABLES si sfirseste odata cu aparitia instructiunii OBJECTIVES. In aceasta sectiune sunt definite toate variabilele model. Intr-o definitie poate sa apara conditia de marginire pentru variabila in cauza sau pentru unele componente ale acesteia daca variabila este nescalara. In acest ultim caz pentru restul componentelor se presupune ca sunt variabile model pozitive.

Sectiunea Functiilor Obiectiv Model

    Sectiunea functiilor obiectiv este semnalata de aparitia instructiunii OBJECTIVES si sfirseste odata cu aparitia instructiunii CONSTRAINTS. In aceasta sectiune sunt definite toate functiile obiectiv pe care le dorim legate de acest model si care pot fi selectate ulterior pentru o varianta de optimizare model. In aceasta sectiune numai o functie scalara sau o componenta de baza a unei functii nescalare poate face obiectul unei selectii in care este precizat si tipul de problema de optimizat. Atit definitiile functiilor cit si instructiunea de selectie au echivalent in fisierul MPS generat prin insemnarea functiei selectate cu MIN sau MAX urmind numele pe aceeasi linie. O noua selectie poate fi facuta prin schimbarea instructiunii de selectie cu generarea unui nou MPS, prin editarea MPS-ul precedent sau daca optimizatorul ne permite un dialog pentru selectarea functiei si a altor nume de : RHS, RANGES si BOUNDS.

    Sectiunea prezenta se incheie cu instructiunea de selectie care este obligatorie.

Sectiunea Restrictiilor Model

    Sectiunea aceasta este semnalata de aparitia instructiunii CONSTRAINTS si sfirseste odata cu aparitia instructiunii END care incheie si intreg textul ce tine de modelul ALLO. In aceasta sectiune sunt definite toate restrictiile modelului. Pot fi definite restrictii simple cu egalitate sau nu si restrictii dublu marginite care vor produce un articol in sectiunea RANGES a fisierului MPS rezultat. Aceasta sectiune ne prezinta o imagine formala a relatiilor dintre toate variabilele auxiliare sau nu implicate in model.