Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Scheduling con JAVA
Forum - Java - Scheduling con JAVA

Avatar
furiaceca (Normal User)
Newbie


Messaggi: 6
Iscritto: 21/07/2010

Segnala al moderatore
Postato alle 18:31
Venerdì, 25/05/2012
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

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 12:07
Sabato, 26/05/2012
E' equivalente al problema di generare l'orario scolastico, già discusso in questo forum. E' un problema NP-completo per cui non esistono soluzioni ottime.
Puoi provare ad usare metodi adattativi come gli algoritmi genetici, oppure provare con un alternativa molto bovina ma più semplice, algoritmi greedy.

Ultima modifica effettuata da Il Totem il 26/05/2012 alle 12:14
PM Quote
Avatar
furiaceca (Normal User)
Newbie


Messaggi: 6
Iscritto: 21/07/2010

Segnala al moderatore
Postato alle 13:23
Sabato, 26/05/2012
Capito, ok grazie, allora adesso cerco questo post sull'orario scolastico e vediamo che input in più mi dà. :yup:

PM Quote
Avatar
furiaceca (Normal User)
Newbie


Messaggi: 6
Iscritto: 21/07/2010

Segnala al moderatore
Postato alle 13:52
Mercoledì, 04/07/2012
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.

PM Quote
Avatar
furiaceca (Normal User)
Newbie


Messaggi: 6
Iscritto: 21/07/2010

Segnala al moderatore
Postato alle 13:52
Mercoledì, 04/07/2012
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.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 8:49
Martedì, 10/07/2012

PM Quote