A controller for an aircraft, the controller configured to: receive a starting point, a desired ending point, an initial time, a current aircraft speed, a strength of a wind vortex, a position of a center of the wind vortex, a distance of the aircraft from the position of the center of the wind vortex, and information regarding other winds; determine components of wind speed of at least the wind vortex based on the strength of the wind vortex, the position of the center of the wind vortex, the distance of the aircraft from the position of the center of the wind vortex, and the information regarding other winds; determine one or more boundary conditions for a boundary value optimization problem, the boundary value optimization problem used to determine a flight path to minimize a flight time between the starting point and the desired ending point; determine an initial estimate for the boundary value optimization problem; define the boundary value optimization problem as one or more differential equations based on the starting point, the desired ending point, the initial time, the current aircraft speed, the components of the wind speed, and a control variable of the aircraft; determine a solution for the boundary value optimization problem based on the one or more boundary conditions, the one or more differential equations and the initial estimate; evaluate the solution to determine a flight path and control variable values for the flight path; provide a display representing the determined flight path and the control variable values to a user; and adjust an operation of the aircraft to use the control variable values to follow the determined flight path; identify if the determined flight path crosses a no-fly zone; and place one or more wind sources at or around the no-fly zone and re-determine the components of wind speed, re-define the optimization problem, re-determine the solution and reevaluate the solution in response to identifying that the determined flight path crosses the no-fly zone. receive a starting point, a desired ending point, an initial time, a current aircraft speed, a strength of a wind vortex, a position of a center of the wind vortex, a distance of the aircraft from the position of the center of the wind vortex, and information regarding other winds; determine components of wind speed of at least the wind vortex based on the strength of the wind vortex, the position of the center of the wind vortex, the distance of the aircraft from the position of the center of the wind vortex, and the information regarding other winds; determine one or more boundary conditions for a boundary value optimization problem, the boundary value optimization problem used to determine a flight path to minimize a flight time between the starting point and the desired ending point; determine an initial estimate for the boundary value optimization problem; define the boundary value optimization problem as one or more differential equations based on the starting point, the desired ending point, the initial time, the current aircraft speed, the components of the wind speed, and a control variable of the aircraft; determine a solution for the boundary value optimization problem based on the one or more boundary conditions, the one or more differential equations and the initial estimate; evaluate the solution to determine a flight path and control variable values for the flight path; provide a display representing the determined flight path and the control variable values to a user; and adjust an operation of the aircraft to use the control variable values to follow the determined flight path; provide a display representing the determined flight path and the control variable values to a user; and adjust an operation of the aircraft to use the control variable values to follow the determined flight path; identify if the determined flight path crosses a no-fly zone; and place one or more wind sources at or around the no-fly zone and re-determine the components of wind speed, re-define the optimization problem, re-determine the solution and reevaluate the solution in response to identifying that the determined flight path crosses the no-fly zone.