View
108
Download
3
Embed Size (px)
DESCRIPTION
Prof. TK Prasad reviews/recommends some topical issues on programming languages and algorithms, based on his analysis/thoughts on some recent work from Kno.e.sis - what we can improve on, what we did right and others can learn from, what are some recent trends/progress we should be aware of.
Citation preview
some useful lessons and insights for Kno.e.sis researchers on
Programming & Algorithms
Krishnaprasad Thirunarayan, Kno.e.sis
• “Most of the fundamental ideas of science are essentially simple, and may, as a rule, be expressed in language comprehensible to everyone.”
― Albert Einstein– Elevator Pitch of Sorts.– If you do not even have one example, what use is your
general theory?
• “Nearly everything is really interesting if you go into it deeply enough.” ― Richard P. Feynman
• “The utility of a notion testifies not to its clarity but rather to the philosophical importance of clarifying it.” ― Nelson Goodman (Fact, Fiction and Forecast, 1955)
Simple made Easy. – Rich Hickey (Designer of Clojure)
My view: Complexity results from promiscuous interleaving. Semantics can help clarify and sort each thread out.
Variety of Bipartite Matching Problems
• n-Producers and n-Consumers, and nxn (transportation) cost matrix
=> Hungarian Algorithm• Different quantites of item• Different types of item• Unequal number of producers and consumers• Ambiguity in decoding messages and thus making
mistakes: probabilistic model based on message history
• Abstracting producer/consumer groups at different levels of spatial abstraction
• Simplicity is the result of profound thought.– E.g., Vinh’s singleton property approach to refer to
triples is simple. Furthermore, it is easy to describe and use.
• For understanding Related Work: Develop a unifying framework to compare and contrast different works and potentially identify/fill gaps.
• Dijkstra’s Shortest Path Algorithm (edge positive weights) => Greedy Algorithm
• Vs• Bellman Ford’s Shortest Path Algorithm (any
edge weights) => Dynamic Programming Algorithm
• Bellman-Ford used in preference to Dijsktra even for positive edge weights due to former’s locality property that makes it suitable for distributed implementation.– Cloud Implementations
Algorithm in Pseudo-code form vs using PL-like data definitions/constructs
• Pseudo-code: Proof of correctness
• Data Structures: Analysis of space-time complexity