Asintotici per cambio moneta


13

Dato n denominazioni di monete, con c1=1 e c2<c3<..<cn essendo numeri casuali distribuiti uniformemente nell'intervallo [2,N] . Asintoticamente, per quale frazione di monete l'algoritmo avido genera un cambiamento ottimale usando questo insieme di denominazioni?

La risposta è nota per 3 denominazioni ; ma per quanto riguarda il caso generale?


2
Stabilire la probabilità per 4 denominazioni è stata posta da Thane Plambeck, che ha anche fornito un'espressione per la probabilità per 3 denominazioni (vedere il link fornito dal PO). L'OP sta ponendo una domanda più generale sul comportamento asintotico di questa probabilità. Questo potrebbe forse essere più adatto per math.SE e MO, con tag asintotici. @Ganesh: qual è la tua motivazione TCS o il motivo del tag ds.algorithms?
András Salamon,

1
@ Andras, questo è molto un problema di teoria della complessità. Ad esempio, se l'approccio avido ottiene una soluzione ottimale, diciamo il 90% delle volte, potrei anche dimenticare la programmazione dinamica e accontentarmi di soluzioni non ottimali il restante 10% delle volte. Forse questo è più appropriato in matematica. *, Ma la motivazione sta nel TCS. Alla fine, il "tag giusto" mi è sfuggito - quindi ho pensato che ds.algorithms fosse la migliore approssimazione.
Ganesh,

Risposte:


9

Questa non è una risposta, ma forse questo indicherà te o qualcun altro nella giusta direzione.

Ho trovato l'articolo di D. Kozen e S. Zaks chiamato "Limiti ottimali per il problema del cambiamento" in cui danno le condizioni per quando l'algoritmo di modifica del denaro avido di un'istanza di cambio moneta è ottimale. Userò la loro notazione.

Data un'istanza di cambio moneta di monete distinte ( c 1 , c 2 , c 3 , , c m - 1 , c m ) c 1 = 1 < c 2 < c 3 < < c m - 1 < c m a funzione M ( x ) che rappresenta il numero ottimale di monete necessarie per apportare modifiche per xe una funzionem

(c1,c2,c3,,cm-1,cm)
c1=1<c2<c3<<cm-1<cm
M(X)X rappresenta il numero di monete necessarie per fare avidamente il cambiamento per x , quindi se M ( x ) G ( x ) , esiste un controesempio nell'intervallo c 3 + 1 < x < c m - 1 + c msol(X)XM(X)sol(X)
c3+1<X<cm-1+cm

Continuano a dimostrarlo

Xc3+1<X<cm-1+cm

sol(X)sol(X-c)+1
c(c1,c2,,cm)
sol(X)=M(X)

Questo ci dà un test "efficiente" (fino al tempo pseudo polinomiale) per determinare se un'istanza di cambio moneta è avida o meno.

Utilizzando quanto sopra, ho eseguito una breve simulazione i cui risultati sono tracciati su una scala log-log di seguito

inserisci qui la descrizione dell'immagine

m[1N]

m=383N-12

pm(N)αN-(m-2)2

pm(N)mN

mN . Se l'equazione di cui sopra vale, allora è facile da vedere, ma potrebbero esserci altri modi di vederla che danno la stessa conclusione. Ad esempio, guardando il lavoro del modello di energia casuale di Borgs, Chayes, Mertens e Nair indica che l'energia è troppo frastagliata in basso per aspettarsi mosse locali (cioè mosse avide) per fornire una soluzione ottimale. Questo è ovviamente per il problema della partizione numerica e viene fornito solo per dare un po 'di intuizione piuttosto che una risposta definitiva.

(1,5,10,25,50,100,200,500,1000,2000,5000,10000)) che non sembrano essere distribuiti uniformemente. Forse guardare altre distribuzioni per generare i tagli delle monete produrrebbe risultati non banali nel limite del sistema di grandi dimensioni. Ad esempio, una distribuzione della legge sul potere potrebbe produrre tagli in moneta più simili a quelli statunitensi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.