Asymptotique pour changer de pièce

13

Étant donné dénominations, avec c 1 = 1 et c 2 < c 3 < . . < c n étant des nombres aléatoires uniformément répartis dans l'intervalle [ 2 , N ] . De manière asymptotique, pour quelle fraction de pièces l'algorithme gourmand génère-t-il un changement optimal en utilisant cet ensemble de dénominations?nc1=1c2<c3<..<cn[2,N]

La réponse est connue pour 3 dénominations ; mais qu'en est-il du cas général?

Ganesh
la source
2
Thane Plambeck a posé la probabilité de 4 coupures, qui a également fourni une expression pour la probabilité de 3 coupures (voir le lien fourni par le PO). L'OP pose une question plus générale sur le comportement asymptotique de cette probabilité. Cela pourrait peut-être être plus approprié pour math.SE et MO, avec des asymptotiques de balises. @Ganesh: Quelle est votre motivation TCS ou la raison de la balise ds.algorithms?
András Salamon
1
@ Andras, c'est vraiment un problème de théorie de la complexité. Par exemple, si l'approche gourmande obtient une solution optimale, disons 90% du temps, je pourrais aussi bien oublier la programmation dynamique et me contenter des solutions sous-optimales les 10% restants. C'est peut-être plus approprié à Math. *, Mais la motivation réside dans TCS. Enfin, la «bonne balise» m'a échappé - j'ai donc pensé que ds.algorithms était la meilleure approximation.
Ganesh

Réponses:

9

Ce n'est pas une réponse mais peut-être que cela vous orientera, vous ou quelqu'un d'autre, dans la bonne direction.

J'ai trouvé l'article de D. Kozen et S. Zaks intitulé "Limites optimales pour le problème de changement" dans lequel ils donnent les conditions pour lesquelles l'algorithme de changement gourmand d'une instance de changement de pièce est optimal. J'utiliserai leur notation.

Étant donné une instance de changement de pièce de pièces distinctes ( c 1 , c 2 , c 3 , , c m - 1 , c m ) c 1 = 1 < c 2 < c 3 < < c m - 1 < c m a fonction M ( x ) représentant le nombre optimal de pièces nécessaires pour changer x et une fonctionm

(c1,c2,c3,,cm-1,cm)
c1=1<c2<c3<<cm-1<cm
M(X)X représentant le nombre de pièces nécessaires pour changer goulûment de x , alors si M ( x ) G ( x ) , il existe un contre-exemple dans la gamme c 3 + 1 < x < c m - 1 + c mg(X)XM(X)g(X)
c3+1<X<cm-1+cm

Ils montrent ensuite que

Xc3+1<X<cm-1+cm

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

Cela nous donne un test "efficace" (jusqu'à un temps pseudo polynomial) pour déterminer si une instance de changement de pièce est gourmande ou non.

En utilisant ce qui précède, j'ai exécuté une courte simulation dont les résultats sont tracés sur une échelle log-log ci-dessous

entrez la description de l'image ici

m[1N]

m=383N-12

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

pm(N)mN

mN

(1,5,dix,25,50,100,200,500,1000,2000,5000,10000)) qui ne semblent pas être uniformément répartis. Peut-être que regarder d'autres distributions pour générer les dénominations de pièces de monnaie donnerait des résultats non triviaux dans la grande limite du système. Par exemple, une distribution de loi de puissance pourrait produire des coupures de pièces plus similaires à celles des États-Unis.

user834
la source