Ho sollevato una domanda su dba.stackexchange.com ma siccome il cuore della mia domanda è in effetti fare con la logica, ho sollevato una rappresentazione più generale del mio problema qui. Penso che sia il posto giusto, scuse se non.
Ho un numero di oggetti che vengono letti e scritti in una sequenza impostata. Ho anche quattro posizioni in cui posso memorizzare questi oggetti. Questi oggetti sono di dimensioni variabili, ma per motivi di semplicità li ho valutati da 1 a 3 con 3 come il più grande. La posizione degli oggetti è fissa ad es. gli oggetti non possono essere spostati tra una sequenza e l'altra
Ho una tabella che dettaglia la sequenza del processo. Ha tre colonne: Sequenza, Sorgente, Destinazione. I processi possono essere eseguiti parallelamente e pertanto la sequenza non è un identificatore univoco, tuttavia, se necessario, è possibile considerarlo come esistente.
In un mondo ideale nessun oggetto dovrebbe essere collocato in un modo che risulterebbe in nessun oggetto richiesto per un passo di sequenza essendo collocato con un altro. Naturalmente questo è altamente improbabile e invece sto cercando una soluzione migliore rispetto a quella perfetta.
Ho quindi considerato che le potenziali posizioni potrebbero essere classificate come segue.
- Tutti gli oggetti per una sequenza localizzata separatamente.
- Oggetti di origine e destinazione per la sequenza localizzata separatamente.
- Oggetti posizionati ovunque
Dato che ogni oggetto ha una dimensione ho anche pensato di moltiplicare la posizione per la dimensione e quindi dare un punteggio alle posizioni. In base a questo, ho trovato la soluzione migliore esaminando il punteggio totale.
Qualcuno ha qualche suggerimento o forse ha affrontato un problema simile in passato?
Qualsiasi input di aiuto è molto apprezzato.