A system, which includes a method and a tool, is used to help determine a network design for a network that evolves in stages over time, such as a telecommunications network for a Hosted Internet Protocol (IP) Communication Service (HIPCS).
In the telecommunications industry, a problem may be encountered in the development and/or deployment of communications networks over time. In one scenario, problems may be encountered in the deployment of a large-scale, national network of media gateways used for Voice over IP (VoIP) services. VoIP is the practice of using an Internet connection to pass voice data using Internet Protocol (IP) instead of using Time Division Multiplexing (TDM) over the standard public switched telephone network. The use of VoIP often allows a remote user to skip standard long distance charges, as the only connection is through an Internet service provider (ISP).
VoIP is being used more frequently to keep corporate telephone costs down but it also demands a well-configured telecommunications network to run smoothly. Because capital expenditures of the telecommunications service provider may be constrained and customer demands may grow over time, hosted VoIP networks may need to be deployed in multiple phases, rather than one single phase. A challenge is how to deploy an early phase network that is evolvable to meet uncertain demands in future phases.
A system, which includes a method and tool, is described that aids a service provider in developing and deploying a network over multiple phases or stages. For explanation purposes, the system is described in terms of a telecommunications service provider that implements a hosted telecommunications network for VoIP for HIPCS. The system may be used, however, by users other than telecommunications service providers and for implementations other than VoIP. The system may be used to determine and output deployment costs, and display representations for a multi-phase deployment of the network.
The network 140 includes various types of networks such as local area networks (LANs), wide area networks (WANs), and the Internet. The network 140 may include communication links such as gateways, routers and switches 162. The network 140 may also include signal bearing mediums that may be controlled by software, applications and/or logic. The network 140 may be implemented with a network based virtual private network (VPN or NVPN) service. A VPN is a network that may be constructed by using public wires to connect nodes. The VPN may enable the communication service provider to create networks using a packet-switching network such as the Internet as the medium for transporting data. VPN systems may use encryption and other security mechanisms to ensure that only authorized users can access the network and that the data cannot be intercepted. In a packet-switching network, the voice and non-voice data in a message or file may be broken up into a sequence of packages or packets. The packets may travel through copper cables, fiber optics, microwaves and satellites and the like.
At block 220, the service provider or other user uses the system, method or tool, such as the one described in more detail below, to determine the optimal deployment of the system 100 and/or network 140 over all of the stages. Determination of the deployment for all of the stages occurs before deployment of the first stage. The system 100 and/or network 140 of some or all stages or phases may contain more than the bare minimum set of switches and links 160, 162 to address the existing customer demands in that phase. Even though some of the phases may be overbuilt or need to be rearranged in future phases, i.e., the deployment of a particular phase may not be optimal, the total cost of the system 100 or network 140 after the final phase is less than if each of the intermediate phases were built to include no more the necessary minimum set of switches and links 160, 162.
By way of example of a minimum built system 100 or network 140, a single aggregator switch may be adequate to address all the demands in phase one. But if only one aggregator switch is deployed and all geographically diverse users are connected to this switch, then when the number of users in each sub-region becomes big enough to warrant a dedicated switch, the users connected to the distant switch deployed in phase one may be traversing an unnecessarily long and expensive link. By looking ahead into future phases, deploying multiple switches 160, 162 in phase one may be more cost-effective. The resulting maintenance and inflation costs may be more compensated for by a more cost-effective network topology at the end of the last phase. The amount of overbuilding of the system 100 and network 140 to be allowed in each phase is determined, beyond covering the existing demands and in anticipation of growth in the number of users and demands per user in future phases, in view of architectural, technological and budgetary constraints.
At blocks 230, 240 and 250, the stages of the system 100 and/or network 140 are deployed over time, from the first stage to the last, until all of the stages are completed, at block 260. The first stage is a stage in terms of being the first stage developed using the system, method and/or tool. The first stage may or may not be the actual first stage or phase of the system 100 or the network 140. The system, method and tool may be used at any stage of development of the system 100 and/or network 140, such as on an existing or non-existing system 100 and/or network 140. The second stage may or may not utilize some or all of the communication equipment that was used in the first stage.
The system, method and/or tool may be used for determining a cost effective way to deploy a system 100 or network 140 over the multiple phases or stages. The system, method and/or tool may take into account expense-revenue tradeoff considerations, constant parameters and optimization variables, such as discussed below. The system, method and/or tool may be used to strike a preferred balance between allowing under building and overbuilding in each phase or stage.
A dynamic programming principle may be used to determine an optimal way to deploy the network over stages. The dynamic program may be used to solve the sequential decision problems of the multiple phase network deployment. Dynamic programming includes the computation of optimal solutions to a series of optimization problems where the problem parameters of later problems depend on the solution of earlier problems. The dynamic program is used to find optimal or near-optimal values for non-linear functions. An analogy for a dynamic program is throwing darts at a target. Every point on the target may have some number attached to it, but the numbers cannot be seen. With three darts to throw, the goal is to minimize the sum of the three numbers that the darts hit. One way to approach this problem would be to throw all three darts at the board at the same time and remember the set of coordinates on the target for the throw which resulted in the minimal sum. In HIPCS terminology, this approach is the equivalent of randomly creating access and server complexes and pricing each to find the one with the minimum cost. If the target is large, however, implementing this approach may not be practical, e.g., take an excessive amount of time to implement.
In
In the context of a telecommunications system, a node 302 may represent a total configuration of a network and the edges 304 may represent possible evolutions to the node 302. Nodes 302 may also represent other objects, such as routers, switches and gateways within a network. The edges 304 may represent costs, such as startup cost per mile and/or maintenance cost per mile. Each column may be indexed by κ phases of the network deployment. Each node 302 in the trellis may represent a physical layout state, including customers, switches and links, and each edge represents a possible transition between states. Incremental network deployments update a state at phase κ to another one at phase κ+1. There may be an edge cost between two states, which is the sum of the costs required to build and maintain infrastructure minus the customer profits gained at the time κ. If it is not possible to reach a state from another one, the cost is infinite. The goal for the service provider may be to tailor the stages or phases of development of the network to meet a demand profile. The demand profile may be to minimize or optimize costs across the stages, however, other demand profiles may be met, such as to control the number of network connections from stage to stage.
The final state is not predetermined, e.g., the example is for a non-fixed-final-state. In other scenarios, the final state is determined. For this example, the final state becomes a by-product of the construction of the trellis diagram from phase one to phase ten.
A service provider may wish to use the system, method and/or tool to obtain the most profitable network deployment throughout a determined number of phases or stages. The number of stages may be determined based on market forecasts on customer locations and band-width demands. The estimates may be based on accurate customer polling, and sometimes inaccurate polling, in which case the tool computations may be run on different data sets generated from different customer polling results. The system, method and tool may be used before network deployment, and incorporate a variety of topological and technical constraints, as discussed in more detail below. The system, method and tool may also be used for a network that has already been deployed in order to determine an optimal path forward based on the current state of the network and forecasted growth.
The trellis may be built in various ways. One way to build the trellis diagram depends on if the final network state configuration is known. If the final network state is known, a trellis diagram may be established before running the recursive dynamic programming algorithm. The algorithm can start from the known final state and determine the network topology over the different stages based on the customer demands at the final phase. Possible states in earlier phases are then constructed from phase N−1 to phase one. This approach may be particularly useful if a user knows that demand will remain constant after a specific amount of time. For example, if a network provider expects the majority of customers to arrive over a period of five years, the network provider may determine an optimal final configuration of the network five years from the time of planning, and then use the tool to determine an optimal building schedule over the five years to achieve the final configuration.
Alternatively, the program can be run based on the known existing state of the network and an undetermined final state. All the possible states at phase κ+1 from the states at phase κ can be constructed. The trellis diagram may be constructed based on all the allowed control strategies. The first approach may generate substantially fewer states but is not as general as the second approach. The two approaches represent different tradeoffs between computational tractability and dynamic programming optimality. In both cases, due to budget constraints, a limited segment of the network 140 may be constructed beyond meeting the requirements from existing customers.
Costs or the edges in the trellis diagram are assigned. Each cost may include multiple parts: such as expense and revenue. Expense includes both one-time building expense, incurred only at the phase of building the switch or link, and recurrent operating expense, incurred in all the phases after the construction for each type of switches and each type of links. Revenue includes both one-time customer signup revenue and recurrent customer payment revenue.
In general, minimizing costs in a phase runs the risk of cornering future phases into highly sub-optimal design space, since once an end-to-end connection is established, it cannot be torn down cheaply, if at all, since there may be active traffic through it. Tearing down such a connection may involve service interruption. An optimal evolution path strikes a balance between building ahead of time in anticipation of customer growth and avoiding overbuilding to reduce unnecessary costs. Once the trellis diagram is constructed, standard dynamic programming recursion may be applied to the trellis to determine a most cost effective path. Since the state-spaces are deterministic and finite, finding optimal network evolution over an evolution of N phases is equivalent to computing the minimum cost path across the trellis diagram.
The system, method and/or tool may be used to solve a sequential decision problem of multi-phase network deployment. The system, method and/or tool takes into account a variety of network architectural constraints and constructs a trellis diagram. The system, method and/or tool runs dynamic programming recursive computation on the trellis diagram to search for an optimal, e.g., lowest phase one to last phase cost, network deployment through all phases. The system, method and/or tool may output a computed optimal multi-phase deployment solution visually on a sequence of network topology graphs, one graph per phase, and output the minimized total deployment cost, as described in more detail below.
In another example, the tool may assists in the design of HIPCS network being deployed over multiple stages. Because the number of deployment scenarios may be so large, the tool may be used to consider scenarios which may not be initially obvious to a user. By considering complex scenarios, the tool may be able to reduce network deployment costs by more than 10%. An example of an implementation with a larger deployment follows.
The dynamic programming state data structure may take into account various considerations such as the location coordinates of the switches at phase κ, location coordinate and bandwidth requirements from each user, and the pair of switches connected by each link. The control data structure may take into account various consideration such as new switches and new links, e.g., the connections, such as fiber optic, copper or cellular, between the links. Together with the new customers' data structures, the control data structure updates the state data structure by conducting constructions. Constructions are done either randomly, or using heuristic measures, such as network density, to determine states which are likely to produce near-optimal configurations over time. Given a current state of the network and the control decisions, changes may be deployed in the control decisions (e.g., building a link, adding a router) and the new state of the network is obtained.
In addition to budget constraints per phase, the control spaces may be constrained by the required network architectures. For example, a constraint is that each type of switch may only be built within a certain subset of the points on the network deployments map. In order for a link to be built between switches, the switches at the end points have already been deployed and there is a vacant port on the switches. The number of ports on each switch is one of the parameters that may be specified, each with a different maximum data rate that it can support. All topological constraints needing network deployment may be satisfied, e.g., dual-homing from an aggregator to a core and full mesh of the nodes within the core. Dual-homing refers to an arrangement where one router is connected to two upstream routers for redundancy and protection purposes. Full mesh refers to each node being connected to every other node in the network. Furthermore, the tool may require that each customer must be connected to a switch within a specified radius of r units with sufficient bandwidth support. The system, method and/or tool may use a recursive function to determine if the network elements are connected according to the rules.
Exemplary forecasted line quantities associated with the demand are depicted in Table 1.
For each stage, Table 1 lists the forecasted lines per LATA. Assuming that every LATA is served by a Media Gateway (MGW), and that a LATA can only be served by one of any of the nine other LATAs, an optimal three-stage deployment path may be determined by the tool. By looking at the map 600, it would seem that F is the best LATA to serve all others because F is the most centralized.
The price of this scenario would be a little over $500,000, given the network cost parameters in the following table. For this example, the service provider may assume that there is that there is no MGC server complex because the existence of a server complex may have little impact on the solution of the tool.
The DS3 is a digital signal level 3 high-speed line capable of delivering 44.7 Mbps of data in both directions. The DS3 is typically a private line service designed for point-to-point communications. Other types of connections, however, can be used with the tool. As described in more detail below, the tool may be used to optimize the deployment of this network, resulting in a final cost of less than $400,000, or a 20% decrease in expected costs.
Another spreadsheet or other input device may contain the values of simulation constants. These include the network cost parameters referenced in Table 2, parameters which describe the scenario being modeled, and other parameters that affect the execution process of the tool itself. A description of the constants follows:
The listing NP designates a network planner and PE designates a programming expert. To execute the simulation, the tool may be run from the command line of a disk operating system (DOS) prompt. An example command line includes END.exe input.xls output.xls.
For a more complex example than the one earlier, a user decides to model a HIPCS network over the entire continental U.S. using more LATAs, such as seventy-eight LATAs, over six deployment stages. Because this simulation is on a larger scale than the previous example, some of the constants may be changed. The following table highlights which constants may be changed and a reason for the change:
Some constants may affect the memory usage or running time of the tool. Specifically, there are three such constants: max_size, max_children, and genetic_generations. The following are the tradeoffs of each:
The genetic algorithm may be used to explore these similar paths. The algorithm works by creating a large population of deployment paths containing slight changes from the original path. The deployment paths in the population which result in the greatest decrease in costs are carried on in the next generation, and more paths are generated from these paths, each with slight modifications. The paths which result in increasing costs eventually are removed. The genetic algorithm makes slight modifications to an existing path in order to find paths which are similar but have some characteristic which enhances cost. The MATLAB program described above includes a built-in genetic algorithm toolbox.
In practice, not all possible states may be considered in the trellis diagram. Even with only nine LATAs, the number of states in any one stage would be 9ˆ9 states. Thus, for a three-stage simulation, there would be (9ˆ9)ˆ3=5.8e25 paths to consider. If it only took one one-millionth of a second to compute the cost of a state, it may still take 58 billion seconds (about 7×10ˆ23 hours) to find the single best evolution.
To bring the number of states, known as the state-space, down to a reasonable size, the tool may use several techniques to choose which states to discard and which to keep. A first technique is to limit the number of children states that can be generated from any existing state. To set the limit of the number of children states that can be generated, change the max_children parameter described above. If the tool is creating the children for the third stage, and there were fifty nodes in stage 2 and max_children is set to five, then the total number of children generated for the third stage is 50*5=250.
Not all of these children may be carried on to stage 3. The tool may perform another state-space reduction. The user may choose max_size children from each set of children generated by each node to continue based upon their cost distributions.
A third type of state space reduction may occur when the tool generates the children of a node. As mentioned before, the maximum number of children for a node may be determined by the user set variable max_children. However, max_children usually is smaller than the total number of possible states in order to avoid running out of memory. In order to choose which states should become children, the tool may use a set of metrics to decide which states are most likely to yield good results. The user may change several constants which are used to calculate these metrics, thereby changing the types of children states which tend to be propagated. Below is a table describing each constant and how changing it affects the types of children:
The following is an outline of algorithms that may be used to find optimal children. A matrix may be created called hslist with the dimensions (# of LATA)×(#of LATA). When it is completely filled in, hslist, the jth column of hslist will contain an ordered list of LATAs which are approximately the most suitable to serve LATA j. The LATA at the top of the jth column of hslist is the most suitable to serve LATA j. For each LATA j, a matrix sf is created with the dimensions (# of LATA)×2. The first column of sf contains a list (from 1 to # of LATA) of all LATAs. The second column of sf is filled in using the following equation:
sfij,t=servefac—dens·log(di,t)−servefac—dist·log(distij+1)+servefac—cap·capacityi,t Equation 1
where di,t is the density of LATA i at the current stage, distij is the distance between LATAs i and j, and capacity i,t is the capacity of LATA i at the current stage.
The value sf is sorted by its second column in descending order. Then the first column of sf is transferred into the jth column of hslist. A matrix called cf may be created with the dimensions (# of LATA)×2. The first column of cf may contain a list (from 1 to # of LATA) of all LATAs.
The second column of cf is filled in using the following equation:
cfi,t=changefac—linklen·log(linkleni)+changefac_density·log(di,t+1)−changefac—numserve·log(ci,t+1) Equation 2
where linkleni is the length of the link serving LATA i, and ci,t is the number of customers served by LATA i at the current stage.
The value cf is sorted by its second column in descending order. Then truncate the second column of cf. You are now left with a sorted list of which LATAs would probably benefit the most from a rehome (the LATA at the top of the list will benefit the most from a rehome, the one at the bottom will benefit the least).
A matrix hsselect may be created with dimensions max_children x 2. The first column of hsselect may be filled in by selecting the first max_children entries from cf. The second column of hsselect may be filled in with the values 1 to max_children. The first column of hsselect may be used to select the column of hslist, and the second column of hsselect may be used to select the row of hslist. If the entry ij of hslist is selected, LATA j are rehomed to LATA i.
The dynamic programming of the system, method and/or tool may be implemented with a program such as MATLAB version 7.0 or greater, or the like. MATLAB is manufactured by MATH WORKS, INC., and can be purchased from the website at Mathtools.net. The dynamic programming may be implemented as a program run with software, firmware, hardware, or a combination thereof, with a processor. The dynamic programming may include operable routines stored in a memory. The memory refers to any computer storage mechanism that supports a magnetic storage medium, an optical storage medium, an electronic storage medium, or any other suitable storage medium, as described in more detail below. Dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays and other hardware devices can likewise be constructed to implement the tools described herein.
Referring to
In a networked deployment, the computer system may operate in the capacity of a server or as a client user computer in a server-client user network environment, or as a peer computer system in a peer-to-peer (or distributed) network environment. The computer system 1700 can also be implemented as or incorporated into various devices, such as a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile device, a palmtop computer, a laptop computer, a desktop computer, a communications device, a wireless telephone, a land-line telephone, a control system, a camera, a scanner, a facsimile machine, a printer, a pager, a personal trusted device, a web appliance, a network router, switch or bridge, or any other machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. In a particular embodiment, the computer system 1700 can be implemented using electronic devices that provide voice, video or data communication. Further, while a single computer system 1700 is illustrated, the term “system” shall also be taken to include any collection of systems or sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions.
As illustrated in
In a particular embodiment, as depicted in
In an alternative embodiment, dedicated hardware implementations, such as application specific integrated circuits, programmable logic arrays and other hardware devices, can be constructed to implement one or more of the methods described herein. Applications that may include the apparatus and systems of various embodiments can broadly include a variety of electronic and computer systems. One or more embodiments described herein may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that can be communicated between and through the modules, or as portions of an application-specific integrated circuit. Accordingly, the present system encompasses software, firmware, and hardware implementations.
In accordance with various embodiments of the present disclosure, the methods described herein may be implemented by software programs executable by a computer system. Further, in an exemplary, non-limited embodiment, implementations can include distributed processing, component/object distributed processing, and parallel processing. Alternatively, virtual computer system processing can be constructed to implement one or more of the methods or functionality as described herein.
The present disclosure contemplates a computer-readable medium that includes instructions 1724 or receives and executes instructions 1724 responsive to a propagated signal, so that a device connected to a network 1726 can communicate voice, video or data over the network 1726. Further, the instructions 1724 may be transmitted or received over the network 1726 via the network interface device 1720.
While the computer-readable medium is shown to be a single medium, the term “computer-readable medium” includes a single medium or multiple media, such as a centralized or distributed database, and/or associated caches and servers that store one or more sets of instructions. The term “computer-readable medium” shall also include any medium that is capable of storing, encoding or carrying a set of instructions for execution by a processor or that cause a computer system to perform any one or more of the methods or operations disclosed herein.
In a particular non-limiting, exemplary embodiment, the computer-readable medium can include a solid-state memory such as a memory card or other package that houses one or more non-volatile read-only memories. Further, the computer-readable medium can be a random access memory or other volatile re-writable memory. Additionally, the computer-readable medium can include a magneto-optical or optical medium, such as a disk or tapes or other storage device to capture carrier wave signals such as a signal communicated over a transmission medium. A digital file attachment to an e-mail or other self-contained information archive or set of archives may be considered a distribution medium that is equivalent to a tangible storage medium. Accordingly, the disclosure is considered to include any one or more of a computer-readable medium or a distribution medium and other equivalents and successor media, in which data or instructions may be stored.
Although the present specification describes components and functions that may be implemented in particular embodiments with reference to particular standards and protocols, the invention is not limited to such standards and protocols. For example, standards for Internet and other packet switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP) represent examples of the state of the art. Such standards are periodically superseded by faster or more efficient equivalents having essentially the same functions. Accordingly, replacement standards and protocols having the same or similar functions as those disclosed herein are considered equivalents thereof.
The illustrations of the embodiments described herein are intended to provide a general understanding of the structure of the various embodiments. The illustrations are not intended to serve as a complete description of all of the elements and features of apparatus and systems that utilize the structures or methods described herein. Many other embodiments may be apparent to those of skill in the art upon reviewing the disclosure. Other embodiments may be utilized and derived from the disclosure, such that structural and logical substitutions and changes may be made without departing from the scope of the disclosure. Additionally, the illustrations are merely representational and may not be drawn to scale. Certain proportions within the illustrations may be exaggerated, while other proportions may be minimized. Accordingly, the disclosure and the figures are to be regarded as illustrative rather than restrictive.
One or more embodiments of the disclosure may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any particular invention or inventive concept. Moreover, although specific embodiments have been illustrated and described herein, it should be appreciated that any subsequent arrangement designed to achieve the same or similar purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all subsequent adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the description.
The above disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments, which fall within the true spirit and scope of the present invention. Thus, to the maximum extent allowed by law, the scope of the present invention is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.