WO2018142700A1 - 制御装置、制御方法、及びプログラム - Google Patents

制御装置、制御方法、及びプログラム Download PDF

Info

Publication number
WO2018142700A1
WO2018142700A1 PCT/JP2017/039907 JP2017039907W WO2018142700A1 WO 2018142700 A1 WO2018142700 A1 WO 2018142700A1 JP 2017039907 W JP2017039907 W JP 2017039907W WO 2018142700 A1 WO2018142700 A1 WO 2018142700A1
Authority
WO
WIPO (PCT)
Prior art keywords
control
unit
solution
agent
evaluation
Prior art date
Application number
PCT/JP2017/039907
Other languages
English (en)
French (fr)
Inventor
晃人 鈴木
小林 正裕
薫明 原田
川原 亮一
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US16/468,089 priority Critical patent/US11809895B2/en
Priority to JP2018565940A priority patent/JP6904369B2/ja
Publication of WO2018142700A1 publication Critical patent/WO2018142700A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Definitions

  • the present invention relates to a control device, a control method, and a program.
  • NFV Network Functions Virtualization
  • VR virtual resources
  • VNFs virtual network functions
  • VR includes, for example, a VM (Virtual Machine) that combines a CPU (Central Processing Unit), a HDD (Hard Disk Drive), a GPU (Graphics Processing Unit), an FPGA (Field Programmable Gate Array), and the like.
  • VNF include CPE (Customer Premises Equipment), FW (Firewall), LB (Load Balancer), DPI (Deep Packet Inspection), Proxy, IDS (Intrusion Detection System), and NAT (Network Address Translation). Can be mentioned.
  • VR and VNF are controlled by functions called “resource orchestration” and “service orchestration”.
  • Resource orchestration is a function of arranging VR and VNF on a physical network.
  • Service orchestration is a function for calculating an end-to-end path connecting between VRs and VNFs.
  • the service provider provides three types of network services with service C connected to other VMs via IDS and FW.
  • resource orchestration is performed by arranging VR and VNF in each server device on the physical network.
  • service orchestration is performed by calculating a route between VRs and VNFs arranged on the physical network.
  • Non-Patent Document 1 For the realization of the NFV orchestrator, an integrated control algorithm is known as an algorithm for performing resource orchestration and service orchestration (Non-Patent Document 1). In the integrated control algorithm, considering all the constraints that occur in the combination of control objects (route, VR, VNF, etc.), all control purposes (link utilization rate minimization, server usage rate leveling, etc.) The solution needs to be calculated.
  • Non-Patent Document 2 Non-Patent Document 3, Non-Patent Document 4
  • Distributed Integrated Control Non-Patent Document 5
  • the following two types have been proposed.
  • Centralized integrated control is a technology that aims at simultaneous optimization by building a mathematical model that considers multiple controlled objects simultaneously.
  • the control algorithm needs to be reconstructed every time a control target is added, deleted, changed, etc., and it is known that the expandability is low.
  • control engine that executes the control algorithm is modularized, and these modules are combined to improve extensibility.
  • control interference or “solution interference”.
  • the present invention has been made in view of the above points, and an object of the present invention is to calculate a highly accurate control solution that is highly extensible with respect to a control target.
  • the control device evaluates the control solution for each control target, and a first calculation unit that calculates a control solution for controlling the control target for each control target. Based on the second calculation unit to calculate, the solution change unit for changing the control solution based on the evaluation calculated by the second calculation unit, and the control solution changed by the solution change unit, And a control unit that controls the control target.
  • FIG. 3 is a diagram showing an example of the entire configuration in the embodiment of the present invention.
  • the network control device 100 is connected to a physical network 300.
  • the physical network 300 is a network environment including the server device 10, the transfer device 20, and the user terminal 30.
  • the network control device 100 is one or more computers having the integrated control engine unit 200.
  • the network control apparatus 100 controls the NFV environment on the physical network 300 by the integrated control engine unit 200.
  • the integrated control engine unit 200 controls the NFV by calculating the optimum arrangement of the VR and VNF on the physical network 300 and the optimum end-to-end path connecting the VR and VNF. .
  • the integrated control engine unit 200 based on the network observation information (traffic information, server usage information, etc.) and user demand received from the physical network 300, and the optimal arrangement of VR and VNF, The optimal route is calculated.
  • the network configuration information includes the network topology information of the physical network 300 and resource constraints (for example, the amount of each physical resource included in the physical network 300 (the server capacity of each server device 10 and the link of each transfer device 20). Capacity)). Further, the traffic information is a data amount of a certain link included in the physical network 300.
  • the server usage information is a usage rate or the like of physical resources (for example, a CPU or a memory) of the server device 10.
  • the user demand is VR and VNF demand information (amount of VR and VNF required for each user terminal 30), service restriction conditions (VR and VNF that need to be passed for each user terminal 30), and the like.
  • the NVF control is performed by transmitting a setting command corresponding to a solution (control solution) indicating an optimal arrangement and an optimal route calculated by the integrated control engine unit 200 to each server device 10 and each transfer device 20. Is called.
  • the server device 10 is one or more computers that realize VR and VNF arranged by the network control device 100.
  • the server device 10 acquires server usage information and transmits the acquired server usage information to the network control device 100.
  • the server device 10 processes traffic according to the VR and VNF arranged by the network control device 100, and generates traffic.
  • the transfer device 20 is a device that functions as a node for transferring traffic.
  • the transfer device 20 acquires traffic information and transmits the acquired traffic information to the network control device 100.
  • the transfer device 20 processes traffic according to the route calculated by the network control device 100.
  • the user terminal 30 is one or more computers that transmit traffic demand generated by a user's communication behavior (for example, service use start operation) to the other user terminal 30 or the server device 10.
  • the user terminal 30 transmits user demand to the network control device 100.
  • FIG. 4 is a diagram illustrating a hardware configuration example of the network control apparatus 100 according to the embodiment of the present invention.
  • the network control apparatus 100 includes an external I / F 101, a RAM (Random Access Memory) 102, a ROM (Read Only Memory) 103, a CPU 104, a communication I / F 105, and an HDD 106. .
  • Each of these hardware is connected via a bus B so as to be able to communicate.
  • External I / F 101 is an interface with an external device.
  • the external device includes a recording medium 101a.
  • the network control apparatus 100 can read and write the recording medium 101a and the like via the external I / F 101.
  • Examples of the recording medium 101a include a flexible disk, CD (Compact Disc), DVD (Digital Versatile Disk), SD memory card (Secure Digital memory card), USB (Universal Serial Bus) memory card, and the like.
  • CD Compact Disc
  • DVD Digital Versatile Disk
  • SD memory card Secure Digital memory card
  • USB Universal Serial Bus
  • the RAM 102 is a volatile semiconductor memory that temporarily stores programs and data.
  • the ROM 103 is a non-volatile semiconductor memory that can retain programs and data even when the power is turned off.
  • the ROM 103 stores, for example, OS (Operating System) settings, network settings, and the like.
  • the CPU 104 is an arithmetic unit that reads a program or data from the ROM 103, the HDD 106, or the like onto the RAM 102 and executes processing.
  • the communication I / F 105 is an interface for connecting the network control device 100 to the physical network 300.
  • the HDD 106 is an auxiliary storage device that stores programs and data. Examples of programs and data stored in the HDD 106 include an OS, application software that implements various functions on the OS, and a program that implements the integrated control engine unit 200.
  • the network control device 100 may include, for example, an SSD (Solid State Drive) as an auxiliary storage device.
  • the network control device 100 may include, for example, a display device such as a display and an input device such as a keyboard and a mouse in addition to the above hardware.
  • the network control apparatus 100 can implement various processes to be described later by having the hardware configuration shown in FIG.
  • FIG. 5 is a diagram illustrating a functional configuration example of the integrated control engine unit 200 according to the embodiment of the present invention.
  • the integrated control engine unit 200 includes an information sharing engine unit 400, a path control engine unit 500, one or more VR placement control engine units 600, and one or more VNF placement control engine units 700.
  • control engine unit 900 when the route control engine unit 500, the one or more VR arrangement control engine units 600, and the one or more VNF arrangement control engine units 700 are not distinguished from each other, they are expressed as “control engine unit 900”.
  • the input information management unit 800 receives input of network configuration information and user demand, converts the input network configuration information and user demand into constraint conditions of each control engine unit 900, Output.
  • the network configuration information is created in advance by, for example, a communication carrier that manages the physical network 300. Further, the user demand is created and input in accordance with, for example, an operation of the user of the user terminal 30.
  • the VR placement control engine unit 600 controls the placement of VR on the physical network 300 based on the constraint condition and the network observation information.
  • the integrated control engine unit 200 includes a VR arrangement control engine unit 600 for each VR to be controlled.
  • the integrated control engine unit 200 includes a VR placement control engine unit 600-1 that controls the placement of the first VM, a VR placement control engine unit 600-2 that controls the placement of the second VM, and the like.
  • the VR placement control engine unit 600 includes a VR placement calculation unit 610 and a VR placement setting unit 620.
  • the VR arrangement calculation unit 610 calculates a control solution to be controlled and an evaluation of the control solution.
  • the VR arrangement setting unit 620 transmits a setting command corresponding to the optimal control solution output by the information sharing engine unit 400 (that is, the control solution with the highest overall evaluation described later) to the server device 10 or the like. Thereby, the VR to be controlled is controlled.
  • the VNF placement control engine unit 700 controls the placement of VNFs in the physical network 300 based on the constraint conditions and the network observation information.
  • the integrated control engine unit 200 includes a VNF arrangement control engine unit 700 for each VNF to be controlled.
  • the integrated control engine unit 200 includes a VNF placement control engine unit 700-1 that controls the placement of IDS, a VNF placement control engine unit 700-2 that controls the placement of FW, and the like.
  • the VNF arrangement control engine unit 700 includes a VNF arrangement calculation unit 710 and a VNF arrangement setting unit 720.
  • the VNF arrangement calculation unit 710 calculates a control solution to be controlled and an evaluation of the control solution.
  • the VNF arrangement setting unit 720 transmits a setting command corresponding to the optimal control solution output by the information sharing engine unit 400 (that is, the control solution with the highest overall evaluation described later) to the server device 10 or the like. Thereby, the VNF to be controlled is controlled.
  • the route control engine unit 500 controls an end-to-end route connecting the VR and the VNF based on the constraint condition and the network observation information.
  • the route control engine unit 500 includes a route calculation unit 510 and a route setting unit 520.
  • the route calculation unit 510 calculates a control solution to be controlled and an evaluation of the control solution.
  • the route setting unit 520 transmits a setting command corresponding to the optimal control solution output by the information sharing engine unit 400 (that is, the control solution with the highest overall evaluation described later) to the transfer device 20 or the like. Thereby, the route to be controlled is controlled.
  • control solution is information indicating an allocation amount and allocation location (arrangement location) of a control target (route, VR, VNF, etc.) to a physical resource.
  • the evaluation of the control solution is information calculated by inputting the solution to an objective function of the control engine unit 900 (for example, minimizing the link usage rate, minimizing delay, maximizing quality, etc.). .
  • the evaluation of the control solution may be calculated not only from the objective function but also from the constraint conditions.
  • the function value of a function that outputs “+1” when the constraint condition is satisfied and “ ⁇ 1” when the constraint condition is not satisfied may be used as the evaluation of the control solution.
  • each control engine unit 900 defines, for example, a control policy (improvement of quality, improvement of resource utilization efficiency, etc.) and constraint conditions (service provision conditions, link capacity, server capacity, etc.). Yes.
  • the information sharing engine unit 400 outputs an optimal control solution to each control engine unit 900. That is, the information sharing engine unit 400 calculates a comprehensive evaluation of the control solution based on the control solution and the evaluation output from each control engine unit 900 and changes the control solution based on the comprehensive evaluation. Then, the information sharing engine unit 400 outputs the control solution with the highest overall evaluation (that is, the optimal control solution) to each control engine unit 900.
  • the minimum value of the evaluation of the control solution of each control engine unit 900 may be a comprehensive evaluation. Thereby, it is also possible to represent a conditional branch as to whether or not all the constraint conditions of each control engine unit 900 are satisfied.
  • the integrated control engine unit 200 includes the modularized control engine units 900 as in the distributed integrated control. For this reason, even when the control target is added, deleted, changed, etc. (that is, added, deleted, changed, etc. of VR and VNF), the modularized control engine unit 900 is added, deleted, changed, etc. It ’s fine.
  • the integrated control engine unit 200 includes an information sharing engine unit 400 that performs information sharing between the control engine units 900. As a result, a highly accurate control solution that avoids “control interference” can be calculated.
  • the integrated control engine unit 200 can calculate a highly accurate control solution that is highly expandable with respect to the control target. Further, due to the high extensibility, it is not necessary to construct a new algorithm when adding, deleting, or changing a control target, and it is possible to reduce OPEX (Operating Expense) and speed up the provision of network services. Furthermore, the calculation of the control solution with high accuracy reduces the amount of physical resources necessary for providing the network service, and can also reduce CAPEX (Capital Expenditure).
  • FIG. 6 is a diagram illustrating a functional configuration example of the integrated control engine unit 200 according to an embodiment.
  • the information sharing engine unit 400 of the integrated control engine unit 200 includes a learning instruction agent unit 410, a route control agent unit 420, one or more VR control agent units 430, and one or more VNF control agents.
  • Unit 440 comprehensive evaluation calculation unit 450, and input / output conversion unit 460.
  • the route control agent unit 420, the VR control agent unit 430, and the VNF control agent unit 440 are defined as “agents” in hierarchical reinforcement learning. Therefore, when the path control agent unit 420, the VR control agent unit 430, and the VNF control agent unit 440 are not distinguished from each other, they are represented as “agent unit 470”.
  • the comprehensive evaluation calculation unit 450 calculates a comprehensive evaluation from the evaluation output by each control engine unit 900.
  • the input / output conversion unit 460 converts the input / output format for each control engine unit 900 to share information. For example, when converting the output of the VR placement control engine unit 600 into the input of the route control engine unit 500, the input / output conversion unit 460, for example, converts the VM placement information into the server usage information of the server device 10 in which the VM is placed. Is converted into traffic information between the server devices 10. Note that such conversion is defined in advance for each combination of the control engine units 900 (a combination of the conversion source control engine unit 900 and the conversion destination control engine unit 900), for example.
  • the learning instruction agent unit 410 learns the selection of the agent unit 470 based on the comprehensive evaluation calculated by the comprehensive evaluation calculating unit 450.
  • the selection status of each agent unit 470 is defined as a “state” in hierarchical reinforcement learning.
  • the selection of each agent unit 470 is defined as “behavior”, and the maximum comprehensive evaluation obtained by the selected agent unit 470 during learning is defined as “reward”.
  • the agent unit 470 learns the change of the control solution of each control engine unit 900 based on the comprehensive evaluation calculated by the comprehensive evaluation calculating unit 450.
  • the control solution of the control engine unit 900 is defined as a “state” in hierarchical reinforcement learning.
  • a change in the control solution of each control engine unit 900 is defined as “action”.
  • the objective function of each control engine unit 900 is set as an evaluation, and the comprehensive evaluation calculated by the comprehensive evaluation calculation unit 450 from the evaluations of all the control engine units 900 is set as “reward”.
  • the information sharing engine unit 400 includes an agent unit 470 for each control engine unit 900.
  • the route control engine unit 500, the VR arrangement control engine units 600-1 to 600-2, and the VNF arrangement control engine units 700-1 to 700-3 are included in the integrated control engine unit 200.
  • the information sharing engine unit 400 includes a route control agent unit 420 corresponding to the route control engine unit 500 and VR control agent units 430-1 to 430 corresponding to the VR placement control engine units 600-1 to 600-2, respectively.
  • -2 and VNF control agent units 440-1 to 440-3 corresponding to the VNF placement control engine units 700-1 to 700-3, respectively.
  • the information sharing engine unit 400 includes the agent unit 470 for each control engine unit 900, so that the control engine unit 900 adds, deletes, changes, and the like (that is, adds, deletes, changes, etc. to be controlled). Even in such a case, the agent unit 470 may be added, deleted, changed, or the like. Therefore, the information sharing engine unit 400 can add, delete, change, etc. the control engine unit 900 without changing the learning algorithm of each agent unit 470, for example.
  • the integrated control engine unit 200 includes a path control engine unit 500, a VR placement control engine unit 600 that controls the placement of VMs, and a VNF placement control engine unit 700 that controls the placement of IDS. .
  • the VR that the VR placement control engine unit 600 controls the placement is not limited to the VM.
  • the VNF for which the VNF placement control engine unit 700 controls the placement is not limited to the IDS.
  • the VNF whose arrangement is controlled by the VNF arrangement control engine unit 700 may be, for example, CPE, FW, LB, DPI, Proxy, NAT, or the like.
  • the learning instruction target of the learning instruction agent unit 410 is the VR control agent unit 430 corresponding to the VR arrangement control engine unit 600 and the VNF control agent unit 440 corresponding to the VNF arrangement control engine unit 700.
  • User demand is defined as VM demand, VM size (for example, the number of necessary CPU cores, HDD capacity, etc.), traffic demand between VMs, and IDS demand (whether IDS is required).
  • the objective function of the route control engine unit 500 is “minimization of the maximum link utilization rate”, and the constraint condition is “link capacity”.
  • the objective function of the VR allocation control engine unit 600 and the VNF allocation control engine unit 700 is “minimization of the maximum server utilization rate”, and the constraint condition is “server capacity”.
  • the above assumption is an example, and the present embodiment is not limited to the above assumption.
  • “minimization of average link transmission delay time” or the like may be used as the objective function of the route control engine unit 500, and “link transmission delay time” or “link transmission quality” or the like as constraints. May be used.
  • “minimization of maximum server power consumption” or the like may be used as an objective function of the VR placement control engine unit 600 and the VNF placement control engine unit 700.
  • the “HDD capacity of the server device 10” may be used.
  • FIG. 7 is a flowchart illustrating a control process executed by the integrated control engine unit 200 according to an embodiment. Note that the control processing shown in FIG. 7 is executed, for example, every predetermined time. However, for example, it may be executed when the input information management unit 800 receives an input of user demand.
  • each variable used in the control process is defined.
  • a variable used in the entire integrated control engine unit 200 is mainly defined by the following equation (1).
  • each variable used in the route control engine unit 500 is mainly defined by the following formula 2.
  • each variable used in the VR placement control engine unit 600 and the VNF placement control engine unit 700 is mainly defined by the following formula 3.
  • each variable used in the learning instruction agent unit 410 is mainly defined by the following formula 4.
  • each variable used in the VR control agent unit 430 is mainly defined by the following formula 5.
  • each variable used in the VNF control agent unit 440 is mainly defined by the following formula 6.
  • each control engine unit 900 (route control engine unit 500, VR placement control engine unit 600, and VNF placement control engine unit 700) performs an initialization process (S101).
  • FIG. 8 is a flowchart showing initialization processing in one embodiment.
  • the VR placement control engine unit 600 inputs the input condition shown in the following Expression 7 (S201). Note that these input conditions include constraint conditions input from the input information management unit 800 and network observation information input from the server device 10.
  • the VR placement control engine unit 600 calculates an initial solution A vm by solving the mathematical optimization problem shown in the following Equation 8 by using the VR placement calculation unit 610 (S202).
  • the VNF placement control engine unit 700 inputs the input condition shown in the following Equation 9 (S203). Note that these input conditions include constraint conditions input from the input information management unit 800 and network observation information input from the server device 10.
  • the VNF placement control engine unit 700 calculates the initial solution A ids by solving the mathematical optimization problem shown in the following Equation 10 by the VNF placement calculation unit 710 (S204).
  • the route control engine unit 500 inputs the input condition shown in the following Expression 11 (S205).
  • These input conditions include constraint conditions input from the input information management unit 800 and network observation information input from the transfer device 20.
  • the input / output conversion unit 460 converts the traffic demand T vm between the VMs into the traffic demand between the server apparatuses 10 (S206).
  • the converted traffic demand is substituted into a variable T server .
  • the route control engine unit 500 uses the route calculation unit 510 to calculate the initial solution x ij pq by solving the mathematical optimization problem shown in Equation 12 below (S207).
  • each control engine unit 900 route control engine unit 500, VR placement control engine unit 600, and VNF placement control engine unit 700.
  • the learning instruction agent unit 410 initializes an expected value Q of profit (that is, the sum of comprehensive evaluations obtained over the future) to 0 (S102). That is, the learning instruction agent unit 410 performs the substitution shown in the following Equation 13.
  • the learning instruction agent unit 410 randomly selects one agent unit 470 from the set A of each agent unit 470 (S103).
  • the learning instruction agent unit 410 performs processing and substitution shown in Equation 15 below, and selects one agent unit 470 to be learned (S105). That is, the learning instruction agent unit 410 performs action selection.
  • ⁇ -greedy (s t ca ) means the strategy of the learning instruction agent unit 410, and one agent unit 470 is selected by the ⁇ greedy method.
  • the learning instruction agent unit 410 randomly selects an action with a probability of ⁇ (that is, randomly selects the agent unit 470), and the expected value Q at step t is the maximum with a probability of 1 ⁇ . Make an action selection.
  • the learning instruction agent unit 410 performs the processing and substitution shown in the following equation 16 to change the agent unit 470 selected in the above S105 into a learning instruction target (S106). That is, the learning instruction agent unit 410 performs an action and makes a state transition.
  • action (a t ca ) means an action of the learning instruction agent unit 410. That is, the learning instruction agent unit 410 switches the learning instruction target to the agent unit 470 selected in S105, and changes the state s t ca to the state s t + 1 ca.
  • the learning instruction agent unit 410 performs the processing indicated by the following Expression 17, and issues a learning instruction to the agent unit 470 that has been changed to the learning instruction target in S106 described above (S107).
  • agent_learning (a) is a learning instruction to “a” included in the set A of each agent unit 470 (the agent unit 470 selected in the above S105 and changed to the learning instruction target in the above S106). Means to do.
  • the agent unit 470 instructed to learn in S107 performs a learning process (S108).
  • the maximum comprehensive evaluation that is, the reward of the learning instruction agent unit 410
  • rt ′ the control solution from which the maximum comprehensive evaluation rt ′ is obtained are output. Details of the learning process of the agent unit 470 will be described later.
  • the learning instruction agent unit 410 substitutes the maximum overall evaluation r t ′ output in the learning process of the agent unit 470 into a variable represented by the following Expression 18 (S109). Thereby, the learning instruction agent unit 410 acquires a reward.
  • the learning instruction agent unit 410 performs the calculation and substitution shown in the following Equation 19 to update the expected value Q of revenue (S110). That is, the learning instruction agent unit 410 updates the expected value of revenue from the state, action, and reward. Update of the expected value of profit means learning of the strategy of the learning instruction agent unit 410.
  • the learning instruction agent unit 410 determines whether or not the state (s t + 1 ca ) in step t + 1 has reached the end state (S111).
  • the end state is, for example, a case where a control solution with a predetermined accuracy is calculated.
  • the end state may be a case where the number of steps exceeds a predetermined number.
  • the learning instruction agent unit 410 substitutes T ca for t when it is determined in S111 that the end state has been reached (S112). Thereby, the learning instruction agent unit 410 can skip S104 to S113 and perform S114 described later.
  • the learning instruction agent unit 410 outputs the control solution (that is, the optimal control solution with the maximum comprehensive evaluation) output in the learning process of each agent unit 470 to each control engine corresponding to each agent unit 470.
  • the data is output to the unit 900 (S114).
  • the VR placement control engine unit 600 transmits a setting command corresponding to the control solution to the server device 10 or the like by the VR placement setting unit 620, and places the VR (VM in this embodiment) to be controlled. Can be controlled.
  • the VNF arrangement control engine unit 700 transmits a setting command corresponding to the control solution to the server device 10 or the like by the VNF arrangement setting unit 720, and arranges the VNF (IDS in this embodiment) to be controlled. Can be controlled.
  • FIG. 9 is a flowchart illustrating the learning process of the agent unit 470 according to an embodiment.
  • agent unit 470 to which the learning instruction is given is the “VR control agent unit 430”, “agent” is replaced with “vm”.
  • agent unit 470 to which the learning instruction is given is the “VNF control agent unit 440”, “agent” is replaced with “ids”.
  • the agent unit 470 initializes the expected value Q of revenue to 0 (S301). That is, the agent unit 470 performs substitution shown in the following Expression 20.
  • the agent unit 470 performs processing and substitution shown in the following Equation 22 and selects a change in the control solution (S304). That is, the agent unit 470 performs action selection.
  • ⁇ -greedy means the strategy of each agent unit 470, and the control solution change is selected by the ⁇ greedy method.
  • the agent unit 470 randomly selects an action with a probability of ⁇ (that is, randomly selects a control solution change), and the expected value Q at step t is maximized with a probability of 1 ⁇ . Make an action selection.
  • the agent unit 470 performs the processing and substitution shown in the following Expression 23 to change the control solution selected in the above S103 (S305). That is, the agent unit 470 performs an action and makes a state transition.
  • action refers to the behavior of the agent unit 470. That is, the agent unit 470 changes the control solution selected in S305 described above, and changes the state s t agent to the state s t + 1 agent . The action changes a part of the control solution. In the action, for example, the agent unit 470 randomly selects one VM or IDS from the most congested server device 10 and moves the VM or IDS based on the strategy.
  • the input / output conversion unit 460 converts the traffic demand T vm between the VMs into the traffic demand between the server apparatuses 10 (S306).
  • the converted traffic demand is substituted into a variable T server .
  • the route control engine unit 500 calculates an objective function (evaluation) by solving the mathematical optimization problem shown in the above equation 12 by the route calculation unit 510. Then, the route control agent unit 420 substitutes the calculated objective function for the variable shown in the following Expression 24 (S307).
  • the VR placement control engine unit 600 or the VNF placement control engine unit 700 calculates the objective function (evaluation) by solving the mathematical optimization problem shown in the above equation 8 or 10. Then, the VR placement control engine unit 600 or the VNF placement control engine unit 700 substitutes the calculated objective function into a variable represented by the following formula 25 (S308).
  • the comprehensive evaluation calculation unit 450 performs processing and substitution shown in the following Expression 26 to calculate a comprehensive evaluation (reward) (S309).
  • calc_reward means that a comprehensive evaluation is calculated from evaluations of all control engine units 900.
  • the comprehensive evaluation calculation unit 450 uses, for example, a weighted average of the reciprocal of the evaluation of each control engine unit 900 as the comprehensive evaluation.
  • the weight of the reciprocal of the evaluation of each control engine unit 900 is, for example, the importance ⁇ and ⁇ of the control policy of the control engine unit 900.
  • the agent unit 470 performs the calculation and substitution shown in the following Expression 27 to update the expected value Q of the profit (S310). That is, the agent unit 470 updates the expected value of revenue from the state, action, and reward. Updating the expected value of profit means learning the strategy of the agent unit 470.
  • the agent unit 470 determines whether or not the state (s t + 1 agent ) at step t + 1 has reached the end state (S311).
  • the end state is, for example, a case where a control solution with a predetermined accuracy is calculated.
  • the end state may be a case where the number of steps exceeds a predetermined number.
  • Agent 470 when it is determined that a termination state in S311 described above, is substituted for T a to t (S312). As a result, the agent unit 470 can skip S303 to S313 and perform S314 described later.
  • the agent unit 470 outputs, to the learning instruction agent unit 410, the maximum comprehensive evaluation of the comprehensive evaluations calculated in S309 and the control solution for which the maximum comprehensive evaluation is calculated (S314). That is, the agent unit 470 outputs the maximum comprehensive evaluation r t ′ calculated by the following Equation 28 and the control solution st t agent where the maximum comprehensive evaluation is calculated.
  • each agent unit 470 can output the maximum comprehensive evaluation and the control solution (that is, the optimal control solution) for which the maximum comprehensive evaluation is calculated to the learning instruction agent unit 410.
  • FIG. 10 is a diagram illustrating an evaluation example of a control process executed by the integrated control engine unit 200.
  • FIG. 10 shows a graph in which the horizontal axis indicates the number of trials and the vertical axis indicates the maximum link utilization rate.
  • the maximum link utilization rate is improved as the number of trials progresses (that is, as the learning of the agent unit 470 progresses).
  • the maximum link utilization rate is as high as 0.75 to 0.95 (that is, 75% to 95%), and the accuracy of the control solution is poor.
  • the number of trials increases to about 10,000 times, the maximum link utilization rate decreases to 40% or less under all calculation conditions. Therefore, for example, in the case of a system having about several tens of VMs, the resource utilization rate such as the maximum link utilization rate can be improved by a factor of two or more with the number of trials of about 10,000.
  • the integrated control engine unit 200 is not limited to the control of VR and NFV. If the preconditions of the control engine unit 900 are satisfied, integrated control over a plurality of control objects can be performed.
  • control purpose of the integrated control engine unit 200 in the present invention is not limited to the improvement of the resource utilization efficiency of the physical network 300.
  • the present invention can be similarly applied to improvement of various control purposes such as quality, power, and security.
  • the method for realizing the integrated control engine unit 200 in the present invention is not limited to the reinforcement learning technique.
  • the control solution of the control engine unit 900 can be realized by using a genetic algorithm technique by replacing the control solution with a gene operation such as “gene” and changing the control solution with a genetic operation such as “selection” or “crossover”.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Automation & Control Theory (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Feedback Control In General (AREA)

Abstract

制御対象毎に、該制御対象を制御するための制御解を算出する第1の算出部と、前記制御対象毎に、前記制御解の評価を算出する第2の算出部と、前記第2の算出部により算出された評価に基づいて、前記制御解を変更する解変更部と、前記解変更部により変更された制御解に基づいて、前記制御対象を制御する制御部と、を有する。

Description

制御装置、制御方法、及びプログラム
 本発明は、制御装置、制御方法、及びプログラムに関する。
 多種多様な仮想リソース(VR:Virtual Resource)や仮想ネットワーク機能(VNF:Virtual Network Function)を組み合わせて、様々な種別のネットワークサービスを提供することが可能なNFV(Network Functions Virtualization)と呼ばれる技術が知られている。
 VRとしては、例えば、CPU(Central Processing Unit)やHDD(Hard Disk Drive)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)等を組み合わせたVM(Virtual Machine)が挙げられる。また、VNFとしては、例えば、CPE(Customer Premises Equipment)、FW(Firewall)、LB(Load Balancer)、DPI(Deep Packet Inspection)、Proxy、IDS(Intrusion Detection System)、NAT(Network Address Translation)等が挙げられる。
 NFVでは、「リソースオーケストレーション」及び「サービスオーケストレーション」と呼ばれる機能によりVR及びVNFの制御が行われている。リソースオーケストレーションとは、物理ネットワーク上にVR及びVNFを配置する機能のことである。サービスオーケストレーションとは、VRやVNF間を繋ぐEnd-to-Endの経路を算出する機能のことである。
 例えば、図1に示すように、ユーザ端末がCPE、FW、及びLBを介してVMに接続するサービスAと、ユーザ端末がDPI及びProxyを介して他のユーザ端末に接続するサービスBと、VMがIDS及びFWを介して他のVMに接続するサービスCとの3種類のネットワークサービスをサービス提供者が提供するものとする。この場合、まず、図2のSTEP1)に示すように、物理ネットワーク上の各サーバ装置にVR及びVNFを配置することでリソースオーケストレーションが行われる。次に、図2のSTEP2)に示すように、物理ネットワーク上に配置されたVR及びVNF間の経路を算出することでサービスオーケストレーションが行われる。
 しかしながら、多種多様なVR及びVNFが存在するため、リソースオーケストレーション及びサービスオーケストレーションを手動で行うことは困難である。そこで、NFVの制御を自動化するNFVオーケストレータの実現が望まれている。
 NFVオーケストレータの実現に向けて、リソースオーケストレーション及びサービスオーケストレーションを行うアルゴリズムとして統合制御アルゴリズムが知られている(非特許文献1)。統合制御アルゴリズムでは、制御対象(経路、VR、VNF等)の組み合わせで生じる全ての制約条件を考慮し、全ての制御目的(リンク利用率の最小化、サーバ利用率の平準化等)に応じた解を算出する必要がある。
 統合制御アルゴリズムに関する技術としては、「集中型統合制御」(非特許文献2、非特許文献3、非特許文献4)と、「分散型統合制御」(非特許文献5、非特許文献6)との2種類が提案されている。
 集中型統合制御とは、複数の制御対象を同時に考慮する数理モデルを構築して、同時最適化を目指す技術である。しかしながら、集中統合制御では、制御対象の追加や削除、変更等の度に制御アルゴリズムを再構築する必要があり、拡張性が低いことが知られている。
 これに対し、分散型統合制御では、制御アルゴリズムを実行する「制御エンジン」をモジュール化した上で、これらモジュールを組み合わせることで、拡張性の向上を図っている。
