Scheduling con JAVA

di il
5 risposte

Scheduling con JAVA

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

5 Risposte

  • Re: Scheduling con JAVA

    Sei stato un pò troppo generico...sinceramente non ho capito cosa devi fare.
  • Re: Scheduling con JAVA

    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.
  • Re: Scheduling con JAVA

    Ciao!
    Innanzitutto per connetterti da java ad un database avrai bisogno di JDBC e dei driver specifici per il database che usi (ad es per MySQL lo puoi trovare qui ).

    Per quanto riguarda il vincolo che hai specificato, una soluzione semplice potrebbe essere il tenersi traccia del numero di ore di volo sia dei piloti che degli aerei, e selezionare di volta in volta il primo pilota "disponibile" con il minor numero di ore di volo e "accoppiarlo" con il primo aereo che soddisfa gli stessi requisiti.

    Per quanto riguarda lo scheduling, quali sono gli ulteriori vincoli? ad esempio, quante ore di lezione deve fare uno studente? Per ogni lezione quanti aerei servono?
  • Re: Scheduling con JAVA

    Ciao scusa se rispondo solo adesso, ma non mi sono arrivate le notifiche per la risposta ed è tutto questo mese che ci sto sbattendo. Detto ciò io 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.
  • Re: Scheduling con JAVA

    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.
Devi accedere o registrarti per scrivere nel forum
5 risposte