Abstract:
A method for generating switching plans to restore power to out-of-service areas after fault isolation through back feeding. A chromosome architecture is defined to create chromosomes representing candidate post-restoration systems. The chromosomes are evaluated are repeatedly genetically altered until an acceptable solution is identified. The solution identifies a plurality of switching operations that back feed power to the out-of-service areas in the most optimal manner.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application is a 35 U.S.C. §371 national stage filing of International Application No. PCT/US2010/058881, filed Dec. 3, 2010, which claimed the benefit of and priority to U.S. Provisional Patent Application Ser. No. 61/266,691, filed Dec. 4, 2009. The complete disclosures of the above-identified patent applications are hereby incorporated by reference for all purposes. 
    
    
     BACKGROUND 
     An electric power distribution system generally consists of a set of distribution substations, feeders, switches (circuit breakers, reclosers, etc.) electrical loads, and monitoring and control devices. A distribution system delivers electricity from distribution substations via feeders and switches to electrical loads (customers) that connect to feeders. Feeders in a distribution system are usually configured in a radial type to ensure that each load is supplied by only one distribution substation (source) via one feeder at any instant. To maintain the radial configuration, each feeder is linked by normally open (NO) tie-switches to neighboring feeders. The feeder section that is relatively near/far to its source is referred to as upstream/downstream section, while comparing to the feeder section that is relatively far/near to its source. One or more switches in the distribution system may have an associated intelligent electronic device (IED) that has the following monitoring and control functions: (1) measuring and recording electrical and other types of switch related quantities, such as voltage, current, reclosing times (2) monitoring the switch status, (3) operating the switch between open or close, and (4) communicating information to one or more master devices. 
     Distribution system reliability can be greatly improved by automating feeder operations such as fault detection, isolation, and load restoration. In such systems, IEDs associated with switches monitor the distribution system and communicate the corresponding information to the feeder automation master controllers located in substations. If a fault occurs in the distribution system, the master controller identifies the fault location, generates fault isolation and service restoration solutions in terms of a sequence of switch operations, and sends switching commands to IEDs to control corresponding switches. 
     An example distribution network is shown in  FIG. 1 , in a normal operation mode wherein loads are omitted for simplicity, sources (S 1  to S 7 ) are oval shaped, NO switches ( 5 ,  10 ,  13 ,  16 ,  19 ,  24 ,  29 ) are square shaped, with a diagonal hatch pattern, and normally closed (NC) switches (other numbers) are square shaped, with a vertical hatch pattern. If a fault occurs between switch  1  and  2 , the protection function of switch  1  causes switch  1  to open, thereby causing the dashed line circled area to lose power. The boundary switches of the faulted portion of the distribution network include switch  1  and  2 . Switch  2  is immediately downstream of the faulted section and thus, is the isolation switch. With reference to  FIG. 2 , when switches  1  and  2  are open, the faulted portion is isolated and a remaining unserved area is bound by isolation switch  2  and NO switches  5  and  16 . 
     Switches  5  and  16  are referred to as first layer (Layer 1) restoration switches. If the sources, in this case S 4  and S 7 , respectively, can provide the power to the area that is left unserved due to fault isolatin, a first layer restoration solution is possible. If the first layer sources are not capable of providing power to the unserved area, second or even third layer solutions must be performed to provide power to the unserved area. For example, the power sources for layer 2 are S 2  and S 5 . The power sources for a third layer solution are S 3  and S 6 . As should be evident, the second and third layer restoration switches are topologically more “distant” than the first layer restoration switches. 
     The process to obtain a restoration solution beyond layer 1 is called multi-layer (or multiple-layer) restoration service analysis (RSA). This is sometimes also referred to as a multi-tier service restoration problem, which may be classified as one type of network reconfiguration problems. Due to the potentially large number of switches involved in a multi-layer restoration solution, the process to obtain such solution is generally more challenging than a single-layer solution. With any network reconfiguration problem it is desirable to achieve: computational efficiency, avoiding network violations, minimized switching operations and radiality of the restored network topology. 
     Network reconfiguration problems may also seek to reduce the overall system loss and relieve overloading conditions in the network. Therefore, a network reconfiguration problem may either be formulated as a loss reduction optimization problem or a load balancing optimization problem. Under normal system operation conditions, network configuration allows the periodical transfer of load from heavily loaded portions of the distribution network to relatively lightly loaded ones, and thus takes advantage of the large degree of load diversity that exists in many distribution systems. Under abnormal system operation conditions, such as planned or forced system outages, the network reconfiguration problem becomes a service restoration problem, which is a special load balancing problem, where the main objective is to restore as many out-of-service loads as possible, without violating system operating and engineering constraints. 
     As with any other type of network reconfiguration problem, service restoration is a highly complex combinatorial, non-differential, and constrained optimization problem, due to the high number of switching elements in a distribution network, and the non-linear characteristics of the constraints used to model the electrical behavior of the system. 
     There is therefore a need in the art for a restoration switching analysis method that properly accounts for a greater number of variables and efficiently processes multiple-layer RSA solutions. 
     SUMMARY OF THE INVENTION 
     According to one aspect of the present invention, a method is provided for determining back-feed paths to one or more out-of-service load areas in a network after fault isolation. The method includes defining a chromosome architecture for creating a plurality of unique chromosomes, each said chromosome being a string of characters, each said character representing one of a list of actions for a normally open switch in said network, said list of actions including (1) remaining open, (2) closing, or (3) swapping with a normally closed switch selected from a group of corresponding normally closed switches. A chromosome list is initialized. The chromosome architecture is used to create initial chromosomes for a first chromosome population, for each initial chromosome, if valid and not in the chromosome list, the initial chromosome is added to the initial chromosome population. For each initial chromosome created to the initial population, it is also added to the chromosome list. Fitness function values are generated for each chromosome in the initial chromosome population. The chromosomes are then sorted by fitness function value, where the chromosome having the lowest fitness function value is considered the best candidate chromosome. If the fitness function value of the best candidate chromosome is below a threshold fitness value the network configuration corresponding to the best candidate chromosome is output. If the fitness function value of the best candidate chromosome is not below the threshold fitness value, genetic manipulation is used to create new chromosomes for a new chromosome population. During the creation of the new chromosome population, any new chromosomes already in the chromosome list are rejected. Each new chromosome in the new population is also added to the chromosome list. Fitness function values are again generated for each chromosome in the new population. The generation of new populations are repeated in the same manner until the fitness function value of the best candidate chromosome is below the threshold fitness value or until a predetermined number of new populations are created, whereupon a network configuration corresponding to the best candidate chromosome is output. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a schematic drawing of an exemplary distribution network. 
         FIG. 2  is a schematic drawing of the exemplary distribution network of  FIG. 1  wherein a simulated fault is isolated and restoration layers are shown. 
         FIG. 3  is a schematic drawing of a second exemplary distribution network. 
         FIG. 4  is a schematic drawing of the exemplary distribution network of  FIG. 3  wherein a fault occurs. 
         FIG. 5  is a schematic drawing of the exemplary distribution network of  FIG. 3  wherein the fault is isolated leaving two out-of-service areas. 
         FIG. 6  is a flow-chart showing an exemplary algorithm of the present invention. 
         FIG. 7  is a flow-chart showing the step of creating a new generation in greater detail. 
         FIG. 8  is an exemplary user interface displaying the results of the method of the present invention. 
         FIG. 9  is an exemplary user interface according to  FIG. 8  showing a different set of exemplary results. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The methods of the present invention are applicable to both single layer and multi-layer RSA problems. With reference to  FIG. 3 , an example distribution network is shown in a normal operating topology.  FIG. 4  shows the network of  FIG. 3  wherein a fault occurred at load LDff- 3 . As can be seen, in such a scenario upstream recloser RBW85 senses the fault, proceeds through a reclosing sequence, and finally locks-out (remains open). This results in an outage area including loads LDff- 1 , LDff- 2 , LDff- 3 , LDff- 5 , LDff- 6  and LDff- 7 . 
     In a next step, the faulted load is isolated from the out-of-service area. With reference to  FIG. 5 , in the example network, the isolation switches include the immediately downstream switches SW-ifanet- 1  and SW-ifanet- 2 . Once switches SW-ifanet- 1  and SW-ifanet- 2  are opened, power restoration to the out-of-service area can begin. 
     In the present example, two separate out of service areas (OOSA) are formed after fault isolation. OOSA 1  includes LDff- 5  and OOSA 2  includes LDff- 1 , LDff- 2 , LDff- 6  and LDff- 7 . Each OOSA can be back-fed by one or more (if the OOSA is separable into different sub-areas) of the remaining back-feed sources. The restoration problem is complex because of the large number of back-feed sourcing combinations. For example, in the network of  FIG. 5 , source PDN 16  may be a single-layer back-feed source for OOSA 2  and/or a second-layer back-feed source for OOSA 1 . Depending on the final network configuration, source  54 Z 66  could be a single-layer or second-layer back-feed source for OOSA 2 . The restoration problem is further complicated because the OOSA could be partitioned (by opening switches RC 145 , SW-ifanet- 3  or SW-ifnet- 4 ). 
     According to the present invention, solving for a network configuration that back-feeds the OOSAs first requires that a chromosome architecture of a genetic algorithm (GA) be developed. A chromosome represents a particular network topology and, according to the present invention, is represented by a string of fixed length. According to the present invention, the string length is determined by the number of normally open (NO) switches (also known as tie switches) in the pre-fault network. Each character in the chromosome (also referred to as a bit or gene) represents the application options with respect to that tie switch. For each tie switch, three options are available: (1) the tie switch can remain unchanged and stay open; (2) the tie switch can be closed; or (3) the tie switch may be swapped with another normally closed (NC) switch. According to the third option, “swapping” means that the tie switch would close and the identified NC switch would open. A swap switch is an NC switch that is either, upstream of the tie switch or is an NC switch in the OOSA adjacent thereto. 
     Each tie switch has a specific set of corresponding swap switches. The set of swap switches may be determined by running a network tracing from the tie switch to its respective source(s). This is otherwise known as back-path tracing. For each of the first-layer tie switches, only one source can be traced to. For each of the higher layer switches, two sources can be traced to. In addition to the back-traced switches, for a tie switch that bounds an OOSA, the set of corresponding swap switches also includes the NC switches in that OOSA. 
     In order to simplify the restoration problem solution, according to one embodiment, the feeder breakers may be excluded from the listing of available swap switches. According to another aspect of the invention, the listing of available swap switches for a given tie switch may be further limited by limiting the number of switches that are swappable in the back-feed path. For example, for a given tie switch, the available back-feed swap switches may be limited to the first N number of upstream NC switches. 
     For the example of  FIG. 5 , the first layer tie switches are: RCR 03 , BQ 70 BL, RC 137 , RC 871 , and RBX 58 . The second layer tie switches are: RCF 91  and RCP 75 . If the number of back-feed switches to be considered is limited to N=1, the respective swap switch sets for the first and second layer tie switches are: 
     
       
         
               
               
               
             
           
               
                   
               
             
             
               
                 RCR03- 
                 RC145, SW-ifanet-3, SW-ifanet-4, 2WK02 
                 (first layer) 
               
               
                 BQ70BL- 
                 RC145, SW-ifanet-3, SW-ifanet-4, BP52BL 
                 (first layer) 
               
               
                 RC137- 
                 RC145, SW-ifanet-3, SW-ifanet-4, RCF65 
                 (first layer) 
               
               
                 RC871- 
                 RC145, SW-ifanet-3, SW-ifanet-4, RD618 
                 (first layer) 
               
               
                 RBX58- 
                 13B670 
                 (first layer) 
               
               
                 RCF91- 
                 BS73BL, REU99 
                 (second layer) 
               
               
                 RCP75- 
                 RBP32, 13B670 
                 (second layer) 
               
               
                   
               
             
          
         
       
     
     According to one embodiment of the present invention, the gene representation of the swap switch sets uses a single character to represent the action for each tie switch. According to one embodiment, an ASCII character may be used to represent each swap switch or other action (i.e. open or close). Thus, a space character (hereinafter represented as “L” for clarity) (ASCII value 32) may represent “remain open” and character“!” (ASCII value 33) may represent the “close” action. Characters having an ASCII value higher than 33 may represent the “swap status with swapped switch N.” Because the ASCII characters are used, a large number of representative variables are available (255−33=222 unique switch swaps). 
     To create the chromosomes, the tie switches are arranged in any order. According to the example network of  FIG. 5 , the tie switches are arranged in the following manner: [RCR 03 , BQ 70 BL, RC 137 , RCF 91 , RC 871 , RBX 58 , RCP 75 ]. The swapped switches are associated with a character in the following manner:
     ″—RC 145     #—SW-ifanet- 3     $—SW-ifanet- 4     %— 2 WK 02     &amp;—BP 52 BL   ′—RCF 65     (—RD 618     )— 13 B 670     *—BS 73 BL   +—REU 99     ,—RBP 32     

     Valid chromosomes include: [! L L L L ! L] which correlates to a network where RCR 03  and RBX 58  are closed and all other tie switches remain open; [L!L*L!L] which correlates to a network where BQ 70 BL and RBX 58  are closed and RCF 91  and BS 73 BL are swapped (i.e. BS 73 BL closes and RCF 91  opens); [!LLLL)!] which correlates to a network where RCR 03  and RCP 75  are closed and RBX 58  is swapped with  13 B 670  (i.e. RBX 58  closes and  13 B 670  opens). 
     As will be described later in greater detail, for each candidate network, it&#39;s suitability for a final solution is judged by calculating a fitness function value. According to one embodiment, a fitness function is defined below, wherein the objective is to minimize the value of this function:
 
