optimal transport based on optimization