La domanda si pone: "è possibile avere un problema che in realtà diventa più semplice con l'aumentare delle dimensioni degli input?" Cosa succede se gli input sono risorse che devono essere utilizzate dall'algoritmo per lavorare su un lavoro. È risaputo che più risorse sono, meglio è. Di seguito è riportato un esempio in cui più dipendenti ci sono, meglio è.
1) Vengono forniti due input:
i) Il numero di dipendenti in un settore. Questo è un numero naturale ed è l'ingresso principale .
ii) Informazioni sul settore. Ci sono compiti che i lavoratori devono svolgere, etichettati A, B, C, D ... Ci sono posti che collegano i compiti che consentono ai dipendenti di passare da un compito all'altro. Sono etichettati 0, 1, 2, 3 ... Le informazioni fornite sono un semplice grafico diretto costituito da percorsi, ad esempio: A-1, 1-2, 2-B, C-3 ... Per semplicità ogni il percorso ha un costo di 1.t pn
tp
2) Problema: a
partire dalle prime attività A e con dipendenti, è necessario trovare una strategia ottimale che i dipendenti possano utilizzare per visitare tutte le attività. Le attività possono essere visitate più di una volta. Ricordiamo che non è possibile passare da un'attività all'altra se non si trova un percorso tra di esse. Il percorso dall'attività A alla B è indipendente da quello da B ad A.n
3) Output:
l'output è il percorso tra le attività che i dipendenti devono intraprendere. Ogni percorso è associato al numero di dipendenti che lo assumono. Per esempio:
Da A a B con dipendenti (un percorso in avanti) Da
A a C con dipendenti (un percorso in avanti) Da
B a D con dipendenti (un percorso in avanti) Da
D a B con dipendenti (un percorso invertito) Da
B a E con dipendenti (un percorso in avanti)n 2 n 3 n 4 n 5n1
n2
n3
n4
n5
4) Possibile soluzione:
una possibile soluzione è innanzitutto calcolare il percorso più breve verso i nodi più vicini da A. Questo sarà un percorso diretto. Quindi calcola ricorsivamente il percorso di andata per ciascuna attività visitata. Il risultato è un albero. Per esempio:
UN
AVANTI CRISTO
DE
Ora è il momento di determinare in che modo i dipendenti attraverseranno l'albero per visitare i compiti. A partire dall'attività A con dipendenti, vengono inviati alla sottostruttura sinistra e vengono inviati alla sottostruttura destra. Se nessuno della sottostruttura sinistra dovrà mai passare alla sottostruttura destra.n 1 n 2 n 2 ≠ 0nn1n2n2≠0
Per i dipendenti andranno semplicemente avanti. Per il dipendente dovrà utilizzare percorsi inversi per visitare altre attività. Ad esempio, da D a B l'algoritmo calcolerà il percorso più breve. Questo è un calcolo extra. Perché non calcolare direttamente un percorso più breve da D a E ?! Bene, si spera che sia ancora un calcolo extra.n = 1n=∞n=1
Ma ovviamente il tempo di calcolo non diminuirà all'infinito (tra l'altro per troppo grande porterà a una cattiva gestione delle risorse e cose).n