PDA

View Full Version : Scheduling con JAVA


amsr
25-05-2012, 18:25
Ciao a tutti, avrei bisogno di un aiuto: devo creare un programma Java che pianifichi l'attività di una scuola di volo. Ovvero ho delle risorse quali Aerei, istruttori e alunni e devo pianificare le attività in base alla disponibilità di aerei e istruttori, incastrando i vari orari delle varie lezioni in modo da ottimizzare l'intera giornata. Come posso improntare l'algoritmo?
Grazie
Ciao a tutti

VICIUS
26-05-2012, 07:55
Da come lo hai descritto sembra un problema di ricerca operativa. Ti consiglio di dare un occhiata al algoritmo del simplesso che è quello più conosciuto. In genere lo si insegna anche alle superiori quindi se hai bisogno di materiale puoi tranquillamente trovarlo in libri di testo scolastici.

amsr
26-05-2012, 13:25
capito, darò un'occhiata a quest'algoritmo, vediamo se mi può aiutare

amsr
05-07-2012, 12:07
Ciao sto provando a trovare la soluzione corretta. Ho già creato il db da dove caricare le varie tabelle che sono : lezioni, allievi, istruttori, aerei, aule, corsi, allieviLezioni (che indica le lezioni che ogni allievo deve seguire) e istruttoriLezioni (che indice le lezioni che un istruttore deve insegnare).
I vincoli sono i seguenti:
- ogni allievo segue un solo corso
- ogni allievo deve seguire tutte le lezioni
- ogni lezione sarà di tipo aereo o aula, nel primo caso verrà seguita da un allievo per volta(il quale utilizzerà l'aereo), nel secondo caso verrà seguita da tutti gli allievi contemporaneamente.
- ogni lezione fa parte di un solo corso
- ogni istruttore può insegnare in un solo corso
- ogni istruttore può insegnare più lezioni, indipendentemente dal fatto che essa sia in aula o in aereo

La tabella delle lezioni comprende un tipo che indica se aereo o aula, e la durata di ogni lezione.
Questo è importante perchè devo sistemare tutte le lezioni per tutti gli allievi, incastrandole in base alla loro durata. Se la lezione è di tipo aereo dovrò programmare tante lezioni quanti sono gli allievi, se è di tipo aula ne programmerò una sola che sarà seguita da tutti gli allievi in contemportanea.

amsr
05-07-2012, 12:07
Io ho caricato le tabelle dal db in vari ArrayList con la seguente istruzione:
List<ArrayList> lezioni = db.eseguiQuery("SELECT * FROM Lezioni");
ovviamente così per tutte le tabelle.
Ho già creato una classe Database.java che mi permette di connettermi e disconnettermi dal db, aggiungere query, aggiornarle ecc...
Ho creato inoltre, per il calcolo della disponibilità delle risorse, 3 classi:
Calendario.java con all'interno un ArrayList comprendente i vari giorni della settimana.
Giorno.java con all'interno un ArrayList comprendente tutte le fasce orarie di ciascun giorno e inoltre comprende i metodi per verificare che un'aula e/o un aereo e/o un istruttore e/o un allievo sia già stati scelti.
Ora.java con all'interno i metodi get e set per restituirmi, data, tipo(aereo/aula), id dell'aereo o aula, id istruttore e id allievo, ovvero tutti i dati per quella lezione che si sta selezionando.
Se vuoi te li posto queste classi.

Ora il mio problema è creare quest'algoritmo per inserirli all'interno del calendario, cioè scorrere tutte le lezioni, inserirle man mano in base alla loro durata e creare quindi l'orario definitivo della settimana. Spero mi potete aiutare e spero di essere stato chiaro! Grazie in anticipo.