In combinatorics, the twentyfold way (and better known predecessor the twelvefold way) classifies counting problems via a single mathematical framework, functions with certain properties mapping domains with certain properties to codomains with certain properties. While not exhaustive of all combinatorics problems, this gives some structure to the space instead of treating one problem as fundamentally about ice cream, another about table arrangement, another about circular table arrangement, another about books on a shelf, etc. Granted, this structure may just be helpful for mentally organizing the problems and real-world problem modeling, and not necessarily suggestive of similarity in their solution formulas.
Is there some similar structure for computer science algorithms? It is clear that many common algorithms are just tweaked versions of one another. Is there an abstract framework which ignores the physical interpretations such as knapsacks, fluid flow, bin packing, etc., and aims to arrange as many algorithms as possible into a systematic classification?
Is there some similar structure for computer science algorithms? It is clear that many common algorithms are just tweaked versions of one another. Is there an abstract framework which ignores the physical interpretations such as knapsacks, fluid flow, bin packing, etc., and aims to arrange as many algorithms as possible into a systematic classification?