We present an algorithm that determines where the members of a multi-agent team or swarm should be deployed in order to efficiently monitor access to a user specified region of interest. Our algorithm attempts to minimize the number of agents required to guarantee that any incursion into the region of interest is detected. The algorithm works by analyzing the geometric structure of the environment, and placing agents at advantageous positions in the environment, such as bottlenecks, to create a defensive perimeter of agents alongside physical obstacles (e.g. buildings). We demonstrate the usefulness of the algorithm through experimental simulations in an urban environment, and show how the min-cuts subroutine (used to reduce the number of agents required) can be implemented in a distributed way across the multi-agent team to enable better solutions to be found more quickly.