From da120bfde1b6824b7cc0d36b1d07b8ced41a37a5 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Date: Fri, 1 Oct 2021 22:48:38 +0530 Subject: [PATCH 1/5] Create README.md --- Dynamic Programming/Subset Sum Problem/Images/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Dynamic Programming/Subset Sum Problem/Images/README.md diff --git a/Dynamic Programming/Subset Sum Problem/Images/README.md b/Dynamic Programming/Subset Sum Problem/Images/README.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/Dynamic Programming/Subset Sum Problem/Images/README.md @@ -0,0 +1 @@ + From 93c653749fac27d00ff1374340a5168b661c9d1d Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Date: Fri, 1 Oct 2021 22:49:02 +0530 Subject: [PATCH 2/5] Add files via upload --- .../Subset Sum Problem/Images/subset1.png | Bin 0 -> 12038 bytes .../Subset Sum Problem/Images/subset2.png | Bin 0 -> 12041 bytes .../Subset Sum Problem/Images/subset3.png | Bin 0 -> 11774 bytes .../Subset Sum Problem/Images/subset4.png | Bin 0 -> 11860 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Dynamic Programming/Subset Sum Problem/Images/subset1.png create mode 100644 Dynamic Programming/Subset Sum Problem/Images/subset2.png create mode 100644 Dynamic Programming/Subset Sum Problem/Images/subset3.png create mode 100644 Dynamic Programming/Subset Sum Problem/Images/subset4.png diff --git a/Dynamic Programming/Subset Sum Problem/Images/subset1.png b/Dynamic Programming/Subset Sum Problem/Images/subset1.png new file mode 100644 index 0000000000000000000000000000000000000000..1bbf1c6c0c791fd79ebc6b964b40fb2e6ea2b0c1 GIT binary patch literal 12038 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 GBmM`U8c28m literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Subset Sum Problem/Images/subset2.png b/Dynamic Programming/Subset Sum Problem/Images/subset2.png new file mode 100644 index 0000000000000000000000000000000000000000..9e6ed857253715f4a1f6ab95d0b366573d16c2d0 GIT binary patch literal 12041 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Subset Sum Problem/Images/subset3.png b/Dynamic Programming/Subset Sum Problem/Images/subset3.png new file mode 100644 index 0000000000000000000000000000000000000000..094e86a89b6b83863c2ee41e5a538153612ca31d GIT binary patch literal 11774 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Subset Sum Problem/Images/subset4.png b/Dynamic Programming/Subset Sum Problem/Images/subset4.png new file mode 100644 index 0000000000000000000000000000000000000000..884e64754386f2852c198e7b46f07b2ecc61b236 GIT binary patch literal 11860 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 literal 0 HcmV?d00001 From 68ecdd7dd07e5aa56d75e0a878c85b0aa5dc0ade Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Date: Fri, 1 Oct 2021 22:49:18 +0530 Subject: [PATCH 3/5] Delete README.md --- Dynamic Programming/Subset Sum Problem/Images/README.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Dynamic Programming/Subset Sum Problem/Images/README.md diff --git a/Dynamic Programming/Subset Sum Problem/Images/README.md b/Dynamic Programming/Subset Sum Problem/Images/README.md deleted file mode 100644 index 8b137891..00000000 --- a/Dynamic Programming/Subset Sum Problem/Images/README.md +++ /dev/null @@ -1 +0,0 @@ - From 21bee136d3620dc9aee3da87e3abadf249862bdd Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Date: Fri, 1 Oct 2021 22:49:48 +0530 Subject: [PATCH 4/5] Create subset_sum_problem.py --- .../Subset Sum Problem/subset_sum_problem.py | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 Dynamic Programming/Subset Sum Problem/subset_sum_problem.py diff --git a/Dynamic Programming/Subset Sum Problem/subset_sum_problem.py b/Dynamic Programming/Subset Sum Problem/subset_sum_problem.py new file mode 100644 index 00000000..44a678ff --- /dev/null +++ b/Dynamic Programming/Subset Sum Problem/subset_sum_problem.py @@ -0,0 +1,88 @@ +# Subset Sum Problem using Dynamic Programming +# Directory : Dynamic Programming +# Language used : Python 3 +# Abhishek S, 2021 + +# ------------------------------------------------------------------ + +# Problem Statement : A Dynamic Programming solution for subset +# sum problem Returns true if there is a subset of +# set[] with sun equal to given sum + +# ------------------------------------------------------------------ + +# Solution : Creating the Python script to find out the required output. + + + +# Returns true if there is a subset of set[] +# with sum equal to given sum +def isSubsetSum(set, n, sum): + + # The value of subset[i][j] will be + # true if there is a + # subset of set[0..j-1] with sum equal to i + subset =([[False for i in range(sum + 1)] + for i in range(n + 1)]) + + # If sum is 0, then answer is true + for i in range(n + 1): + subset[i][0] = True + + # If sum is not 0 and set is empty, + # then answer is false + for i in range(1, sum + 1): + subset[0][i]= False + + # Fill the subset table in bottom up manner + for i in range(1, n + 1): + for j in range(1, sum + 1): + if j= set[i-1]: + subset[i][j] = (subset[i-1][j] or + subset[i - 1][j-set[i-1]]) + + # uncomment this code to print table + # for i in range(n + 1): + # for j in range(sum + 1): + # print (subset[i][j], end =" ") + # print() + return subset[n][sum] + +# Driver code +if __name__=='__main__': + print (" - Subset Sum Problem using Dynamic Programming - ") + print ("--------------------------------------------------") + print () + set = list(map(int, input("Enter the set of numbers : ").split(" "))) + print () + sum = int(input("Enter the subset sum : ")) + print () + print ("--------------------------------------------------") + print () + print ("Calculating the result...") + print () + print ("The Output is : ") + n = len(set) + if (isSubsetSum(set, n, sum) == True): + print("Found a subset with given sum") + else: + print("No subset with given sum") + + +# ------------------------------------------------------------------ +# Input Cases : +# Enter the set of numbers : 1 5 3 7 4 +# Enter the subset sum : 12 + +# ------------------------------------------------------------------ +# Output : +# Calculating the result... + +# The Output is : +# Found a subset with given sum + +# ------------------------------------------------------------------ + +# Code contributed by, Abhishek Sharma, 2021 From 60cdcf6d5ded275ded376d93c594189855503823 Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Date: Fri, 1 Oct 2021 22:59:18 +0530 Subject: [PATCH 5/5] Create README.md --- .../Subset Sum Problem/README.md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 Dynamic Programming/Subset Sum Problem/README.md diff --git a/Dynamic Programming/Subset Sum Problem/README.md b/Dynamic Programming/Subset Sum Problem/README.md new file mode 100644 index 00000000..11e7bf95 --- /dev/null +++ b/Dynamic Programming/Subset Sum Problem/README.md @@ -0,0 +1,84 @@ +# Subset Sum Problem using Dynamic Programming +Language used : **Python 3** + +## 🎯 Aim +The aim of this script is to find out if there is a subset of the given set with sum equal to given sum. + +## 👉 Purpose +The main purpose of this script is to show the implementation of Dynamic Programming to find out if there is a subset of the given set with sum equal to given sum. + +## 📄 Description +Given a set of non-negative integers, and a value sum, determine if there is a subset of the given set with sum equal to given sum. +``` +Example: + +Input: set[] = {3, 34, 4, 12, 5, 2}, sum = 9 +Output: True +There is a subset (4, 5) with sum 9. + +Input: set[] = {3, 34, 4, 12, 5, 2}, sum = 30 +Output: False +There is no subset that add up to 30. +``` + +## 📈 Workflow of the script +- `isSubsetSum` - Returns true if there is a subset of set[] with sum equal to given sum. +- `main` - This is the driver code for this python script. + +## 📃 Explanation +We will create a 2D array of `size (arr.size() + 1) * (target + 1)` of type boolean. The state `DP[i][j]` will be true if there exists a subset of elements from `A[0….i]` with sum value = `‘j’`. The approach for the problem is: +``` +if (A[i-1] > j) +DP[i][j] = DP[i-1][j] +else +DP[i][j] = DP[i-1][j] OR DP[i-1][j-A[i-1]] +``` +1. This means that if current element has value greater than ‘current sum value’ we will copy the answer for previous cases +2. And if the current sum value is greater than the `‘ith’` element we will see if any of previous states have already experienced the `sum=’j’` OR any previous states experienced a value `‘j – A[i]’` which will solve our purpose. + +## 🧮 Algorithm +The below simulation will clarify the above approach: +``` +set[]={3, 4, 5, 2} +target=6 + + 0 1 2 3 4 5 6 + +0 T F F F F F F + +3 T F F T F F F + +4 T F F T T F F + +5 T F F T T T F + +2 T F T T T T T +``` + +## 💻 Input and Output +- **Test Case 1 :** + +![](https://github.com/abhisheks008/PyAlgo-Tree/blob/main/Dynamic%20Programming/Subset%20Sum%20Problem/Images/subset1.png) + +- **Test Case 2 :** + +![](https://github.com/abhisheks008/PyAlgo-Tree/blob/main/Dynamic%20Programming/Subset%20Sum%20Problem/Images/subset2.png) + +- **Test Case 3 :** + +![](https://github.com/abhisheks008/PyAlgo-Tree/blob/main/Dynamic%20Programming/Subset%20Sum%20Problem/Images/subset3.png) + +- **Test Case 3 :** + +![](https://github.com/abhisheks008/PyAlgo-Tree/blob/main/Dynamic%20Programming/Subset%20Sum%20Problem/Images/subset4.png) + + +## ⏰ Time and Space complexity +- **Time Complexity:** `O(sum*n)`, where sum is the ‘target sum’ and ‘n’ is the size of array. +- **Space Complexity:** `O(sum*n)`, as the size of 2-D array is `sum*n`. + +--------------------------------------------------------------- +## 🖋️ Author +**Code contributed by, _Abhishek Sharma_, 2021 [@abhisheks008](github.com/abhisheks008)** + +[![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/)