Weight Swapping A new method for Supervised Domain Adaptation in Computer Vision using Discrete Optimization