R. Mijumbi et al., "Management and orchestration challenges in network functions virtualization," Communications Magazine, 54.1, pp.98-105, 2016. J. W. Jiang et al., "Joint VM placement and routing for data center traffic engineering", INFOCOM, 2012. M. Bouet, J. Leguay, and V. Conan, "Cost-based placement of virtualized deep packet inspection functions in sdn", Military Communications Conference (MILCOM), 2013. M. Yoshida et al., "MORSA: A multi-objective resource scheduling algorithm for NFV infrastructure", Network Operations and Management Symposium (APNOMS), 2014. K. Tsagkaris et al., "A survey of autonomic networking architectures: towards a Unified Management Framework", International Journal of Network Management, 23.6, pp.402-423, 2013. K. Tsagkaris et al., "Customizable Autonomic Network Management: Integrating Autonomic Network Management and Software-Defined Networking", Vehicular Technology Magazine, pp.61-68, 2015.
 しかしながら、分散型統合制御では、具体的な制御アルゴリズムが確立されておらず、各制御エンジンをそれぞれ独立に制御している。このため、分散型統合制御では、ある制御エンジンによる制御の結果が、他の制御エンジンの制御に影響を与え、解の精度が低下することがあった。このような影響は「制御の干渉」又は「解の干渉」とも称される。
 本発明は、上記の点に鑑みてなされたものであって、制御対象に対する拡張性が高く、かつ、高精度な制御解を算出することを目的とする。
 そこで、上記課題を解決するため、制御装置は、制御対象毎に、該制御対象を制御するための制御解を算出する第1の算出部と、前記制御対象毎に、前記制御解の評価を算出する第2の算出部と、前記第2の算出部により算出された評価に基づいて、前記制御解を変更する解変更部と、前記解変更部により変更された制御解に基づいて、前記制御対象を制御する制御部と、を有する。
 制御対象に対する拡張性が高く、かつ、高精度な制御解を算出することができる。
