1. A method for transporting bulk products, comprising: (a) receiving a data set comprising: (1) identification of multiple origin and destination locations; (2) a set of voyages between the locations; (3) information relating to the market value of the voyages; (4) identification of multiple vehicles for carrying bulk products between the locations; (5) information relating to the cost of transporting the bulk products on the vehicles; (b) formulating a mathematical model for vehicle assignments comprising an objective function for net profit margin and multiple constraints; wherein the objective function for net profit margin comprises the sum of the individual net profit margins for each combination of feasible voyage-vehicle pairs, wherein the net profit margin for each feasible voyage-vehicle pair comprises the market value and the incurred costs for the feasible voyage-vehicle pair; wherein the constraints include constraints relating to the origin and destination locations, constraints relating to the voyages, and constraints relating to the vehicles; (c) populating the mathematical model with data from the data set or parameters calculated from the data set; (d) obtaining a solution to the mathematical model for vehicle assignments; (e) assigning vehicles to perform the set of voyages based on the solution to the mathematical model for vehicle assignments; and (f) physically transporting the bulk products to a destination location, or from an origin location, or both, based on the vehicle assignments.