3 ms·
All the time! Often you'll need to come up with a modification or variant of a textbook algorithm for particular applications. For example, node-based editors
by duped 5y ago
All the time! Often you'll need to come up with a modification or variant of a textbook algorithm for particular applications.
For example, node-based editors in game engines and other media software need a few key algorithms, but the ordering of incoming/outgoing edges have meaningful semantics that might need to be considered.
You may need to use a custom algorithm to write a solver for a particular problem, for example latency/delay compensation in various networks (audio, distributed sensors, etc).
Other times you may want to combine multiple algorithms into single traversals, which is often used in single-pass compilers or parsers. These can be tricky if the traversal modifies the graph.
Then there are hypergraphs, which are so generic you probably need to treat your application as a special case.
- jaxk 5y agoYeah I get that you have to tweak canonical algorithms to suit the current problem but I am thinking more about developing algo for open problems or improving the performance at research level. Also, are algorithms beyond basic ones like shortest path, a* search and network flow are ever needed in real world situations? They all seem done and dusted pretty much.
- duped 5y agoYes graph algorithms are actively researched. You can browse arxiv.org and see plenty of recent submissions: https://arxiv.org/search/?query=Graph&source=header&searchtype=all https://arxiv.org/search/?query=Graph&source=header&searchty... For applications, compilers need graph coloring. Task schedulers need graph cuts. Since these are NP complete there is plenty of room for research on specific implementations with various heuristics.