fit( idv )= w   Sw   SwOp   nr ( idv )+ w   Ivio   Ivio   nr ( idv )+ w   P   P   nr ( idv )  (Eq. 1)
 
     Where idv is the index of the individual network topology (hereafter the candidate system) to be evaluated (corresponds to the chromosomes generated in the genetic algorithm below). Ivionr is the normalized number of back-path current violations in the candidate network, SwOpnr is the normalized switching operations (excluding isolation switching) and Pnr is the normalized total unserved load for the candidate network. The corresponding weighting factors are represented by wIvio, wSw, wp. The weighting factor definition in Eq. 1 allows the users of this algorithm to place an emphasis on different optimization variables, thereby increasing the application flexibility. It should be appreciated that, though the above fitness function is well suited for the present invention, additional factors may be considered in a fitness function, such as, for example, minimizing system losses or voltage violations. 
     According to one embodiment of the present invention Pnr reduces faster than the other two components of the fitness function, thus after a few generations the contributions from SwOpnr and Ivionr would dominate the final fitness values. In order to achieve a balanced contribution solution, the weight wp may be increased by a factor larger than 1 (for example 1.05) for each new generation of chromosomes. 
     The calculation of the normalized values is defined according to the following:
 
 SwOp   nr ( idv )=NoSwitchOperations( idv )/NoTieSwitches base   (Eq. 2)
 
 P   nr ( idv )=(TotalWeightedLoad base −TotalWeightedLoad( idv )/TotalWeightedLoad base   (Eq. 3)
 
     Where base represents the network in the post-isolation configuration and (idv) represents the candidate network. NoTieSwitchesbase is the total number of NO tie switches in the network. NoSwitchOperations is the number of switch operations (excluding isolation switching operations) needed for the transition from the fault isolated system state (the base configuration) to the candidate network configuration. TotalWeightedLoad is the weighted total load of the candidate network corresponding to a chromosome:
 
TotalWeightedLoad=ΣLoadinOOSAreas+PenaltyFactor*ΣLoadinBackFeedingAreas  (Eq. 4)
 
     As the objective is to minimize the fitness function value, the PaneltyFactor of Eq. 4 is advantageously greater than 1, to prevent load shedding in the back-feeding areas. The calculation of the normalized current violations Ivionr is performed according to the following: for each chromosome in a generation, the corresponding network is created and a balanced or unbalanced load flow analysis is conducted. From the results of the load flow analysis, the current violations from the closed switches and all the feeder sections to their sources are counted. These current violations are referred to as the back-path current violations. Of all the chromosomes in a generation, the network having the largest number of current violations Iviomax is determined, and that number is used according to:
 
 Ivionr=Ivio ( idv )/ Ivio max  (Eq. 5)
 
     With reference now to  FIG. 6 , a flow-chart shows the process according to the present invention. As discussed above, the process begins after a fault is isolated on a network. Thereafter, the process according to the present invention is evoked at  100 . At step  100  new chromosomes are randomly created in accordance with the methods discussed above. Thus, chromosomes are created wherein each NO tie switch is either left open, closed, or swapped with a NC switch. Concurrently, the new chromosomes are validated to ensure no energized loops are created. If so, the chromosome is discarded. A Reactive Tabu Search (RTS) is incorporated, by defining a search list LST RTS  that contains the chromosomes or indices of each candidate network. Thus, each newly created chromosome (whether valid or not) is added to the LST RTS . 
     To limit the genetic algorithm processing time, a population size is defined for each generation. According to one embodiment, the population size=4*N+1; where N=NoTieSwitchesbase/2 (N is an integer) and where N&lt;=10. Thus, for the example network of  FIGS. 5 ,  7  normally open tie switches are included in the base network, giving a population size of 13 (where N is rounded from 3.5 to 3). 
     At step  102 , it is determined whether the number of valid chromosomes has reached the population limit. New chromosomes are generated until the population number is reached. At step  104 , a fitness value (see eq. 1) is calculated for each chromosome in the generation. As discussed above, for the population of chromosomes, for each chromosome, the corresponding network is determined and a balanced or unbalanced load flow analysis is conducted to determine current violations and total weighted load which is used in the fitness function value calculation. 
     At step  106  the chromosomes are sorted in order of fitness value, wherein the lowest fitness value is “best” or 1st. At step  108  it is determined whether either the generation limit is reached or if the best fitness value is below a threshold value. If either case is true, the network configuration corresponding to the best chromosome is output as the solution. The solution may be sent to a DMS or other distribution control manager for implementation to restore power to some or all of the OOSA. The generation limit is a user defined (or default) maximum generation number that effectively limits the iterations the algorithm proceeds through. The fitness function threshold value is a user defined (or default) value for the fitness function, wherein network configurations having a fitness function value below the threshold are “good” solutions. This is because a low fitness function value indicates; (1) minimized current violations, (2) minimized switching operations and (3) minimized unserved load. 
     If the best chromosome does not have a fitness value beneath the threshold value and the max generation number has not yet been reached, the algorithm proceeds to step  110 . At step  110  a new generation of chromosomes are created using genetic manipulations. According to one embodiment, the best N+1 chromosomes (chromosomes with the lowest fitness function values) from the previous generation are directly copied into the new generation. Next, crossover is used to create N new chromosomes. Next, mutation is used to create N new chromosomes. As is known in the art, a crossover is accomplished by merging any two generated chromosomes randomly and mutations are accomplished by randomly redoing one or more of the swappings or open/close actions in a chromosome. The additional chromosomes needed to complete the generation are created by random chromosome creation. Each newly created chromosome (not the direct copies) is checked for validity and against LSTrts. If the chromosome is not valid (energized loops), it is added to the LSTrts and is not added to the new generation. If the chromosome is already in LSTrts the chromosome is not added to the new generation. If the chromosome is valid and not in the LSTrts, it is added to the new generation and to the LSTrts. 
     According to one embodiment, the cross-over is performed using the topmost (lowest fitness function value) chromosome with the next N chromosomes to generate N new chromosomes. Next, the direct copied N chromosomes each mutate once to generate the next N chromosomes. 
     Once the new generation of chromosomes is created, the process returns to step  104 , and in this manner, the process repeats until a good solution (below the fitness function threshold) is reached or until the maximum generation number is reached. 
     With reference now to  FIG. 7 , a flow-chart shows the step  110  of creating a new generation in greater detail. At  200  the mutation function begins by initializing the NoMutation variable to zero. Next, at  202  a chromosome mutation is performed to create a NewChromosome and the NoMutation variable is increased by one. At  204  it is determined whether the NewChromosome is in the RTSmap (i.e. LSTrts). If so, the algorithm proceeds to step  212  where it is determined whether NoMutation variable is greater than NmutationLimit. If so, the algorithm proceeds to step  214 , which will be described in greater detail below. If not, the algorithm proceeds back to step  202 . If, at  204  it is determined that the NewChromosome is not in the RTSmap, the algorithm proceeds to step  206  where the NewChromosome is saved in the RTSmap. Next, at  208  a network validation check is performed on the NewChromosome to identify energized loops (i.e. invalid network configurations). If the NewChromosome is valid it is added to the new generation at  246 . If the NewChromosome is not valid, the algorithm proceeds to  212 , where it is determined whether NoMutation is greater than NmutationLimit. 
     The crossover function begins at  216  by initializing the NoBreed variable to zero. Next, at  218  a chromosome crossover is performed to create a NewChromosome and the NoBreed variable is increased by one. At  220  it is determined whether the NewChromosome is in the RTSmap (i.e. LSTrts). If so, the algorithm proceeds to step  228  where it is determined whether NoBreed variable is greater than NbreedLimit. If so, the algorithm proceeds to step  214 , which will be described in greater detail below. If not, the algorithm proceeds back to step  218 . If, at  220  it is determined that the NewChromosome is not in the RTSmap, the algorithm proceeds to step  222  where the NewChromosome is saved in the RTSmap. Next, at  224  a network validation check is performed on the NewChromosome to identify energized loops (i.e. invalid network configurations). If the NewChromosome is valid it is added to the new generation at  246 . If the NewChromosome is not valid, the algorithm proceeds to  228 , where it is determined whether NoBreed is greater than NbreedLimit. 
     As can be seen, if either the crossover or the mutation functions reach their limit, the algorithm proceeds to step  214 , where the NoRandom variable is initialized to zero. The algorithm then proceeds to step  230  where the random chromosome generation function begins. The random chromosome generation function may also be called independently, in which case the process would begin at  230 . Next, at  232  a chromosome is created by randomly closing or swapping one or more NO tie switches. The NoRandom variable is increased by one. At  234  it is determined whether the 
     NewChromosome is in the RTSmap (i.e. LSTrts). If so, the algorithm proceeds to step  242  where it is determined whether NoRandom variable is greater than NrandomLimit. If so, the algorithm proceeds to step  244 , which returns a null (meaning no additional chromosome can be generated). If not, the algorithm proceeds back to step  232 . If, at  234  it is determined that the NewChromosome is not in the RTSmap, the algorithm proceeds to step  236  where the NewChromosome is saved in the RTSmap. Next, at  238  a network validation check is performed on the NewChromosome to identify energized loops (i.e. invalid network configurations). If the NewChromosome is valid it is added to the new generation at  246 . If the NewChromosome is not valid, the algorithm proceeds to  242 , where it is determined whether NoRandom is greater than NrandomLimit. 
     Thus, for each generation, N crossover calls, N mutation calls and at least N random calls will be made. The ultimate number of random calls may be higher depending on the results of the crossover and mutation calls. (i.e. if NoMutation or NoBreed exceeds NmutationLimit or NbreedLimit respectively.) 
     With reference now to  FIGS. 8 and 9 , an exemplary graphical user interface is shown. The interface shown displays the results of the algorithms discussed above. As can be seen, the “Restoration Switching Plans” area displays the final generation, wherein the chromosomes are sorted in order of fitness value (lowest being first). As can also be seen, when a chromosome is highlighted, (chromosome  1  in  FIG. 8  and chromosome  3  in  FIG. 9 ) the corresponding switching sequence is displayed in the “Switching Sequences for the Selected Restoration Switching Plan” area. As can be seen, for completeness and clarity, the switching sequences provided in the “Switching Sequences for the Selected Restoration Switching Plan” includes the switching operations for both isolation (the determination of which is not the subject of the present invention) and restoration, which is determining in the manner discussed above. 
     The method of the present invention requires network load flow calculations (in order to evaluate the fitness function) only for the valid chromosomes in question, as opposed to many more load flow calculations if approaches such as classical genetic algorithm, network tracing or deterministic optimization methods are used. This increases the speed of solution finding, thus making it appropriate for real-time restoration switching applications. It is especially practical for multi-layer RSA, when the network topology is complex (for example, many tie switches between adjacent feeders) and many different alternatives for back-feed restoration exist. The functionality of multi-layer RSA would reside at either at DMS or in a sub-station. Thus, the network configuration (solution) is generated by the DMS or sub-station control system. The DMS or sub-station control system then implements the switching operations to convert the network topology to match the network configuration solution. In this manner, power is restored to the OOSAs. 
     As will be appreciated by one of ordinary skill in the art, the present invention may be embodied as or take the form of the method and system previously described, as well as of a computer readable medium having computer-readable instructions stored thereon which, when executed by a processor, carry out the operations of the present inventions as previously described. The computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the user-interface program instruction for use by or in connection with the instruction execution system, apparatus, or device and may by way of example but without limitation, be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium or other suitable medium upon which the program is printed. More specific examples (a non-exhaustive list) of the computer-readable medium would include: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Computer program code or instructions for carrying out operations of the present invention may be written in any suitable programming language provided it allows achieving the previously described technical results. 
     It is to be understood that the description of the foregoing exemplary embodiment(s) is (are) intended to be only illustrative, rather than exhaustive, of the present invention. Those of ordinary skill will be able to make certain additions, deletions, and/or modifications to the embodiment(s) of the disclosed subject matter without departing from the spirit of the invention or its scope, as defined by the appended claims.