仮想ネットワーク上に構築されたネットワークサービスの一例を示す図である。 リソースオーケストレーション及びサービスオーケストレーションの一例を示す図である。 本発明の実施の形態における全体構成例を示す図である。 本発明の実施の形態におけるネットワーク制御装置のハードウェア構成例を示す図である。 本発明の実施の形態における統合制御エンジン部の機能構成例を示す図である。 一実施例における統合制御エンジン部の機能構成例を示す図である。 一実施例における統合制御エンジン部が実行する制御処理を示すフローチャートである。 一実施例における初期化処理を示すフローチャートである。 一実施例におけるエージェント部の学習処理を示すフローチャートである。 統合制御エンジン部が実行する制御処理の評価例を示す図である。
 以下、本発明の実施の形態について、図面を参照しながら説明する。
 <全体構成>
 まず、本発明の実施の形態における全体構成例について、図3を参照しながら説明する。図3は、本発明の実施の形態における全体構成例を示す図である。
 図3に示すように、ネットワーク制御装置100は、物理ネットワーク300と接続される。物理ネットワーク300は、サーバ装置10と、転送装置20と、ユーザ端末30とが含まれるネットワーク環境である。
 ネットワーク制御装置100は、統合制御エンジン部200を有する1以上のコンピュータである。ネットワーク制御装置100は、統合制御エンジン部200により、物理ネットワーク300上のNFV環境を制御する。
 すなわち、統合制御エンジン部200は、物理ネットワーク300上におけるVR及びVNFの最適な配置と、これらVR及びVNF間を繋ぐEnd-to-Endの最適な経路とを算出することで、NFVを制御する。このとき、統合制御エンジン部200は、物理ネットワーク300から受信したネットワーク観測情報(トラヒック情報やサーバ利用情報等)及びユーザ需要と、ネットワーク構成情報とに基づいて、VR及びVNFの最適な配置と、最適な経路とを算出する。
 なお、ネットワーク構成情報とは、物理ネットワーク300のネットワークトポロジー情報や、リソースの制約条件(例えば、物理ネットワーク300に含まれる各物理リソースの量(各サーバ装置10のサーバ容量や各転送装置20のリンク容量等))である。
