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
Indice Del Forum
Scheduling Con Java
Started by furiaceca, May 25 2012 18:25 PM
3 replies to this topic
#2
Inviato 25 May 2012 - 19:10 PM
dovresti considerare anche il numero massimo di ore consecutive che si possono effettuare (sia per gli aerei, che per gli studenti ed istruttori) ed il numero massimo di giorni a settimana disponibili per l'attività. Inoltre devi includere la preferenza per le ore mattutine o pomeridiane (considerando la variabilità delle stagioni e la disponibilità del numero di ore di luce naturale).
Devi formulare bene quali sono i tuoi vincoli per capire il tipo di problema che devi andare a risolvere. Detta così mi pare essere un problema di programmazione lineare ( http://it.wikipedia....mazione_lineare ).
Devi formulare bene quali sono i tuoi vincoli per capire il tipo di problema che devi andare a risolvere. Detta così mi pare essere un problema di programmazione lineare ( http://it.wikipedia....mazione_lineare ).
#3
Inviato 01 June 2012 - 18:25 PM
Ciao, si in effetti non sono stato chiarissimo.
Io ho creato già i db con i relativi dati, ovvero aerei, istruttori, aule, alunni, lezioni, corsi ecc..
Devo creare in java le classi che leggono da questi db.
Infine dovrò trovare l'algoritmo che pianifichi lo scheduling. Gli unici vincoli sono il fatto che aerei ed istruttori devono essere sfruttati alla stessa maniera, nel senso che devo evitare che un istruttore venga sfruttato al massimo e magari altri due non lavorino quasi, e stesso discorso per gli aerei, cioè evitare che si utilizzi solo un aereo, piuttosto che un altro.
Io ho creato già i db con i relativi dati, ovvero aerei, istruttori, aule, alunni, lezioni, corsi ecc..
Devo creare in java le classi che leggono da questi db.
Infine dovrò trovare l'algoritmo che pianifichi lo scheduling. Gli unici vincoli sono il fatto che aerei ed istruttori devono essere sfruttati alla stessa maniera, nel senso che devo evitare che un istruttore venga sfruttato al massimo e magari altri due non lavorino quasi, e stesso discorso per gli aerei, cioè evitare che si utilizzi solo un aereo, piuttosto che un altro.
#4
Inviato 04 July 2012 - 12:55 PM
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.
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 puoi aiutare e spero di essere stato chiaro! Grazie in anticipo.
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.
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 puoi aiutare e spero di essere stato chiaro! Grazie in anticipo.
0 utente(i) stanno leggendo questa discussione
utenti, ospiti, utenti anonimi
Community Forum Software by IP.Board 3.3.1
Licenza di: WinInizio


Home













