Domanda

Sto lavorando su un'applicazione Java che dovrebbe consentire agli utenti di ottimizzare il loro programma quotidiano. Per questo, ho bisogno di un quadro di riferimento che aiuta a calcolare i tempi ottimali per "compiti" che prendono nota di:

  1. Risorse necessarie e limiti di utilizzo delle risorse
  2. dipendenze tra le attività (può fare solo con F-> S rapporti però)
  3. prima e l'ultima orari di partenza-arrivo, tempi di slack
  4. Baseline vs tempi reali - che permettono di segnalare effettivi orari di inizio e fine, l'aggiornamento del resto delle attività di conseguenza

Alcune precisazioni:. Io non sto cercando né un quadro per disegnare queste gantts, né una struttura che si occupa di uno specifico dominio del problema (come ad esempio aule), e sicuramente non una struttura che si occupa di programmazione dei thread

Grazie!

È stato utile?

Soluzione

Non credo che ci sia una struttura che soddisfa le tue esigenze, fuori dalla scatola. So che hai detto che non stai cercando un job scheduler / thread, ma penso che la cosa migliore è probabilmente quello di rotolare il proprio codice di ottimizzazione / priorità attorno a un quadro di programmazione di lavoro / discussione "stupido" come quarzo (o qualsiasi altra cosa che avete in luogo). Se si va con quarzo, l'API può probabilmente di fornire alcune informazioni utili per i punti 3 e 4 dei criteri di ottimizzazione. Inoltre, quarzo ha un concetto di lavoro "priorità", quindi una volta che hai calcolata la priorità ottimizzato, dovrebbe rendere la pianificazione dell'esecuzione facile.

Se si trova un quadro che non quello che chiedi, si prega di inviare di nuovo qui -. Sono sicuro che ci sono altri che potrebbero usare qualcosa di simile

Altri suggerimenti

Si potrebbe verificare la presenza di un progetto software di gestione . Sembra che avete bisogno di scritto in Java con la possibilità di modificare il codice. Si restringe davvero giù la lista, ma ho fatto una scansione rapida e vedo almeno 2 di loro che potrebbe aiutare (Endeavour e Project.net).

Forse quello che vi serve è qualcosa di simile algoritmo evolutivo / genetica per generare un programma di ottimizzazione?

Se sì, si può avere uno sguardo a questo quadro Orologiaio: http://watchmaker.uncommons.org/

Con evolutivo / algoritmo genetico, si genera casualmente un pool di pianificazione. Il vostro obiettivo principale sarà la definizione dei criteri di punteggio per valutare ogni programma generato. Poi lasciate (gli orari generati) si evolvono di generazione in generazione fino a quando non è abbastanza ottimale per voi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top