Asset Allocation with Real World Constraints