I. Introduction
The high temporal variability of network traffic results in communication systems that are congested during peak-traffic times and underutilized during off-peak times. One approach to reduce peak traffic is to take advantage of memories distributed across the network (at end users, routers, …) to duplicate content. This duplication of content, called content placement or caching, is performed during off-peak hours when network resources are abundant. During peak hours, when network resources are scarce, user requests can then be served exploiting these caches to reduce network congestion. In this manner, caching effectively shifts traffic from peak to off-peak hours, thereby smoothing out traffic and reducing congestion.