また、トラヒック情報とは、物理ネットワーク300に含まれるあるリンクのデータ量等である。サーバ利用情報とは、サーバ装置10の物理リソース(例えばCPUやメモリ等)の利用率等である。ユーザ需要とは、VR及びVNFの需要情報(ユーザ端末30毎に必要なVR及びVNFの量)、サービスの制約条件(ユーザ端末30毎に経由する必要があるVR及びVNF)等である。
 NVFの制御は、統合制御エンジン部200により算出された最適な配置及び最適な経路を示す解(制御解)に応じた設定命令を、各サーバ装置10及び各転送装置20に送信することで行われる。
 サーバ装置10は、ネットワーク制御装置100により配置されるVR及びVNFを実現する1以上のコンピュータである。サーバ装置10は、サーバ利用情報を取得して、取得したサーバ利用情報をネットワーク制御装置100に送信する。また、サーバ装置10は、ネットワーク制御装置100により配置されたVR及びVNFに従ってトラヒックを処理し、トラヒックを発生させる。
 転送装置20は、トラヒックを転送するノードとして機能する機器である。転送装置20は、トラヒック情報を取得して、取得したトラヒック情報をネットワーク制御装置100に送信する。また、転送装置20は、ネットワーク制御装置100により算出された経路に従ってトラヒックを処理する。
 ユーザ端末30は、ユーザの通信行動(例えば、サービスの利用開始操作等)により発生したトラヒック需要を、他のユーザ端末30やサーバ装置10等に送信する1以上のコンピュータである。ユーザ端末30は、ユーザ需要をネットワーク制御装置100に送信する。
 <ネットワーク制御装置100のハードウェア構成>
 次に、本発明の実施の形態におけるネットワーク制御装置100のハードウェア構成例について、図4を参照しながら説明する。図4は、本発明の実施の形態におけるネットワーク制御装置100のハードウェア構成例を示す図である。
 図4に示すように、ネットワーク制御装置100は、外部I/F101と、RAM(Random Access Memory)102と、ROM(Read Only Memory)103と、CPU104と、通信I/F105と、HDD106とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。
 外部I/F101は、外部装置とのインタフェースである。外部装置には、記録媒体101a等がある。ネットワーク制御装置100は、外部I/F101を介して記録媒体101a等の読み取りや書き込みを行うことができる。
 記録媒体101aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
 RAM102は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM103は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM103には、例えば、OS(Operating System)設定やネットワーク設定等が格納されている。
 CPU104は、ROM103やHDD106等からプログラムやデータをRAM102上に読み出して処理を実行する演算装置である。通信I/F105は、ネットワーク制御装置100を物理ネットワーク300に接続するためのインタフェースである。
 HDD106は、プログラムやデータを格納している補助記憶装置である。HDD106に格納されているプログラムやデータには、例えば、OS、当該OS上において各種機能を実現するアプリケーションソフトウェア、統合制御エンジン部200を実現するプログラム等がある。なお、ネットワーク制御装置100は、補助記憶装置として、例えば、SSD(Solid State Drive)等を有していても良い。
 なお、ネットワーク制御装置100は、上記の各ハードウェアに加えて、例えば、ディスプレイ等の表示装置と、キーボードやマウス等の入力装置とを有していても良い。
 本実施形態に係るネットワーク制御装置100は、図4に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
 <統合制御エンジン部200の機能構成>
 次に、ネットワーク制御装置100が有する統合制御エンジン部200の機能構成例について、図5を参照しながら説明する。図5は、本発明の実施の形態における統合制御エンジン部200の機能構成例を示す図である。
 図5に示すように、統合制御エンジン部200は、情報共有エンジン部400と、経路制御エンジン部500と、1以上のVR配置制御エンジン部600と、1以上のVNF配置制御エンジン部700と、入力情報管理部800とを有する。
 なお、以降は、複数のVR配置制御エンジン部600のそれぞれを区別するときは、「VR配置制御エンジン部600-1」、「VR配置制御エンジン部600-2」等と表す。同様に、複数のVNF配置制御エンジン部700のそれぞれを区別するときは、「VNF配置制御エンジン部700-1」、「VNF配置制御エンジン部700-2」等と表す。
 また、経路制御エンジン部500と、1以上のVR配置制御エンジン部600と、1以上のVNF配置制御エンジン部700とをそれぞれ区別しないときは、「制御エンジン部900」と表す。
 入力情報管理部800は、ネットワーク構成情報及びユーザ需要の入力を受け付けて、入力されたネットワーク構成情報及びユーザ需要を各制御エンジン部900の制約条件に変換した上で、当該各制御エンジン部900に出力する。
 なお、ネットワーク構成情報は、例えば、物理ネットワーク300を管理する通信事業者等によって予め作成される。また、ユーザ需要は、例えば、ユーザ端末30のユーザの操作等に応じて作成及び入力される。
 VR配置制御エンジン部600は、制約条件と、ネットワーク観測情報とに基づいて、物理ネットワーク300へのVRの配置を制御する。
 統合制御エンジン部200は、制御対象のVR毎に、VR配置制御エンジン部600を有する。例えば、統合制御エンジン部200は、第1のVMの配置を制御するVR配置制御エンジン部600-1、第2のVMの配置を制御するVR配置制御エンジン部600-2等を有する。
 ここで、VR配置制御エンジン部600は、VR配置計算部610と、VR配置設定部620とを有する。VR配置計算部610は、制御対象の制御解と、当該制御解の評価とを算出する。VR配置設定部620は、情報共有エンジン部400により出力された最適な制御解(すなわち、後述する最も総合評価が高い制御解)に応じた設定命令を、サーバ装置10等に送信する。これにより、制御対象のVRが制御される。
 VNF配置制御エンジン部700は、制約条件と、ネットワーク観測情報とに基づいて、物理ネットワーク300へのVNFの配置を制御する。
 統合制御エンジン部200は、制御対象のVNF毎に、VNF配置制御エンジン部700を有する。例えば、統合制御エンジン部200は、IDSの配置を制御するVNF配置制御エンジン部700-1と、FWの配置を制御するVNF配置制御エンジン部700-2等を有する。
 ここで、VNF配置制御エンジン部700は、VNF配置計算部710と、VNF配置設定部720とを有する。VNF配置計算部710は、制御対象の制御解と、当該制御解の評価とを算出する。VNF配置設定部720は、情報共有エンジン部400により出力された最適な制御解(すなわち、後述する最も総合評価が高い制御解)に応じた設定命令を、サーバ装置10等に送信する。これにより、制御対象のVNFが制御される。
 経路制御エンジン部500は、制約条件と、ネットワーク観測情報とに基づいて、VR及びVNF間を繋ぐEnd-to-Endの経路を制御する。
 ここで、経路制御エンジン部500は、経路計算部510と、経路設定部520とを有する。経路計算部510は、制御対象の制御解と、当該制御解の評価とを算出する。経路設定部520は、情報共有エンジン部400により出力された最適な制御解(すなわち、後述する最も総合評価が高い制御解)に応じた設定命令を、転送装置20等に送信する。これにより、制御対象の経路が制御される。
 ここで、制御解とは、制御対象(経路、VR、VNF等)の物理リソースへの割当量や割当箇所(配置箇所)を示す情報である。また、制御解の評価とは、制御エンジン部900の目的関数(例えば、リンク利用率の最小化や遅延の最小化、品質の最大化等)に解を入力することで算出される情報である。
 ただし、制御解の評価は、目的関数だけなく、制約条件から算出することができても良い。例えば、制約条件を満たす場合は「+1」、制約条件を満たさない場合は「-1」を出力する関数の関数値を制御解の評価としても良い。
 なお、各制御エンジン部900が実行する制御アルゴリズムには、例えば、制御ポリシ(品質の向上やリソース利用効率の向上等)、制約条件(サービス提供条件やリンク容量、サーバ容量等)が定義されている。
 情報共有エンジン部400は、最適な制御解を各制御エンジン部900に出力する。すなわち、情報共有エンジン部400は、各制御エンジン部900から出力された制御解と評価とに基づいて当該制御解の総合評価を算出すると共に、当該総合評価に基づく制御解の変更を行う。そして、情報共有エンジン部400は、最も総合評価が高い制御解(すなわち、最適な制御解)を当該各制御エンジン部900に出力する。
 なお、情報共有エンジン部400が制約条件を満たさない場合は、各制御エンジン部900の制御解の評価の最小値を総合評価としても良い。これにより、各制御エンジン部900の全ての制約条件を満たすか否かの条件分岐を表すこともできる。
 以上のように、統合制御エンジン部200には、分散型統合制御と同様に、モジュール化された各制御エンジン部900が含まれる。このため、制御対象が追加や削除、変更等(すなわち、VRやVNFの追加や削除、変更等)された場合であっても、モジュール化された制御エンジン部900を追加や削除、変更等すれば良い。
 また、統合制御エンジン部200には、これら制御エンジン部900間の情報共有を行う情報共有エンジン部400が含まれる。これにより、「制御の干渉」を回避した高精度な制御解を算出することができる。
 したがって、本発明における統合制御エンジン部200は、制御対象に対する拡張性が高く、かつ、高い精度の制御解を算出することができる。また、高い拡張性により、制御対象を追加や削除、変更等する際に新たなアルゴリズムの構築が不要になり、OPEX(Operating Expense)の削減やネットワークサービス提供の迅速化等も図ることができる。更に、高精度の制御解の算出により、ネットワークサービス提供に必要な物理リソース量が削減され、CAPEX(Capital Expenditure)の削減も図ることができる。
 <実施例>
 次に、本実施形態の一実施例について説明する。以降では、一例として、統合制御エンジン部200の情報共有エンジン部400が階層型強化学習の手法を用いて実現される場合について説明する。階層型強化学習の手法を用いることで、各制御エンジン部900が最初に算出した制御解(初期解)の改善(すなわち、制御解の変更)を繰り返すことにより、最適な制御解を効率的に得ることができる。
  (一実施例における統合制御エンジン部200)
 まず、一実施例における統合制御エンジン部200の機能構成例について、図6を参照しながら説明する。図6は、一実施例における統合制御エンジン部200の機能構成例を示す図である。
 図6に示すように、統合制御エンジン部200の情報共有エンジン部400は、学習指示エージェント部410と、経路制御エージェント部420と、1以上のVR制御エージェント部430と、1以上のVNF制御エージェント部440と、総合評価算出部450と、入出力変換部460とを有する。
 なお、以降は、複数のVR制御エージェント部430のそれぞれを区別するときは、「VR制御エージェント部430-1」、「VR制御エージェント部430-2」等と表す。同様に、複数のVNF制御エージェント部440のそれぞれを区別するときは、「VNF制御エージェント部440-1」、「VNF制御エージェント部440-2」等と表す。
 ここで、経路制御エージェント部420と、VR制御エージェント部430と、VNF制御エージェント部440とを、階層型強化学習における「エージェント」と定義する。したがって、経路制御エージェント部420と、VR制御エージェント部430と、VNF制御エージェント部440とをそれぞれ区別しないときは、「エージェント部470」と表す。
 総合評価算出部450は、各制御エンジン部900により出力された評価から総合評価を算出する。
 入出力変換部460は、各制御エンジン部900が情報共有を行うための入出力形式の変換を行う。例えば、VR配置制御エンジン部600の出力を経路制御エンジン部500の入力に変換する場合、入出力変換部460は、例えばVMの配置情報を当該VMが配置されているサーバ装置10のサーバ利用情報に変換することで、VM間のトラヒック情報をサーバ装置10間のトラヒック情報に変換する。なお、このような変換は、例えば、各制御エンジン部900の組み合わせ(変換元の制御エンジン部900と、変換先の制御エンジン部900との組み合わせ)毎に予め定義される。
 学習指示エージェント部410は、総合評価算出部450が算出した総合評価に基づいてエージェント部470の選択を学習する。ここで、各エージェント部470の選択状況を、階層型強化学習における「状態」と定義する。同様に、各エージェント部470の選択を「行動」、選択されたエージェント部470が学習中に獲得した最大総合評価を「報酬」と定義する。
 エージェント部470(経路制御エージェント部420、VR制御エージェント部430、及びVNF制御エージェント部440)は、総合評価算出部450が算出した総合評価に基づいて各制御エンジン部900の制御解の変更を学習する。ここで、制御エンジン部900の制御解を、階層型強化学習における「状態」と定義する。同様に、各制御エンジン部900の制御解の変更を「行動」と定義する。また、同様に、各制御エンジン部900の目的関数を評価とし、全ての制御エンジン部900の評価から総合評価算出部450により算出した総合評価を「報酬」とする。
 情報共有エンジン部400は、制御エンジン部900毎に、エージェント部470を有する。例えば、経路制御エンジン部500と、VR配置制御エンジン部600-1~600-2と、VNF配置制御エンジン部700-1~700-3とが統合制御エンジン部200に含まれるものとする。この場合、情報共有エンジン部400は、経路制御エンジン部500に対応する経路制御エージェント部420と、VR配置制御エンジン部600-1~600-2にそれぞれ対応するVR制御エージェント部430-1~430-2と、VNF配置制御エンジン部700-1~700-3にそれぞれ対応するVNF制御エージェント部440-1~440-3とを有する。
 このように、情報共有エンジン部400には、制御エンジン部900毎のエージェント部470を有することで、制御エンジン部900が追加や削除、変更等(すなわち、制御対象の追加や削除、変更等)された場合であっても、エージェント部470の追加や削除、変更等を行えば良い。したがって、情報共有エンジン部400は、例えば各エージェント部470の学習アルゴリズムを変更等することなく、制御エンジン部900の追加や削除、変更等が行うことができる。
  (一実施例における統合制御エンジン部200が実行する制御処理)
 以降では、一例として、経路と、VRの一例であるVMの配置と、VNFの一例であるIDSの配置とを制御する場合について説明する。したがって、統合制御エンジン部200には、経路制御エンジン部500と、VMの配置を制御するVR配置制御エンジン部600と、IDSの配置を制御するVNF配置制御エンジン部700とが含まれるものとする。
 ただし、VR配置制御エンジン部600が配置を制御するVRはVMに限られない。同様に、VNF配置制御エンジン部700が配置を制御するVNFはIDSに限られない。VNF配置制御エンジン部700が配置を制御するVNFは、例えば、CPE、FW、LB、DPI、Proxy、NAT等であっても良い。
 また、説明を簡単にするため、以下の前提の下に一実施例における制御処理を説明するものとする。
