be easily shown that this factor can be reduced to $4.01768$ using our proposed bounding techniques.

\[rem:ruave\]\[rem:ru\] $R_\textup{u}(N,K,r)$ and $R_\textup{u,ave}(N,K,r)$, as defined in Definition \[def\], are the optimum peak rate and the optimum average rate that can be achieved using uncoded prefetching, as we proved in [@yu2016exact]. This indicates that for the coded caching problem, using uncoded prefetching schemes is within a factor of $2.00884$ optimal for both peak rate and average rate. More interestingly, we can show that even for the improved decentralized scheme we proposed in [@yu2016exact], where each user fills their cache independently without coordination but the delivery scheme was designed to fully exploit the commonality of user demands, the optimum rate is still achieved within a factor of $2.00884$ in general, and a factor of $2$ for large $N$. [^11]

\[rem:twoave\] Based on the proof idea of Theorem \[th:gconst\], we can completely characterize the rate-memory tradeoff for the two-user case, for any possible values of $N$ and $M$, for both peak rate and average rate. Prior to this work, the peak rate vs. memory tradeoff for the two-user case was characterized in [@maddah-ali12a] for $N\leq 2$, and is characterized in [@tian2016symmetry] for $N\geq 3$ very recently. 