How do the MVP, MVC, and MVVM patterns relate? When are they appropriate?

Technical