Polynomial Time Algorithms for Dual Volume Sampling