Constraint and Consequence
 
   
  Craig Holman   Research   Jabberwocky   Quotations   Contact
 
  Home > Jabberwocky           Previous      Next
 
 
 

Jabberwocky for July 3, 2008

 
 

Algorithm Description - The art of presenting algorithms

For several years, I've been interested in how to describe algorithms adequately and have played with a variety of templates for algorithm description.

I'm not sure that I've got it yet, but I'll discuss the current template's fields in this post and begin to write up algorithm descriptions and place them on this site. There is now a link for Algorithms on the Research page.

Algorithm Description fields

Algorithm The name of the algorithm.
Domain The domain of objects over which the algorithm operates. This may be elaborated upon in terms of features. (e.g. "Graphs { -directed, -weighted }").
Aspect The aspect of the domain that the problem belongs to (e.g. Isomorphism).
Problem The problem that the algorithm attempts to solve (e.g. Graph Isomorphism).
Approach The type of approach that the algorithm uses to solve the problem (e.g. Discrimination by equivalence classes).
Author The designer of the algorithm.
Revision A zero-based serial number indicating the number of revisions that this document has undergone.
Last changed The date of the last change to this document.
Objectives A sentence describing the objectives of the algorithm.
Description A short description of the problem, the algorithm, and the approach.
Objects A list of the objects that are used by the algorithm.
Parameters A list of all of the parameters of the algorithm, including those used to communicate results.
Parameter - Name The name of the parameter.
Parameter - Type The type of the parameter, which may be fairly primitive objects (e.g. integer), fairly complex objects (e.g. graph), or other algorithms.
Parameter - Direction The direction in which information flows through the parameter (i.e. In, InOut, Out).
Parameter - Description A description of the problem and the approach, and a detailed description of the algorithm.
References A list of all algorithm references related to this algorithm.
Refers to A list of all algorithms that this algorithm refers to.
Referred to by A list of all algorithms that reference this algorithm.
Admissions An admission is a statement of fact. The algorithm may state admissions as they become known.
Admission - Name The name of the admission.
Admission - Template A template for the admission (e.g. "Graph contains a <K>-clique: <exemplar K-clique>").
Outcomes Each algorithm terminates with a single outcome. This is a list of the possible outcomes for the algorithm.
Outcome - Name The name of the outcome.
Outcome - Category The features of the category of the outcome (e.g. +resolved).
Outcome - Description A brief description of the outcome
Outcome - Admissions A list of the admissions that are consistent with the outcome.
Outcome - Post-conditions A description of the conditions that hold after the algorithm terminates with the outcome (e.g. state of the graph).
Scenarios A list of the scenarios that the algorithm may encounter.
Scenario - Name The name of the scenario.
Scenario - Description A brief description of the scenario.
Scenario - Preconditions Preconditions that must hold for the scenario to be in play.
Scenario - Invariants Invariants that hold during the course of the scenario.
Scenario - Preparation A description of the preparations that are needed for processing under this scenario once it is confirmed.
Scenario - Cost An estimation of the cost of processing under this scenario.
Scenario - Possible Outcomes A list of the possible outcomes for this scenario.
Local objects A list of local objects that will be used during the course of the algorithm.
Pseudocode Pseudocode for the algorithm. All of the objects that have been defined (e.g. parameters, algorithm references, local objects) may be referenced within the pseudocode.
Examples One or more detailed examples of the operation of the algorith. One example per scenario would be preferred.
Complexity Complexity analyses of the algorithm.
Worst-case Time Complexity An analysis of the worst-case time complexity of the algorithm.
Worst-case Space Complexity An analysis of the worst-case space complexity of the algorithm.
Metrics A list of the metrics that may be of interest that are related to this algorithm.
Descriptive Metrics A list of the metrics that describe the objects of interest in the domain.
Initial-State Metrics A list of metrics that describe the objects of interest in the domain before the algorithm begins.
Operation Metrics A list of metrics that describe the operations performed during the course of the algorithm.
Final-State Metrics A list of metrics that describe the objects of interest in the domain after the algorithm terminates.
Predictive Metrics A list of metrics that have some predictive value.
Outcome-Predictive Metrics A list of metrics that predict the outcome of the application of the algorithm.
Metric-Predictive Metrics A list of metrics that predict the value of other metrics.
Cost-Predictive Metrics A list of metrics that predict the cost of executing the algorithm.
Discussion A discussion about any and all aspects of the problem and the algorithm.
Tasks A list of tasks that remain in the development of the algorithm. This may include open questions.
Comments An unstructured list of comments.

 
 
 
  Home > Jabberwocky           Previous      Next
 
  Craig Holman   Research   Jabberwocky   Quotations   Contact  
 
 
 
  Patterncraft™ and Constraint and Consequence™
are trademarks of Craig Stewart Holman

Copyright © 2008 Craig Stewart Holman

Copyright and Legal Notices

All Rights Reserved.

 
   
 
  Patterncraft logo