2 ms·
Here's a real world graph problem that is probably worth some money. Design a data structure that represents "business logic" as a graph and transformations b
by qppo 6y ago
Here's a real world graph problem that is probably worth some money.
Design a data structure that represents "business logic" as a graph and transformations between graphs.
Now given two distinct "business logic" data structures, A and B, write an algorithm that can:
- check if all flows/paths through A are present in B
- if not, enumerate which paths are no longer present
- for each path not present in B that is in A, enumerate possible substitutions
- for any given path in A and B define a distance metric that estimates the cost of any flow in A versus in B
Now I haven't don't this so I don't know if there's an elegant way to do it without some serious category theory/abstract algebra chops, but this is essentially a problem that costs millions of dollars in businesses. Evaluating changes to processes and their potential cost/benefit as well as deltas to other processes when structures are changed is extremely expensive, and it's why migrating ERPs or CRMs is so time consuming.
Of course for it to be real world, you need the business logic to be fuzzy because you don't have all the information to define such graphs A and B perfectly.
- ironSkillet 6y agoI've wondered about this myself. I've tried imagining nodes as types and edges as functional transformations between them. Then there are essentially topological "moves" that you can make on your graph that shift the type data around and change the structure of your graph. Two programs are equivalent if the type graph of program 1 can be transformed into the other by these moves. This is all fuzzy thinking and not fully baked at all, but compilers do this all the time to construct optimized "equivalent" programs which gives me hope. I don't have the background in CS to pursue this rigorously though.
- qppo 6y agoI'm sure this question has been studied in a thesis or ten in the field of computational sociology (which I didn't know existed until I googled the term). I think there are a number of ways to state this problem in terms of graphs and their transformations, that's usually the case when it comes to abstractions. I think the question more worth answering is the methods by which real world organizational and business problems/processes can be expressed as graphs and their transformations, and how to perform analysis of those graphs for given queries about their nature. I know a few people who do this but not as a rigorous CS discipline, it's often called Industrial Organizational Psychology, Process Optimization, etc etc. Its a complex interdisciplinary field.