text: in the following description , several specific details are presented to provide a thorough understanding . one skilled in the relevant art will recognize , however , that the concepts and techniques disclosed herein can be practiced without one or more of the specific details , or in combination with other components , etc . in other instances , well - known implementations or operations are not shown or described in detail to avoid obscuring aspects of various examples disclosed herein . fig1 depicts an example of an mis system 100 . the mis system 100 includes a market selection engine 102 , a customer data capture engine 104 , a platform innovation engine 105 , a business model selection engine 106 , a feature selection engine 107 , an investment engine 108 , a jobs and outcomes database 110 , a target market database 112 , a platform templates database 113 , a recommended business models database 114 , and features database 116 . the market selection engine 102 can consider data from the jobs and outcomes database 110 . table 1 includes examples of data potentially useful in selecting a market that may be extracted from the jobs and outcomes database 110 . in the example of table 1 , category weights may have default values stored in the job database , and / or may be applied on the fly based upon an analysis of the available data . for example , data may be weighted differently based upon trustworthiness of the data . trustworthiness may be determined based upon , by way of example but not limitation , an indicated source of the data , the age of the data , etc . threshold values may be calculated using data in the jobs and outcomes database 110 or other data that is useful for the analysis . criteria importance indicates a weight ratio between criteria of a category . the market selection engine 102 analyzes the relevant data in the jobs and outcomes database 110 to determine the size of a market . advantageously , the market selection engine 102 can be running to continuously identify markets using potentially changing data points . as data points change , the engine will calculate the most attractive markets for investment . since the market is , as used in this paper , a job and the job executor , it is possible to identify markets for investment that do not even exist . sequencing dna , when it was new , was a job , but there were not tools to do it . at the time , the new market could have been identified even though there were no products or services to sequence dna . as another example , the market for finding one &# 39 ; s car was a zero - dollar solution ( write parking space on a piece of paper ) until a solution ( use gps ) was provided . for illustrative purposes , the largest markets identified are stored in the target market database 112 , which can be updated in real - time . it may be desirable to augment the jobs and outcomes database 110 after consulting the target market database 112 . for example , after a target market is identified , it may be advantageous to identify customers in a customer chain who may potentially be involved with any aspect of the job ( e . g ., raw material provider , parts supplier , manufacturer , oem , distributor , retailer , service provider , purchase decision - maker , job executor , job beneficiary , and education / training ), particularly those customers that are most likely to be unsatisfied and / or on whom you are dependent for success . the customer data capture engine 104 considers markets in the target market database 112 , and captures desired outcomes for relevant jobs . the customer data capture engine 104 can consider a market ( a job ), the number of job executors and their various outcomes , and the willingness of job executors to pay for a new solution . a target market can be defined as a dollar estimate that is related to the number of job executors times the number of job executors willing to pay . the customer data capture engine 104 can use a job map for each job to assist in the analysis required to identify outcomes . the customer data capture engine 104 can also perform or prompt for quantitative market research to capture importance and satisfaction levels customers place on each outcome . this can improve the quality of the results obtained by the business model selection engine 106 . advantageously , since the the platform innovation engine 105 improves upon a value delivery platform template from the platform templates database 113 . the platform templates database 113 can include old templates from other platforms . for simplicity , it is assumed that if a template is provided by a human to the platform innovation engine 105 , it is part of the platform templates database 113 , as well . thus , the platform innovation engine 105 is referred to as obtaining the template from the database . the template includes parameters associated with various components of a platform that is responsive to a particular job . the business model selection engine 106 analyzes the relevant data in the jobs and outcomes database 110 , the target market in the target markets database 112 , and the platform from the platform templates database 113 , to recommend a business model . this can include identifying where a market is under - and over - served and / or identifying segments of opportunity if opportunities are not present in the broad market . the business model selection engine 106 can calculate cost target ranges , as well as timing targets using individual and portfolio factors . it may be advantageous to consider three types of criteria when selecting a value delivery platform : customer , company , and society . tables 2 , 3 , and 4 include examples from these three categories of data potentially useful in selecting a value delivery platform that may be extracted from the jobs and outcomes database 110 . the business model selection engine 106 uses company criteria for selection of the appropriate business model for the delivery platform . table 5 includes examples of potentially useful data . the feature selection engine 107 adds features to the platform after a basic business model has been selected by the business model selection engine 106 . the feature selection engine 107 can use multiple criteria to add or assist in the addition of features . the features database 116 includes entries associated with various types of features , such as applications ( for use with a computer - implemented or internet platform ), telephone answering service parameters , power sources , etc . features are the components added to a platform that directly address outcomes . thus , they can be implicitly or explicitly tied to the jobs and outcomes of the jobs and outcomes database 110 . tables 6 , 7 , and 8 provide examples of data that would potentially be useful for such a determination . after the features are selected , the business model selection engine 106 can construct or facilitate the construction of a set of product or service models , estimate or facilitate making an estimate of the cost and price point of each model , and in general make the basic business model more comprehensive . it has been found that attempting to generate features prior to the basic business model is wasteful of resources , and attempting to generate a comprehensive business model without first considering features is difficult for an artificial intelligence , and for a human , for that matter . for illustrative purposes , the best business models are stored in the recommended business models database 114 . the recommended business models may include a rating of investment quality ( e . g ., estimated risk and / or reward ). the investment engine 108 considers the data from each of the databases and provides an investment recommendation . because of the job - based approach providing funding to various aspects of a product or service model could be automated . it may be noted that at various points in the system 100 , user input may be desirable if the artificial intelligence of the system is not up to a particular task . in some cases , the combination of computer data processing and human intelligence can be useful for identifying or quantifying different aspects of a problem . fig2 depicts a flowchart 200 of an example of a method for providing an investment decision based on a product or service &# 39 ; s ability to satisfy unmet customer needs and a company &# 39 ; s ability to create and capture financial returns from investing in the development and sales of the product or service . in a specific implementation , hundreds of different inputs related to the market opportunity , the customer need ( the customer jobs and their outcomes ), the competitors , the solution , the pricing , costs , and financing are considered . the method is organized as a sequence of modules in the flowchart 200 . however , it should be understood that these and other modules associated with other methods described herein may be reordered for parallel execution or into different sequences of modules . one or more of the modules ( or portions thereof ) may be implemented on a computer readable medium for access and / or execution by a computer . in the example of fig2 , the flowchart 200 starts at module 202 with identifying a market to target for an investment decision . the market can be defined as a demographic ( e . g ., a group of people ) and the job or jobs they are trying to accomplish ( e . g ., the goal they are trying to achieve or problem they are trying to solve for a given situation ). a number of different inputs are used to determine if the market meets the threshold criteria level . examples of such inputs were illustrated with reference to fig1 . in the example of fig2 , the flowchart 200 continues to module 204 with identifying unmet customer needs based on jobs ( e . g ., the goals the customer is trying to accomplish ) and outcomes ( e . g ., the measurable outcomes related to the speed , stability , and output of performing the job ). each job and outcome can be rated for its importance and satisfaction level by the customer , an opportunity score algorithm such as this one : opportunity score = importance + max ( importance − satisfaction , 0 ). for each customer job , in a specific implementation , there can be 50 to 150 different outcomes and the opportunity score represents if the outcome or job is underserved , appropriately served or over served . if the opportunity score for a job or outcome fails to exceed an opportunity threshold ( e . g ., the opportunity score is indicative of an appropriately served or over served job ), the investment engine can determine if there is a segment of the customers ( e . g ., a specific part of the demographic ) that views the job or outcome as being underserved . this facilitates defining a market with more granularity or identifying underserved “ niche ” jobs in an appropriately served or over served market . in the example of fig2 , the flowchart 200 continues to module 205 with identifying the willingness of a customer to pay to have the job completed with maximum satisfaction , or 100 % satisfaction levels . pricing inputs can be used to determine customer willingness to pay . in the example of fig2 , the flowchart 200 continues to module 206 with scoring the competitive product or service offerings against the jobs and outcomes to determine how well each offering is satisfying the customers . in the example of fig2 , the flowchart 200 continues to module 208 with scoring the solution based on jobs and outcomes and the solution &# 39 ; s ability to increase satisfaction . the value add of the solution is based on the weighted average of the opportunity score . the value add of a solution is based on satisfying the outcomes . an example of a weighted average adequate to represent a value add , v , is : where v new is the new value score and v old is the old value score . the old value score can be represented by , for example , this equation : where o i is the old satisfaction value for an i th job and s i is the maximum satisfaction value for the i th job . the new value score can be represented by , for example , this equation : where n i is the new satisfaction value for an i th job . in the example of fig2 , the flowchart 200 continues to module 212 with calculating fixed and variable costs for the solution . pricing , solution satisfaction , and cost can be used to determine whether a cost can be used to produce and deliver the solution to the customer and those costs plus the customer &# 39 ; s willingness to pay and the solution satisfaction levels to determine the financial value of the solution . in the example of fig2 , the flowchart 200 continues to module 214 with determining if the solution can be delivered to create an investment rate of return ( irr ) that meets an irr threshold . in the example of fig2 , the flowchart 200 continues to module 216 with providing an investment decision . advantageously , by using the tool , high - quality investment decisions can be largely automated based upon comparisons with competitor tools and a database of successfully generated tools ( platform templates ). fig3 is intended to illustrate an example of a value add proposition for several outcome statements using techniques described with reference to fig1 and 2 . fig4 depicts an example of a system 400 for making investment decisions . fig4 includes an input interface 402 , an outcome - driven quantification engine 404 , and an output interface 406 . the outcome - driven quantification engine 404 is coupled to the input interface 402 and the output interface 406 . the input interface 402 may include one or more known or convenient hardware devices ( such as keyboard , mouse , usb port , storage medium , etc .) and / or software or firmware modules ( such as drivers , database interfaces , etc .). the exact nature of the input interface 402 is not critical so long as the interface is capable of providing computer - readable data . as is known in the relevant art , in operation the input interface 402 is typically coupled to one or more processors . the outcome - driven quantification engine 404 includes software modules ( e . g ., data and executables ). when the software modules are implemented on a hardware device ( e . g ., memory )— or on some other known or convenient machine , manufacture , or composition of matter capable of storing data and / or instructions , at least ephemerally , thereon — this may be referred to as implementing the outcome - driven quantification engine 404 in a computer - readable medium . a computer readable medium can be coupled to a processor in a known or convenient manner . the outcome - driven quantification engine 404 has various techniques to quantify a venture . for example , the outcome - driven quantification engine 404 can include algorithms based on customer needs ( e . g ., jobs and outcomes ), importance , and satisfaction . in a specific implementation , the outcome - driven quantification engine 404 is capable of processing large amounts of data in real time or near - real time . this is advantageous because due to the amount of data and varying market or other conditions , it may be desirable to use the engine multiple times for different models . the output interface 406 may include one or more known or convenient hardware devices ( such as monitor , printer , usb port , storage medium , etc .) and / or software or firmware modules ( such as drivers , database interfaces , etc .). the exact nature of the output interface 406 is not critical so long as the interface is capable of providing computer - readable data . as is known in the relevant art , in operation the output interface 406 is typically coupled to one or more processors . in the example of fig4 , in operation , the input interface 402 provides inputs 408 to the outcome - driven quantification engine 404 . the inputs 408 may be provided from a remote or external source over a network , from a local input device , or from local storage ( e . g ., from a hard disk ). the inputs 408 can be real - time input from a panel of experts , data from databases , direct input from a user of the system 400 , etc . in the example of fig4 , the inputs 408 include customer input 412 , competitor input 414 , market input 416 , pricing input 418 , solution input 420 , cost input 422 , and financing input 424 . the customer input 412 can include discrete jobs . advantageously , jobs have quantifiable importance and satisfaction levels . theoretically , the customer input 412 can include any number of jobs , but current empirical models provide for dozens or hundreds of jobs . while one or just a few jobs could be input , an advantage of the system 400 is that it can process practically any number of jobs in a manner that may not be possible for a human . the customer input 412 can also include outcomes for discrete jobs . outcomes include goals that , e . g ., a customer is trying to reach . advantageously , outcomes can also have quantifiable importance and satisfaction levels . the competitor input 414 can include discrete jobs that can be quantifiable in importance and satisfaction levels . however , unlike customer input , competitor inputs for jobs are based on a competitive product or service . the competitive product or service may be an actual one , or a theoretical one . the competitor input 414 can also include outcomes for discrete jobs . the market input 416 can include discrete jobs . the discrete jobs are , for example , jobs that a demographic is attempting to accomplish . the market input 416 can also include demographic data . demographic data can include , for example , a size and description of a demographic that is attempting to accomplish a job . the pricing input 418 can include discrete jobs . pricing inputs for discrete jobs may represent the willingness to pay to complete the job perfectly ( as used herein , perfect is intended to mean as near to perfect as is reasonable for a given job ) for a demographic that is trying to get the job done . the pricing input 418 can also include outcomes for discrete jobs . outcomes , in this case , can represent an incremental willingness to pay to satisfy an outcome perfectly for a demographic . the solution input 420 can include discrete jobs . solution inputs for jobs can have quantifiable importance and satisfaction levels of completing a job with a specific solution . the solution input 420 can also include outcomes for the jobs , which can have quantifiable importance and satisfaction levels of job outcome with the specific solution . the cost input 422 can have discrete jobs that represent costs to deliver a solution for the job , and the outcomes . the financing input 424 can include different options for financing growth of a company . for example , the financing input 424 can include the cost of capital and irr hurdles . the outcome - driven quantification engine 404 processes the inputs 408 to produce outputs 410 . the operation of the outcome - driven quantification engine 404 is described in more detail later in this paper . depending upon the implementation , the outcome - driven quantification engine 404 can use feedback on success in order to learn , and thereby improve the accuracy of the outputs 410 . the outputs 410 may be provided to a remote or external source over a network , to a local display , or to local storage ( e . g ., to a hard disk ) for later use . in the example of fig4 , the outputs 410 include market opportunity output 426 , customer need output 428 , solution analysis output 430 , and investment decision output 432 . the market opportunity output 426 can take into consideration all of the inputs 408 and scores the market opportunity . the market opportunity output 426 should identify the degree to which there is a market opportunity based upon , for example , unmet customer needs , competitive products , etc . the customer need output 428 takes into consideration job and outcome scores ( e . g ., satisfaction levels ). the customer need output 428 should identify unmet customer need based on importance and satisfaction levels of jobs and outcomes . the solution analysis output 430 takes into consideration job and outcome scores ( e . g ., satisfaction levels ) of different solution ideas . the solution analysis output 430 should identify a degree to which a solution adds value based on job and outcome satisfaction levels . the investment decision output 432 takes into consideration all of the inputs 408 . the investment decision output 432 should identify whether an investment is warranted and expected returns . fig5 depicts a flowchart 500 of an example of a method for providing an investment decision based on a strictly hierarchical approach that generates a platform before generating a basic business model before generating features for the platform to directly address outcomes . where a platform is provided in advance , the flowchart can begin at module 508 . where a basic business model is provided in advance , the flowchart can begin at module 512 . this method may take advantage of competitive product or service offerings that have already been scored against jobs and outcomes . ( for example , the modules 502 - 512 of fig5 could be inserted into the flowchart 200 between modules 206 and 208 .) in the example of fig5 , the flowchart 500 starts at module 502 with providing a value delivery platform data structure . a framework for focused idea generation includes the following rules : 1 ) conduct idea generation for only one type of idea at a time . the types of ideas are platform , business model , and feature set . if the goal is to generate a new platform , then those involved in the creative process should generate ideas only for the new platform , not ideas related to a business model or features . failure to follow this rule can result in a mix of ideas that cannot be considered or evaluated together . 2 ) generate ideas for platforms , then business models , then features . for radical innovation , the platform should be approved by management before moving on to business model ideation , and the business model should be approved by management before moving on to feature set ideation . this sequence improves efficiency by decreasing the probability of wasting time and effort on unused business models or features . of course , if the platform and business model are already established , ideation can start immediately on features . 3 ) focus idea generation on specific jobs and desired outcomes . while the value delivery platform is abbreviated to “ platform ” in this paper , it should be noted that a value delivery platform data structure is new term . it is intended to represent a system infrastructure and subsystems that deliver a core product or service function , enabling a customer to get a job of interest done . the value delivery platform is the system into which features will be integrated and the glue that holds those features in place . thus , the term is not intended to simply refer to a product family platform ( such as a frame for a family of automobiles ). the value delivery platform data structure may be designed for use with a product or a service . for a product , parameters include energy source , size , and shape . ( core mechanical , electrical , chemical and / or software components could be considered subsystems .) for a service , parameters include physical assets ( e . g ., buildings , trucks , etc .) and other resources ( e . g ., people , information , organizational structure , software , communication systems , etc .). in practice , the data structure should have sufficient parameters to explain how an available system infrastructure and subsystems enable a customer to get a job of interest done , but should not normally include all features needed to satisfy the customer &# 39 ; s desired outcomes . in the example of fig5 , the flowchart 500 continues to module 504 with comparing the value delivery platform data structure with templates of existing value delivery platform data structures . one advantage of data structures is that specially programmed computers can make comparisons between them . templates of existing platforms can suggest modularity . for example , if a platform size is reduced , then a platform weight is also frequently reduced . this forms a correlation between a first parameter modification and a second parameter modification that can be attempted first because of the experience learning that the first often goes with the second . other jobs may not have correlations that are readily apparent , but by analyzing a plethora of templates , a correlation may emerge . thus , certain metrics may form a theme or grouping , facilitating a segmentation of a market based upon scores associated with various parameters . this can be exceptionally valuable when efficiently generating a tool ( described later with reference to the example of fig5 ). in the example of fig5 , the flowchart 500 continues to module 506 with using creativity triggers to modify the parameters of the value delivery platform data structure . advantageously , since the platform is separate from the business model and features , changes to the platform are possible without impacting subsystems or the business model in use . moreover , it becomes possible to automate the ideation process , resulting in specially programmed computers that can actually innovate without human assistance . in an implementation that includes human oversight , the specially programmed computer can apply creativity triggers to provide a desirable solution that a human need only consent to , or modify , after the specially programmed computer provides the innovation to the human . by comparing the innovation using templates of existing platforms , the innovation that resembles previously successful innovation efforts can “ float to the top ” or be given more weight , enabling rapid identification of good innovation . to enable computer innovation , creativity triggers can be programmed in association with various data structure parameters . it should be noted that humans would also likely find the creativity triggers useful in attempting innovations related to the value delivery platform . a relatively comprehensive list of examples of creativity triggers are provided in table 9 . in the example of fig5 , the flowchart 500 continues to module 508 with providing a basic business model data structure . a specially programmed computer can make suggestions regarding a basic business model and predictions about profitability , based upon basic business model templates associated with value delivery platform templates that are in at least some way similar to the platform being considered . in the example of fig5 , the flowchart 500 continues to module 510 with using creativity triggers to modify parameters of the basic business model data structure . creativity triggers can be used to improve upon the basic business model . for example , a creativity trigger to “ turn a waste into a revenue ” could cause the specially purposed computer to consider the value of a byproduct of a process for sale to another entity , or perhaps for use in some other process . so a creativity trigger to “ turn a cost into a revenue ” may trigger a suggestion to charge a customer for sales calls based upon an at least similar in some respects basic business model template . in the example of fig5 , the flowchart 500 continues to module 512 with applying features to the value delivery platform data structure . as used in this paper , a feature is a tangible or intangible that performs a function that allows customers to better satisfy a desired outcome . a feature can include , by way of example , a piece of information , an action , a component , a material , a part of a physical object , or the like . when features are integrated into the value delivery platform , the resultant data structure can be referred to as a “ tool .” that is , a process or device that accomplishes or can be used to accomplish a job . advantageously , the tool is virtual , but platform - level parameters and business model parameters are known , or at least predicted , for the tool before it is ever implemented or physically created . moreover , in a system that includes competitor input , virtual tools of competitors can also be created and the differences understood before launching a product . in the example of fig5 , the flowchart 500 continues to module 514 with providing an investment decision . advantageously , by using the tool , high - quality investment decisions can be largely automated based upon comparisons with competitor tools and a database of successfully generated tools ( platform templates ). fig6 depicts an example of a platform data structure 600 . the data structure 600 includes a size parameter 602 . in an implementation where the platform is represented as an object , the size parameter 602 can include a different value for each of a plurality of subcomponents that make up the platform . the greater the accuracy of the size parameter , the more effectively a platform innovation engine will be able to vary the size and evaluate the desirability of the variation . the platform innovation engine is well - suited to determining how changes in size will impact how the objects fit together geometrically . ( if you change the size of a bolt , it will impact the size of a nut , for example .) the data structure 600 includes a material parameter 604 . in some cases , it may be desirable to change the platform into another state of matter ( e . g ., use a liquid or gas instead of a solid , use light waves instead of heat , etc .). in other cases , it may be desirable to virtualize certain portions of the platform ( e . g ., simulated , digital , etc .). in other cases , it may be desirable to use disposable materials . these various options require a relatively sophisticated description of material , rather than simply a relative number . in some cases , operating temperatures may be relevant to ensure that solids do not melt . so the greater the detail provided in the material parameter 604 , the better the platform innovation engine will be able to substitute values to provide meaningful results . as a simple example , consider a toothbrush as a platform . the handle may be constructed of plastic having a certain composition , springiness , hardness , smoothness , etc . if a parameter ( say , springiness ), is not listed , then the platform innovation engine will be unable to address a customer desire to have a springier handle . other relatively straight - forward material data includes the cost of the material , and durability ( lifetime ). for a component to be made disposable , it would likely be desirable to reduce the durability to a proper range , and reduce the materials cost as well . the data structure 600 includes a weight parameter 606 . although it is true that if a size and material is clearly defined , the weight can be derived , it is not always efficient to attempt to describe a material with such specificity as to make the weight of the object completely predicable . for certain objects having a size and material density , of course , weight could be derived . in some cases , it may be desirable to consider increasing weight by adding another component , such as a metal base , and it is probably a more effective use of resources to record the final weight ( or even the weight of each component ) rather than recomputed weight from size and material of each component each time . the data structure 600 includes an interconnectivity parameter 608 . as has been mentioned , a platform can comprise multiple components . the components can be modular , identical , opposite , independent , connected , etc . the interconnectivity parameter 608 describes the connections of the various components . this can facilitate an analysis of how to create a new platform to execute a portion of the job that is performed inefficiently on an old platform , increase or decrease the number of components , or improve modularity or reuse redundant components . the interconnectivity parameter 608 can also provide insight into how to attach components in a scalable fashion (“ scalability ”). the data structure 600 includes a functionality parameter 610 . the functionality parameter 610 can describe a transformation of an input into an output . some components do not have any transformational functionality however , such as a chassis that holds components together or a base that provides stability . the functionality can be relevant for determining how size , interconnectivity , and weight can be adjusted to improve the functionality . when determining whether a platform meets the requirements of a job , assuming the functionality parameter 610 is sufficiently accurate , some components might be determined to be unnecessary . that is , some components might have other purposes ( or not ), but those purposes are not necessary for a particular job that is being considered . this can be useful to a platform innovation engine when suggesting to remove systems of subsystems from a platform . also , knowing the functionality of other components can help suggest modification of the platform to allow the addition of features or content by third parties ; make the platform capable of performing additional jobs , perhaps by redundantly using present functionality ; and make the platform capable of automatically performing physical activities , decision - making activities , or self - correction . in many ways , this can be thought of as an interplay between the interconnectivity parameter 608 and the functionality parameter 610 . the data structure 600 includes a rate parameter 612 . the rate parameter 612 can be associated with frequency , speed , or downtime . generally , frequency and speed might be better increased or decreased , while downtime is best minimized . the data structure 600 includes a resources parameter 614 . resources can include resources available ( energy , materials , information , dimensionality , waste , objects , people , etc .). if a resource can be used , then a platform innovation engine might tweak parameters to see if there is improvement . for example , if a widget can be increased in size without pushing against a casement , it might be desirable to decrease the size of the casement or increase the size of the widget . resources can also include consumables , which perhaps can be reduced or eliminated , or the source of the consumables could be changed to take advantage of byproducts ( waste ) of another component or separate platform . efficiency can even be improved by using a different power source or identifying use and perhaps shutting down when not in use . the data structure 600 includes a standardization parameter 616 . the flip side of standardization is customization . defining how much of a component is standardized can facilitate determining what portions can be customized . the data structure 600 includes a life cycle parameter 618 . it is typically desirable to reduce or eliminate all product life cycle issues ( e . g ., packaging , installation , maintenance , storage , disposal , etc .). the more descriptive the data , the better a platform innovation engine will be able to identify potential improvements . the data structure 600 includes a score parameter 620 . the score parameter 620 can be associated with one or more of the other parameters . sometimes , depending upon the job , one or more of the parameters may be irrelevant in determining a score . it should be noted that the score parameters 620 comprises a plurality of subscores derived from the satisfaction and value associated with various other parameter values , depending upon the job ( see , e . g ., fig3 ). advantageously , where data structures have the same format , comparisons across data structures become informative . additional parameters could be useful , but the parameters depicted in the example of fig6 are intended to be relatively comprehensive . some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory . these algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art . an algorithm is here , and generally , conceived to be a self - consistent sequence of operations leading to a desired result . the operations are those requiring physical manipulations of physical quantities . usually , though not necessarily , these quantities take the form of electrical or magnetic signals capable of being stored , transferred , combined , compared , and otherwise manipulated . it has proven convenient at times , principally for reasons of common usage , to refer to these signals as bits , values , elements , symbols , characters , terms , numbers , or the like . it should be borne in mind , however , that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities . unless specifically stated otherwise as apparent from the following discussion , it is appreciated that throughout the description , discussions utilizing terms such as “ processing ” or “ computing ” or “ calculating ” or “ determining ” or “ displaying ” or the like , refer to the action and processes of a computer system , or similar electronic computing device , that manipulates and transforms data represented as physical ( electronic ) quantities within the computer system &# 39 ; s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage , transmission or display devices . implementations can also relate to apparatus for performing the operations herein . this apparatus may be specially constructed for the required purposes , or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer . such a computer program may be stored in a computer readable storage medium , such as , but is not limited to , read - only memories ( roms ), random access memories ( rams ), eproms , eeproms , flash memory , magnetic or optical cards , any type of disk including floppy disks , optical disks , cd - roms , and magnetic - optical disks , or any type of media suitable for storing electronic instructions , and each coupled to a computer system bus . the algorithms and displays presented herein are not inherently related to any particular computer or other apparatus . various general purpose systems may be used with programs in accordance with the teachings herein , or it may prove convenient to construct more specialized apparatus to perform the required method steps . the required structure for a variety of these systems will appear from the description below . in addition , the present example is not described with reference to any particular programming language , and various examples may thus be implemented using a variety of programming languages .