“Those who cannot remember the past are condemned to repeat it”
– George Santayana
The above quote is apt to ensure efficiency without compromise in the quality and Dynamic Programming (DP) is just one of the tools in Data Analytics and an integral part of mViva products.
Dynamic Programming is a method for solving a complex problem by breaking it down into a collection of simpler subproblems, solving each of those subproblems just once, and storing their solutions using a memory-based data structure. In mathematical optimization, dynamic programming usually refers to simplifying a decision by breaking it down into a sequence of decision steps over time.
While it is an approach to solving problems optimally, not all computing problems lend themselves to efficient solution by Dynamic Programming. The two necessary traits for a problem to exhibit so as to qualify for application of Dynamic Programming are optimal-substructure and overlapping-sub-problems.
In computing,
- a problem is said to exhibit optimal substructure if an optimal solution can be constructed from optimal solutions to subproblems.
- a problem is said to have overlapping subproblems if it can be broken down into subproblems which are reused several times or a smart recursive algorithm for the problem solves the same subproblem over and over rather than always generating new subproblems.
Dynamic Programming helps us solve problems, that work in exponential complexity otherwise, in polynomial time. While the benefits are pertinent at all scales of data, it is obvious that the real power of DP kicks in when classical solutions become impractical with higher order data where exponential complexity solutions are unviable.
How mViva leverages the power of Dynamic Programming (DP) is illustrated as follows:
Sankey Data Synthesis:
mViva Dashboards use the powerful Sankey Charts with drill downs owing to their immense representational clarity and ability to concisely display flows with inward branches.
Classical solutions working in exponential time and result in wastage of computations by not reusing partials from prior stages.
mViva uses Bottom Up Dynamic Programming with iterative staging.
mViva patent-pending ‘Pivot Walk’ dynamic viewport synthesis module helps business analyze large subsets of data via arbitrary slicing-and-dicing. It allows deep-drill down walks and retreats seamlessly without compromising user experience.
mViva uses memorizing DP grid for partials and uses them additively for higher order volume synthesis
KPI Synthesis:
mViva empowers various campaign management systems and helps Business Analysts in assessing and analyzing the impact of various campaigns on customer behaviour by aggregating spends from a variety of streams over several days.
mViva uses matrix DP grid for partial sums and adds them in forward only iterations.
Dynamic programming is a very integral part of mViva, thereby, providing a huge analytical strength of business and marketing analysts to analyze the historical data and devise further strategies.