Immagina di essere a capo di una nave da carico:
- viaggiare lungo una rotta o un anello (A, B, C, D, A ...)
- ha una capacità massima di carico
Ad ogni fermata puoi:
- acquista merci, fino alla tua capacità di carico o vendi merci che hai già acquistato
- ogni fermata ha prezzi diversi per ciascuna merce
- per semplicità, non puoi restare senza soldi per comprare
- anche per semplicità, gli importi delle merci sono divisibili all'infinito, quindi non ci sono problemi con lo stack-problem
Quale algoritmo posso utilizzare per determinare le migliori materie prime e ammontare a comprare / vendere ad ogni fermata, per ottenere il massimo profitto?
La soluzione è non solo per comprare basso e vendere alto perché hai uno spazio di carico limitato, e c'è un compromesso tra trasportare carichi redditizi tra molte fermate e fare più scambi ad ogni fermata. Ad esempio: data una rotta A - > B - > C, due prodotti (mele, arance) e i seguenti prezzi:
Stop | Apples | Oranges
-----+--------+--------
A | $1 | $1
B | $2 | $1
C | $4 | $3
L'azione migliore sarebbe comprare mele in A e venderle a C, con un profitto di $ 3 * capacità. Ma se le arance dovessero apprezzare $ 3 in B, allora sarebbe meglio acquistare arance in A, venderle in B e comprare mele e vendere le mele in C, per un profitto totale di ($ 2 + $ 2) * capacità.