A method, comprising: receiving, by a device, network data associated with a network, wherein the network includes a plurality of network devices interconnected by links at an Internet protocol, IP, layer and an optical layer of the network; receiving, by the device, constraints associated with determining a network plan for the network, wherein the constraints at least include a constraint indicating a particular time period associated with determining a plurality of potential network plans for the network; identifying, by the device, variables and values of the variables for the network plan based on the network data, wherein the variables include one or more of: a quantity of network devices, a quantity of links interconnecting the network devices, capacities of the network devices, capacities of the links interconnecting the network devices, and capacities of paths through the network provided by the network devices; determining, by the device and within the particular time period, the plurality of potential network plans for the network based on the constraints and the values of the variables; determining a plurality of costs associated with the plurality of potential network plans based on the network data; identifying, by the device, a potential network plan, of the plurality of potential network plans, that minimizes costs associated with operating the network based on the plurality of costs associated with the plurality of potential network plans; and causing, by the device, the identified potential network plan to be implemented in the network by the plurality of network devices, or provide, by the device and to a client device, information indicating the identified potential network plan. receiving, by a device, network data associated with a network, wherein the network includes a plurality of network devices interconnected by links at an Internet protocol, IP, layer and an optical layer of the network; receiving, by the device, constraints associated with determining a network plan for the network, wherein the constraints at least include a constraint indicating a particular time period associated with determining a plurality of potential network plans for the network; identifying, by the device, variables and values of the variables for the network plan based on the network data, wherein the variables include one or more of: a quantity of network devices, a quantity of links interconnecting the network devices, capacities of the network devices, capacities of the links interconnecting the network devices, and capacities of paths through the network provided by the network devices; a quantity of network devices, a quantity of links interconnecting the network devices, capacities of the network devices, capacities of the links interconnecting the network devices, and capacities of paths through the network provided by the network devices; determining, by the device and within the particular time period, the plurality of potential network plans for the network based on the constraints and the values of the variables; determining a plurality of costs associated with the plurality of potential network plans based on the network data; identifying, by the device, a potential network plan, of the plurality of potential network plans, that minimizes costs associated with operating the network based on the plurality of costs associated with the plurality of potential network plans; and causing, by the device, the identified potential network plan to be implemented in the network by the plurality of network devices, or provide, by the device and to a client device, information indicating the identified potential network plan.