The Coupon Collector Problem (CCP) is a well-known combinatorial problem that seeks to estimate the number of random draws required to complete a collection of $n$ distinct coupon types. Various generalizations of this problem have been applied in numerous engineering domains. However, practical applications are often hindered by the computational challenges associated with deriving numerical results for moments and distributions. In this work, we present three algorithms for solving the most general form of the CCP, where coupons are collected under any arbitrary drawing probability, with the objective of obtaining $t$ copies of a subset of $k$ coupons from a total of $n$. The First algorithm provides the base model to compute the expectation, variance, and the second moment of the collection process. The second algorithm utilizes the construction of the base model and computes the same values in polynomial time with respect to $n$ under the uniform drawing distribution, and the third algorithm extends to any general drawing distribution. All algorithms leverage Markov models specifically designed to address computational challenges, ensuring exact computation of the expectation and variance of the collection process. Their implementation uses a dynamic programming approach that follows from the Markov models framework, and their time complexity is analyzed accordingly.
翻译:优惠券收集问题是一个著名的组合问题,旨在估计为集齐$n$种不同优惠券类型所需的随机抽取次数。该问题的多种推广形式已应用于众多工程领域。然而,实际应用常因计算相关矩和分布数值结果时遇到的计算挑战而受阻。本文提出了三种算法,用于求解最一般形式的优惠券收集问题——在任意抽取概率下收集优惠券,目标是从总共$n$张优惠券中获取某个$k$张优惠券子集的$t$份副本。第一种算法提供了计算收集过程期望、方差及二阶矩的基础模型。第二种算法利用基础模型的构建,在均匀抽取分布下以关于$n$的多项式时间计算相同数值;第三种算法则扩展至任意一般抽取分布。所有算法均利用专门设计用于应对计算挑战的马尔可夫模型,确保能精确计算收集过程的期望与方差。其实现采用基于马尔可夫模型框架的动态规划方法,并据此分析了算法的时间复杂度。