・学習指示エージェント部410の学習指示の対象は、当該VR配置制御エンジン部600に対応するVR制御エージェント部430と、当該VNF配置制御エンジン部700に対応するVNF制御エージェント部440とであるものとする。
・ユーザ需要は、VM需要、VMサイズ(例えば、必要なCPUコア数やHDD容量等)、VM間のトラヒック需要、及びIDS需要(IDSが必要か否か)とする。
・経路制御エンジン部500の目的関数は「最大リンク利用率の最小化」、制約条件は「リンク容量」とする。
・VR配置制御エンジン部600及びVNF配置制御エンジン部700の目的関数は「最大サーバ利用率の最小化」、制約条件は「サーバ容量」とする。
 なお、上記の前提は一例であって、本実施例は上記の前提に限定されるものではない。例えば、経路制御エンジン部500の目的関数としては、「平均リンク伝送遅延時間の最小化」等を用いても良く、制約条件としては、「リンクの伝送遅延時間」や「リンクの伝送品質」等が用いられても良い。また、例えば、VR配置制御エンジン部600及びVNF配置制御エンジン部700の目的関数として、「最大サーバ消費電力の最小化」等を用いても良く、制約条件としては、「サーバ装置10が備えるCPUの処理能力」や「サーバ装置10が備えるHDD容量」等が用いられても良い。
 一実施例における統合制御エンジン部200が実行する制御処理(NFVの制御処理)について、図7を参照しながら説明する。図7は、一実施例における統合制御エンジン部200が実行する制御処理を示すフローチャートである。なお、図7に示す制御処理は、例えば、所定の時間毎に実行される。ただし、例えば、入力情報管理部800がユーザ需要の入力を受け付けたことを契機として実行されても良い。
 図7に示す制御処理の説明の前に、当該制御処理で用いる各変数を定義する。まず、主に、統合制御エンジン部200全体で用いる変数を以下の数1で定義する。
