Accedi per seguire   
Seguaci 0
furiaceca

Scheduling Con Java

4 messaggi in questa discussione

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

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

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.org/wiki/Programmazione_lineare ).

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

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.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

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.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0