Skip to main content

Featured

Skillset, topics, projects and virtual internships for DS

This post is for those who are beginner and do not have any idea about topics that they need as a beginner DATA SCIENCE/ DATA ANALYST.  I am also facing the same problem before a year ago and till date I have some relevant knowledge about data science and also have some projects.  People are saying the we need so many skills like Mathematics, Programming language, some cloud concepts too. Actually they are right. Being a Data Scientist is not like being a web developer or a front-end developer that have limited skill set.  In this post I will tell you the exact topics that you need to learn at beginner level. MATHEMATICS Descriptive Statistics, distributions, hypothesis testing and regression analysis. Bayesian Thinking, conditional probability, priors, maximum likely hood. Vectors and matrices Matrices operations Eigenvalues and eigenvectors Linear and non linear functions Multivariable calculus  PROGRAMMING LANGUAGE(Python or R)    Data types, String oper...

Dynamic Programming | Design & Analysis of Algorithms

In this post I'm going to give you a brief description about what the Dyanmic programming actually is !!


Dynamic programming is a strategy for designing of algorithms with attaining optimal solution. Don't confuse like this is a programming language like C , C++ etcetera.

It is used in that place where problem breaks down into recurring small subproblems.

Because In this technique, problem divides in many subproblems so there will be sequences of decisions (solutions) and with the help of these sequences, we get an optimal solution.

Elements and characteristics of Dynamic programming 

1. Simple subproblem - A problem breaks in small subproblems which have same structure ture as main problem.

2. Optimal Sub structure problem - Optimal solution to the problem contain with inoptimal solution to its subproblems.

3. Overlapping sub problem - Some times there are some cases for which we have to solve subproblems more than one time, this is called overlapping in subproblems.

Steps for Designing Dynamic Algorithms 

1. Characterize optimal sub structure.
2. Recursively defined the value of an optimal solution. 
3. Compute the value by using bottom up approach. 
4. Construct an Optimal solution (if needed).

Block Diagram

We can understand Dynamic Programming with the help of following diagram.



Problem breaks into many subproblems and evry subproblems have decision's (solutions) and have some value and we select the optimal (minimum) value.

Applications of Dynamic Programming 

1. Matrix chain multiplication 
2. Optimal binary search tree
3. All pairs shortest path problems
4. Travelling salesman problem
5. 0/1 knapsack problem 
6. Reliable designing problme

We will cover all these applications in further posts.

Thanking you.

If you have any query, just drop a comment or connect -

https://www.instagram.com/kavyansh.pandey 

Comments