Figure JPOXMLDOC01-appb-M000001
 次に、主に、経路制御エンジン部500で用いる各変数を以下の数2で定義する。
Figure JPOXMLDOC01-appb-M000002
 次に、主に、VR配置制御エンジン部600及びVNF配置制御エンジン部700で用いる各変数を以下の数3で定義する。
Figure JPOXMLDOC01-appb-M000003
 次に、主に、学習指示エージェント部410で用いる各変数を以下の数4で定義する。
Figure JPOXMLDOC01-appb-M000004
 次に、主に、VR制御エージェント部430で用いる各変数を以下の数5で定義する。
Figure JPOXMLDOC01-appb-M000005
 最後に、主に、VNF制御エージェント部440で用いる各変数を以下の数6で定義する。
Figure JPOXMLDOC01-appb-M000006
 まず、各制御エンジン部900(経路制御エンジン部500、VR配置制御エンジン部600、及びVNF配置制御エンジン部700)は、初期化処理を行う(S101)。
 ここで、各制御エンジン部900の初期化処理について、図8を参照しながら説明する。図8は、一実施例における初期化処理を示すフローチャートである。
 まず、VR配置制御エンジン部600は、以下の数7に示す入力条件を入力する(S201)。なお、これらの入力条件には、入力情報管理部800から入力される制約条件と、サーバ装置10から入力されるネットワーク観測情報とが含まれる。
Figure JPOXMLDOC01-appb-M000007
 次に、VR配置制御エンジン部600は、VR配置計算部610により、以下の数8に示す数理最適化問題を解くことで、初期解Avmを算出する(S202)。
Figure JPOXMLDOC01-appb-M000008
 次に、VNF配置制御エンジン部700は、以下の数9に示す入力条件を入力する(S203)。なお、これらの入力条件には、入力情報管理部800から入力される制約条件と、サーバ装置10から入力されるネットワーク観測情報とが含まれる。
Figure JPOXMLDOC01-appb-M000009
 次に、VNF配置制御エンジン部700は、VNF配置計算部710により、以下の数10に示す数理最適化問題を解くことで、初期解Aidsを算出する(S204)。
Figure JPOXMLDOC01-appb-M000010
 次に、経路制御エンジン部500は、以下の数11に示す入力条件を入力する(S205)。なお、これらの入力条件には、入力情報管理部800から入力される制約条件と、転送装置20から入力されるネットワーク観測情報とが含まれる。
Figure JPOXMLDOC01-appb-M000011
 次に、入出力変換部460は、VM間のトラヒック需要Tvmを、サーバ装置10間のトラヒック需要に変換する(S206)。変換されたトラヒック需要は、変数Tserverに代入される。
 次に、経路制御エンジン部500は、経路計算部510により、以下の数12に示す数理最適化問題を解くことで、初期解xij pqを算出する(S207)。
Figure JPOXMLDOC01-appb-M000012
 以上のように、各制御エンジン部900(経路制御エンジン部500、VR配置制御エンジン部600、及びVNF配置制御エンジン部700)により初期解が算出される。
 図7に戻る。S101に続いて、学習指示エージェント部410は、収益(すなわち、将来にわたって得られる総合評価の和)の期待値Qを0に初期化する(S102)。すなわち、学習指示エージェント部410は、以下の数13に示す代入を行う。
Figure JPOXMLDOC01-appb-M000013
 次に、学習指示エージェント部410は、各エージェント部470の集合Aから一のエージェント部470をランダムに選択する(S103)。選択されたエージェント部470を以下の数14に示す変数に代入する。すなわち、当該エージェント部470の選択状況を、ステップt=0における学習指示エージェント部410の状態s caとする。
Figure JPOXMLDOC01-appb-M000014
 次に、学習指示エージェント部410は、以降のS104~S113をステップt=0からステップt=Tcaまで、tを1ずつ増加させながら繰り返し実行する。
 学習指示エージェント部410は、以下の数15に示す処理及び代入を行って、学習させるエージェント部470を1つ選択する(S105)。すなわち、学習指示エージェント部410は、行動選択を行う。
Figure JPOXMLDOC01-appb-M000015
 ここで、ε-greedy(s ca)は、学習指示エージェント部410の戦略を意味し、εグリーディ法によりエージェント部470を1つ選択する。ε-greedyでは、学習指示エージェント部410は、例えば、εの確率でランダムに行動選択(すなわち、ランダムにエージェント部470を選択)し、1-εの確率でステップtにおける期待値Qが最大となる行動選択を行う。
 次に、学習指示エージェント部410は、以下の数16に示す処理及び代入を行って、上記のS105で選択されたエージェント部470を学習指示の対象に変更する(S106)。すなわち、学習指示エージェント部410は、行動を行って、状態遷移させる。
Figure JPOXMLDOC01-appb-M000016
 ここで、action(a ca)は、学習指示エージェント部410の行動を意味する。すなわち、学習指示エージェント部410は、上記のS105で選択されたエージェント部470に学習指示の対象を切り替えて、状態s caを状態st+1 caに遷移させる。
 次に、学習指示エージェント部410は、以下の数17を示す処理を行って、上記のS106で学習指示の対象に変更されたエージェント部470に学習指示を行う(S107)。
Figure JPOXMLDOC01-appb-M000017
 ここで、agent_learning(a)は、各エージェント部470の集合Aに含まれる「a」(上記のS105で選択され、上記のS106で学習指示の対象に変更されたエージェント部470)に学習指示を行うことを意味する。
 次に、S107で学習が指示されたエージェント部470は、学習処理を行う(S108)。エージェント部470の学習処理では、最大総合評価(すなわち、学習指示エージェント部410の報酬)rt´と、当該最大総合評価rt´が得られた制御解とが出力される。エージェント部470の学習処理の詳細は後述する。
 次に、学習指示エージェント部410は、エージェント部470の学習処理で出力された最大総合評価rt´を、以下の数18に示す変数に代入する(S109)。これにより、学習指示エージェント部410は、報酬を獲得する。
Figure JPOXMLDOC01-appb-M000018
 次に、学習指示エージェント部410は、以下の数19に示す計算及び代入を行って、収益の期待値Qを更新する(S110)。すなわち、学習指示エージェント部410は、状態、行動、及び報酬から収益の期待値を更新する。収益の期待値の更新は、学習指示エージェント部410の戦略の学習を意味する。
