Consider n indivisible objects with distinct types i = 1, 2, 3,…, n. We are given positive integer weights W = {w1,w2...wn} and positive integer prices V = {v1,v2...vn} for the objects and a knapsack of weight capacity (m). Our problem is to find the maximum profit possible by including a subset of the objects into the knapsack with total weight of at most m.
This form of the 0/1 Knapsack Problem can be solved by a Decrease and Conquer approach as follows:
• Assume that we have tried objects of types 1,2,..., i -1 to fill the knapsack up to a total weight capacity (j) with a maximum profit of P(i-1,j)
• If j ≥ wi then P(i-1, j - wi) is the maximum profit if we remove the equivalent weight wi of the object of type (i).
• By trying to add object of type (i), we expect the maximum profit to change to P(i-1, j - wi) + vi
• If this change is better, we do it, otherwise we leave things as they were, i.e.,
P(i , j) = max { P(i-1, j) , P(i-1, j - wi) + vi } for j ≥ wi ,
and P(i , j) = P(i-1, j) for j < wi
• Notice that P(0 , j) = 0 (No objects are taken)
The above approach leads to a recursive Decrease and Conquer algorithm.
You are required to:
• Write a pseudocode of a Decrease & Conquer algorithm for solving the above problem
• Find the worst-case number of calls T(n) of this algorithm in terms of n.
The psuedo-code for this is as follows:
of size
.
, do
.The psuedo-code simply follows what the instructions are.
For time analysis, note that the main loop is around instruction
3. This loop runs for
times, while the
inner loops inside instruction 3 run for
time. Hence, the
total time for this is
.
Consider n indivisible objects with distinct types i = 1, 2, 3,…, n. We are given...
Haloo , i have java program , Java Program , dynamic program Given a knapsack with capacity B∈N and -n- objects with profits p0, ..., p n-1 and weights w0, ..., wn-1. It is also necessary to find a subset I ⊆ {0, ..., n-1} such that the profit of the selected objects is maximized without exceeding the capacity. However, we have another limitation: the number of objects must not exceed a given k ∈ N Example: For the items...
Consider the following more general version of the Knapsack problem. There are p groups of objects O1, O2, . . . , Op and a knapsack capacity W. Each object x has a weight wx and a value vx. Our goal is to select a subset of objects such that: • the total weights of selected objects is at most W, • at most one object is selected from any group, and • the total value of the selected objects...
There are n items in a store. For each item i=1,2,...,n the weight of the item is wi and the value of the item is vi. A thief is carrying a knapsack of weight W. In this version of a problem the items can be broken into smaller pieces, so the thief may decide to carry only a fraction xi of object i, where 0≤xi ≤1. Item i contributes xiwi to the total weight in the knapsack, and xivi to...
ALGORITHM PROBLEM: A) Significant Inversions: We are given a sequence of n arbitrary but distinct real numbers <a1 , a2 ,..., an>. We define a significant inversion to be a pair i < j such that ai > 2 aj . Design and analyze an O(n log n) time algorithm to count the number of significant inversions in the given sequence. [Hint: Use divide-&-conquer. Do the “combine” step carefully] B) The Maximum-Sum Monotone Sub-Array Problem: Input: An array A[1..n] of...
solution is required in pseudo code please.
2 Knapsack Problem În al Knapsack problem. given n items(11-12. . . . . 1"} with weight {w1·W2. . . . . ux) and value (n 2, .., nJ, the goal is to select a combination of items such that the total value V is maximized and the total weight is less or equal to a given capacity In this question, we will consider two different ways to represent a solution to the...
2 Knapsack Problem In a Knapsack problem, given n items {11, I2, -.., In} with weight {wi, w2, -.., wn) and value fvi, v2, ..., vn], the goal is to select a combination of items such that the total value V is maximized and the total weight is less or equal to a given capacity W. Tt i=1 In this question, we will consider two different ways to represent a solution to the Knapsack problem using an array with size...
Suppose that we are given a sorted array of distinct integers A[1, ......, n] and we want to decide whether there is an index i for which A[i] = i. Describe an efficient divide-and-conquer algorithm that solves this problem and explain the time complexity. 1. Describe the steps of your algorithm in plain English. 2. Write a recurrence equation for the runtime complexity. 3. Solve the equation by the master theorem.
"Greedy, but Better": Given a knapsack problem with a weight capacity C, and n items, and each item has a weight W[1:n] and monetary value P[1:n]. You have to determine which items to take so that the total weight is C, and the total value (profit) is maximized. In this case we are considering an integer problem, so you can either take an item, or not take an item, you cannot take it fractionally. If you recall, the greedy algorithm...
Suppose we are given two sorted arrays (nondecreasing from index 1 to index n) X[1] · · · X[n] and Y [1] · · · Y [n] of integers. For simplicity, assume that n is a power of 2. Problem is to design an algorithm that determines if there is a number p in X and a number q in Y such that p + q is zero. If such numbers exist, the algorithm returns true; otherwise, it returns false....
Design a local search algorithm for the 0-1 knapsack problem. Assume there are n items x1 ... xn each with weight wi and value vi. The knapsack can have at most one of each item and the total weight cannot exceed W. You want to maximize the total value in the knapsack.Question 1: (7 points) Show the psuedocode/explanation for your algorithm.Question 2. (3 points) Is it guaranteed to find an optimal solution? Justify your answer.