Ho un problema di ottimizzazione. Si tratta di un prodotto che contiene 20 parti (l'ordine di produzione non ha importanza). Ho 3 macchine simili che possono produrre tutte e 20 le parti.Risoluzione delle ottimizzazioni della pianificazione delle attività o dell'imballaggio dei contenitori in R
ho le 20 parti rappresentate in minuti (es. Ci vogliono 3 minuti per produrre la prima parte e 75min per produrre la seconda parte, ecc)
ItemTime<-c(3,75,55,12,45,55,11,8,21,16,65,28,84,3,58,46,5,84,8,48)
Quindi, per produrre 1 prodotto ci vogliono 730 min.
sum(ItemTime)
L'obiettivo è quello di minimizzare la produzione di un prodotto assegnando il buon articolo alle tre macchine.
sum(ItemTime/3)
Quindi, in realtà ho bisogno di essere il più vicino 243,333 min (730/3)
La quantità di possibilità è enorme 3^20
Credo che ci sono molte soluzioni ottimali differenti. Mi piacerebbe che R mi desse tutti loro. Non ho bisogno di sapere solo il tempo totale necessario per la macchina 1 2 e 3: devo anche sapere quali articoli dare alla macchina 1, alla macchina 2 e alla manchina 3.
In alternativa, se è troppo lungo Vorrei scegliere un campione senza ripetizioni il più ragionevole possibile ...
Posso risolvere il mio problema con il linguaggio R?
Penso che questo problema abbia una struttura più (e diversa) a uno qualsiasi dei problemi dello zaino, quindi sarei interessato se potessi entrare nel dettaglio delle somiglianze. :) – huon
Sì, @dbaupp. In questo caso particolare, è facile dire che una soluzione {243, 243, 244} o {242, 244, 244}, se esiste, è ottimale. Quindi si potrebbe andare a risolvere il "problema con più problemi nello zaino" (come definito qui: http://en.wikipedia.org/wiki/List_of_knapsack_problems) per ciascuno di questi due gruppi di pesi. Se uno dei due problemi ha una soluzione in cui le tre macchine sono completamente caricate, allora abbiamo trovato una soluzione ottimale al problema originale. Ancora una volta, è "variante" ... – flodel
@dbaupp, sono intrigato dalla tua affermazione che l'approccio avido sia ottimale. All'inizio pensavo "no!", Ma poiché non riesco a trovare un contro-esempio, sono sempre più convinto che tu abbia ragione. Se è così, allora ho ucciso una formica con un martello! – flodel