Figure JPOXMLDOC01-appb-M000019
 次に、学習指示エージェント部410は、ステップt+1における状態(st+1 ca)が、終了状態となったか否かを判定する(S111)。終了状態とは、例えば、所定の精度の制御解が算出された場合等である。終了状態は、ステップ数が所定の回数を超えた場合等であっても良い。
 学習指示エージェント部410は、上記のS111で終了状態となったと判定された場合、tにTcaを代入する(S112)。これにより、学習指示エージェント部410は、S104~S113の繰り返しを抜けて、後述するS114を行うことができる。
 学習指示エージェント部410は、各エージェント部470の学習処理でそれぞれ出力された制御解(すなわち、最大総合評価が得られた、最適な制御解)を、当該各エージェント部470に対応する各制御エンジン部900にそれぞれ出力する(S114)。これにより、例えば、VR配置制御エンジン部600は、VR配置設定部620により、当該制御解に応じた設定命令をサーバ装置10等に送信し、制御対象のVR(本実施例ではVM)の配置を制御することができる。同様に、例えば、VNF配置制御エンジン部700は、VNF配置設定部720により、当該制御解に応じた設定命令をサーバ装置10等に送信し、制御対象のVNF(本実施例ではIDS)の配置を制御することができる。
 ここで、上記のS109におけるエージェント部470の学習処理について、図9を参照しながら説明する。図9は、一実施例におけるエージェント部470の学習処理を示すフローチャートである。
 以降で説明する図9では、学習指示が行われたエージェント部470が「VR制御エージェント部430」である場合、「agent」を「vm」と読み替えるものとする。一方、学習指示が行われたエージェント部470が「VNF制御エージェント部440」である場合、「agent」を「ids」と読み替えるものとする。
 まず、エージェント部470は、収益の期待値Qを0に初期化する(S301)。すなわち、エージェント部470は、以下の数20に示す代入を行う。
Figure JPOXMLDOC01-appb-M000020
 次に、エージェント部470は、当該エージェント部470に対応する制御エンジン部900により算出された初期解Aagentを、以下の数21に示す変数に代入する(S302)。すなわち、制御エンジン部900の初期解Aagentを、当該制御エンジン部900に対応するエージェント部470のステップt=0における状態s agentとする
Figure JPOXMLDOC01-appb-M000021
 次に、エージェント部470は、以降のS303~S313をステップt=0からステップt=Tまで、tを1ずつ増加させながら繰り返し実行する。
 エージェント部470は、以下の数22に示す処理及び代入を行って、制御解の変更を選択する(S304)。すなわち、エージェント部470は、行動選択を行う。
Figure JPOXMLDOC01-appb-M000022
 ここで、ε-greedy(s agent)は、各エージェント部470の戦略を意味し、εグリーディ法により制御解の変更を選択する。ε-greedyでは、エージェント部470は、例えば、εの確率でランダムに行動選択(すなわち、ランダムに制御解の変更を選択)し、1-εの確率でステップtにおける期待値Qが最大となる行動選択を行う。
 次に、エージェント部470は、以下の数23に示す処理及び代入を行って、上記のS103で選択された制御解を変更する(S305)。すなわち、エージェント部470は、行動を行って、状態遷移させる。
Figure JPOXMLDOC01-appb-M000023
 ここで、action(a agent)は、エージェント部470の行動を意味する。すなわち、エージェント部470は、上記のS305で選択された制御解の変更を行って、状態s agentを状態st+1 agentに遷移させる。actionは、制御解の一部を変更する。actionでは、エージェント部470は、例えば、最も混雑しているサーバ装置10からランダムにVM、IDSを1台選択し、戦略に基づいて、VM又はIDSを移動する。
 次に、入出力変換部460は、VM間のトラヒック需要Tvmを、サーバ装置10間のトラヒック需要に変換する(S306)。変換されたトラヒック需要は、変数Tserverに代入される。
 次に、経路制御エンジン部500は、経路計算部510により、上記の数12に示す数理最適化問題を解くことで、目的関数(評価)を算出する。そして、経路制御エージェント部420は、算出した目的関数を以下の数24に示す変数に代入する(S307)。
Figure JPOXMLDOC01-appb-M000024
 次に、VR配置制御エンジン部600又はVNF配置制御エンジン部700は、上記の数8又は数10に示す数理最適化問題を解くことで、目的関数(評価)を算出する。そして、VR配置制御エンジン部600又はVNF配置制御エンジン部700は、算出した目的関数を以下の数25に示す変数に代入する(S308)。
Figure JPOXMLDOC01-appb-M000025
 なお、上記のS308は、学習指示が行われたエージェント部470が「VR制御エージェント部430」である場合、VR配置制御エンジン部600により数8に示す数理最適化問題が解かれ、算出された目的関数が上記の数25に示す変数に代入される。一方で、学習指示が行われたエージェント部470が「VNF制御エージェント部440」である場合、VNF配置制御エンジン部700により数10に示す数理最適化問題が解かれ、算出された目的関数が上記の数25に示す変数に代入される。
 次に、総合評価算出部450は、以下の数26に示す処理及び代入を行って、総合評価(報酬)を算出する(S309)。
Figure JPOXMLDOC01-appb-M000026
 ここで、calc_rewardは、全ての制御エンジン部900の評価から総合評価を算出することを意味する。calc_rewardでは、総合評価算出部450は、例えば、各制御エンジン部900の評価の逆数の加重平均を総合評価とする。このとき、各制御エンジン部900の評価の逆数の加重は、例えば、当該制御エンジン部900の制御ポリシの重要度α及びβである。
 次に、エージェント部470は、以下の数27に示す計算及び代入を行って、収益の期待値Qを更新する(S310)。すなわち、エージェント部470は、状態、行動、及び報酬から収益の期待値を更新する。収益の期待値の更新は、エージェント部470の戦略の学習を意味する。
Figure JPOXMLDOC01-appb-M000027
 次に、エージェント部470は、ステップt+1における状態(st+1 agent)が、終了状態となったか否かを判定する(S311)。終了状態とは、例えば、所定の精度の制御解が算出された場合等である。終了状態は、ステップ数が所定の回数を超えた場合等であっても良い。
 エージェント部470は、上記のS311で終了状態となったと判定された場合、tにTを代入する(S312)。これにより、エージェント部470は、S303~S313の繰り返しを抜けて、後述するS314を行うことができる。
 エージェント部470は、上記のS309で算出された総合評価のうち、最大の総合評価と、当該最大の総合評価が算出された制御解とを学習指示エージェント部410に出力する(S314)。すなわち、エージェント部470は、以下の数28により算出される最大総合評価rt´と、当該最大総合評価が算出された制御解st´ agentとを出力する。
Figure JPOXMLDOC01-appb-M000028
 これにより、各エージェント部470は、最大総合評価と、当該最大総合評価が算出された制御解(すなわち、最適な制御解)とを学習指示エージェント部410に出力することができる。
 <統合制御エンジン部200が実行する制御処理の評価>
 ここで、統合制御エンジン部200が実行する制御処理の評価について、図10を参照しながら説明する。図10は、統合制御エンジン部200が実行する制御処理の評価例を示す図である。
 図10は、横軸に試行回数、縦軸に最大リンク利用率を設定したグラフを示している。物理ネットワーク300のトポロジーとして「Internet2」を用いて、計算条件を(VM数、IDS数)=(10台、5台)とした試行結果がグラフR1である。同様に、「Internet2」を用いて、計算条件を(VM数、IDS数)=(20台、5台)とした試行結果がグラフR2である。また、同様に、「Internet2」を用いて、計算条件を(VM数、IDS数)=(40台、5台)とした試行結果がグラフR3である。
 なお、これらの試行では、全てのユーザ需要に対して、全てのIDSを経由する経路を設定した。また、End-to-Endの経路を計算する際に、候補となるIDSが複数存在する場合、IDSの負荷等は考慮せず、End-to-Endの経路長が短くなるIDSを選択した。
 図10に示すように、試行回数が進むにつれて(すなわち、エージェント部470の学習が進むにつれて)、最大リンク利用率が改善していることがわかる。試行回数が0(すなわち、学習が行われていない段階)では、最大リンク利用率は0.75~0.95(すなわち、75%~95%)と高く、制御解の精度が悪い。一方で、試行回数が10000回程度まで増加すると、全ての計算条件において、最大リンク利用率は40%以下まで減少している。したがって、例えば、VM数が数十台程度のシステムであれば、10000回程度の試行回数で、最大リンク利用率等のリソース利用率を2倍以上改善することができる。
 このように、本発明によれば、分散型統合制御の拡張性の高さを維持した上で、制御の干渉を回避した高精度な制御解を算出することができる。
 なお、本発明における統合制御エンジン部200は、VRやNFVの制御に限定されない。制御エンジン部900が有する前提条件を満たしていれば、複数の制御対象にわたる統合制御を行うことができる。
 また、本発明における統合制御エンジン部200による制御目的は、物理ネットワーク300のリソース利用効率の改善に限定されない。例えば、品質、電力、セキュリティ等、様々な制御目的の改善に対しても同様に適用することができる。
 更に、本発明における統合制御エンジン部200の実現方法は、強化学習の手法に限定されない。例えば、制御エンジン部900の制御解を「遺伝子」、制御解の変更を「選択」、「交叉」等の遺伝子操作に置き換えることで、遺伝的アルゴリズムの手法を用いて実現することもできる。
 本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
 本願は、日本国に2017年2月2日に出願された基礎出願2017-017913号に基づくものであり、その全内容はここに参照をもって援用される。
 10    サーバ装置
 20    転送装置
 30    ユーザ端末
 100   ネットワーク制御装置
 200   統合制御エンジン部
 300   物理ネットワーク
 400   情報共有エンジン部
 410   学習指示エージェント部
 420   経路制御エージェント部
 430   VR制御エージェント部
 440   VNF制御エージェント部
 450   総合評価算出部
 460   入出力変換部
 500   経路制御エンジン部
 600   VR配置制御エンジン部
 700   VNF配置制御エンジン部
 800   入力情報管理部

Claims (7)

  1.  制御対象毎に、該制御対象を制御するための制御解を算出する第1の算出部と、
     前記制御対象毎に、前記制御解の評価を算出する第2の算出部と、
     前記第2の算出部により算出された評価に基づいて、前記制御解を変更する解変更部と、
     前記解変更部により変更された制御解に基づいて、前記制御対象を制御する制御部と、
     を有することを特徴とする制御装置。
  2.  前記第2の算出部は、
     前記解変更部により変更された制御解の評価を算出し、
     前記解変更部は、
     前記第2の算出部により算出される前記評価に基づいて、制御解を繰り返し変更する、ことを特徴とする請求項1に記載の制御装置。
  3.  前記解変更部は、
     前記第2の算出部により算出された前記評価から総合評価を算出し、該総合評価に基づいて、制御解を変更する、ことを特徴とする請求項1又は2に記載の制御装置。
  4.  前記解変更部は、
     前記制御対象毎に、強化学習により制御解の変更を学習し、前記総合評価に基づき制御解を変更する1以上のエージェント部と、
     強化学習により前記1以上のエージェント部のうちの一のエージェント部の選択を学習し、選択したエージェント部に学習を指示する指示エージェント部と、を有することを特徴とする請求項3に記載の制御装置。
  5.  前記エージェント部は、
     前記制御解を状態、前記制御解の変更を行動、前記総合評価を報酬とした強化学習により前記制御解の変更を学習し、
     前記指示エージェント部は、
     前記エージェント部の選択状態を状態、前記エージェント部の選択を行動、前記エージェント部の学習中に得られた最大の総合評価を報酬とした強化学習により前記1以上のエージェント部のうちの一のエージェント部の選択を学習する、ことを特徴とする請求項4に記載の制御装置。
  6.  制御対象毎に、該制御対象を制御するための制御解を算出する第1の算出手順と、
     前記制御対象毎に、前記制御解の評価を算出する第2の算出手順と、
     前記第2の算出手順により算出された評価に基づいて、前記制御解を変更する解変更手順と、
     前記解変更手順により変更された制御解に基づいて、前記制御対象を制御する制御手順と、
     を有することを特徴とする制御方法。
  7.  制御対象毎に、該制御対象を制御するための制御解を算出する第1の算出手段、
     前記制御対象毎に、前記制御解の評価を算出する第2の算出手段、
     前記第2の算出手段により算出された評価に基づいて、前記制御解を変更する解変更手段、
     前記解変更手段により変更された制御解に基づいて、前記制御対象を制御する制御手段、
     としてコンピュータを機能させることを特徴とするプログラム。
PCT/JP2017/039907 2017-02-02 2017-11-06 制御装置、制御方法、及びプログラム WO2018142700A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/468,089 US11809895B2 (en) 2017-02-02 2017-11-06 Control device, control method, and program
JP2018565940A JP6904369B2 (ja) 2017-02-02 2017-11-06 制御装置、制御方法、及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017017913 2017-02-02
JP2017-017913 2017-02-02

Publications (1)

Publication Number Publication Date
WO2018142700A1 true WO2018142700A1 (ja) 2018-08-09

Family

ID=63039490

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/039907 WO2018142700A1 (ja) 2017-02-02 2017-11-06 制御装置、制御方法、及びプログラム

Country Status (3)

Country Link
US (1) US11809895B2 (ja)
JP (1) JP6904369B2 (ja)
WO (1) WO2018142700A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020162211A1 (ja) * 2019-02-06 2020-08-13 日本電信電話株式会社 制御装置、制御方法及びプログラム
JP2021017168A (ja) * 2019-07-22 2021-02-15 本田技研工業株式会社 ダンパ制御システム、車両、情報処理装置およびそれらの制御方法、ならびにプログラム
WO2022018798A1 (ja) * 2020-07-20 2022-01-27 日本電信電話株式会社 制御装置、仮想ネットワーク割当方法、及びプログラム
WO2023162044A1 (ja) * 2022-02-22 2023-08-31 日本電信電話株式会社 切り替え方法、切り替えシステム及び切り替えプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809895B2 (en) * 2017-02-02 2023-11-07 Nippon Telegraph And Telephone Corporation Control device, control method, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010171758A (ja) * 2009-01-23 2010-08-05 Univ Of Electro-Communications 経路計算装置および方法、並びにプログラム
JP2013168934A (ja) * 2012-02-15 2013-08-29 Hitachi Ltd 負荷均衡装置及び負荷均衡方法
WO2015118874A1 (ja) * 2014-02-06 2015-08-13 日本電気株式会社 ネットワークシステム、ネットワーク制御方法および制御装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007021836A2 (en) * 2005-08-15 2007-02-22 Toutvirtual Inc. Virtual systems management
US7733224B2 (en) * 2006-06-30 2010-06-08 Bao Tran Mesh network personal emergency response appliance
US10009287B2 (en) * 2013-12-26 2018-06-26 Huawei Technologies Co., Ltd. Hierarchical software-defined network traffic engineering controller
US10803401B2 (en) * 2016-01-27 2020-10-13 Microsoft Technology Licensing, Llc Artificial intelligence engine having multiple independent processes on a cloud based platform configured to scale
US10491688B2 (en) * 2016-04-29 2019-11-26 Hewlett Packard Enterprise Development Lp Virtualized network function placements
US10708795B2 (en) * 2016-06-07 2020-07-07 TUPL, Inc. Artificial intelligence-based network advisor
US10827366B2 (en) * 2016-11-07 2020-11-03 Huawei Technologies Co., Ltd. System and methods for monitoring performance of slices
KR102659439B1 (ko) * 2016-12-30 2024-04-23 인텔 코포레이션 사물 인터넷을 위한 명명 및 블록체인 기록
US11809895B2 (en) * 2017-02-02 2023-11-07 Nippon Telegraph And Telephone Corporation Control device, control method, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010171758A (ja) * 2009-01-23 2010-08-05 Univ Of Electro-Communications 経路計算装置および方法、並びにプログラム
JP2013168934A (ja) * 2012-02-15 2013-08-29 Hitachi Ltd 負荷均衡装置及び負荷均衡方法
WO2015118874A1 (ja) * 2014-02-06 2015-08-13 日本電気株式会社 ネットワークシステム、ネットワーク制御方法および制御装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020162211A1 (ja) * 2019-02-06 2020-08-13 日本電信電話株式会社 制御装置、制御方法及びプログラム
JP2020127182A (ja) * 2019-02-06 2020-08-20 日本電信電話株式会社 制御装置、制御方法及びプログラム
JP7063284B2 (ja) 2019-02-06 2022-05-09 日本電信電話株式会社 制御装置、制御方法及びプログラム
US11489735B2 (en) 2019-02-06 2022-11-01 Nippon Telegraph And Telephone Corporation Dynamic network allocation apparatus, dynamic network allocation method and non-transitory computer-readable medium
JP2021017168A (ja) * 2019-07-22 2021-02-15 本田技研工業株式会社 ダンパ制御システム、車両、情報処理装置およびそれらの制御方法、ならびにプログラム
WO2022018798A1 (ja) * 2020-07-20 2022-01-27 日本電信電話株式会社 制御装置、仮想ネットワーク割当方法、及びプログラム
WO2023162044A1 (ja) * 2022-02-22 2023-08-31 日本電信電話株式会社 切り替え方法、切り替えシステム及び切り替えプログラム

Also Published As

Publication number Publication date
JPWO2018142700A1 (ja) 2019-11-07
US20200073697A1 (en) 2020-03-05
US11809895B2 (en) 2023-11-07
JP6904369B2 (ja) 2021-07-14

Similar Documents

Publication Publication Date Title
JP6904369B2 (ja) 制御装置、制御方法、及びプログラム
US10904319B2 (en) Dynamic deployment of an application based on micro-services
CN111130858B (zh) 一种sd-wan场景下的动态多目标虚拟网络映射方法
CN105900393B (zh) 用于sdn中分布式流量工程的流行为驱动的动态分区
CN103812778A (zh) 流表项生成方法以及装置
CN104618264A (zh) 为了高效资源利用而在数据中心网络中自适应调度数据流的方法和系统
WO2013018916A1 (ja) 分散処理管理サーバ、分散システム、及び分散処理管理方法
CN103238301A (zh) 用于在路由器处管理话务的技术
CN108667657A (zh) 一种面向sdn的基于局部特征信息的虚拟网络映射方法
CN103621167A (zh) 基于与移动装置关联的网络地址调整服务质量
Bouzidi et al. Dynamic clustering of software defined network switches and controller placement using deep reinforcement learning
US20130227171A1 (en) Apparatus and method for interconnecting heterogeneous networks
CN106104503A (zh) 使用统一api对用于转发的服务器和架构编程以用于细粒度网络优化
Aktas et al. Scheduling and flexible control of bandwidth and in-transit services for end-to-end application workflows
CN112422687A (zh) 路由决策方法和装置、存储介质
US10868764B2 (en) Route calculation control device and route calculation control method
CN109831346B (zh) 网络功能虚拟化环境下服务功能链的部署方法
CN102480522B (zh) 存储设备、应用服务器及其方法
Sun et al. Reliable and efficient deployment for virtual network functions
US20190044842A1 (en) Information processing apparatus, method and non-transitory computer-readable storage medium
Xu et al. Coordinated resource allocation with VNFs precedence constraints in inter-datacenter networks over elastic optical infrastructure
Radam et al. Using metaheuristics to improve the placement of multi-controllers in software-defined networking enabled clouds
CN115580573B (zh) 服务功能链路径规划方法及相关设备
JP6723951B2 (ja) 仮想資源割当装置及び仮想資源割当方法
JP6815976B2 (ja) 変換装置、変換方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17895294

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018565940

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17895294

Country of ref document: EP

Kind code of ref document: A1