/*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 14E Cutting cloth. You are given a r... [FREE SOLUTION] | 91影视

91影视

Cutting cloth. You are given a rectangular piece of cloth with dimensions XY, whereX and Yare positive integers, and a list of products that can be made using the cloth. For each producti[1,n] you know that a rectangle of cloth of dimensionsaibi is needed and that the final selling price of the product is ci. Assume the,ai biandci are all positive integers. You have a machine that can cut any rectangular piece of cloth into two pieces either horizontally or vertically. Design an algorithm that determines the best return on theXY piece of cloth, that is, a strategy for cutting the cloth so that the products made from the resulting pieces give the maximum sum of selling prices. You are free to make as many copies of a given product as you wish, or none if desired.

Short Answer

Expert verified

Using dynamic programming, the required algorithm can be implemented with time complexity OXYX+Y+n.

Step by step solution

01

Defining recursive relation

ConsiderCUTi,j be the cut made in order to make maximum selling cost.

Base case is when no cut is made,i=j=0 which give CUTi,j=0.

To cut horizontally, alongx, the recursive relation is

CUTi,j=maxCUTi,j,CUTicut,j+CUTiicut,j

To cut vertically, along,y the recursive relation is

CUTi,鈥j=maxCUTi,鈥j,CUTi,鈥jcut+CUTi,jjcut

From these two recurrence relation, dimension of cloth required to make maximum selling price.

02

Determine an algorithm

The algorithm is given as follows:

fori=0鈥则辞x-1鈥勨赌勨赌刦辞谤j=0鈥则辞鈥Y1鈥勨勨勨勨赌勨赌刦辞谤icut=1鈥则辞鈥i1鈥勨赌勨赌勨赌勨赌勨赌勨赌勨赌勨赌CUTi,j=maxCUTi,j,CUTicut,j+CUTiicut,j

鈥勨勨勨勨赌勨赌刦辞谤jcut=1鈥则辞j1鈥勨赌勨赌勨赌勨赌勨赌勨赌勨赌勨赌CUTi,j=maxCUTi,j,CUTi,jcut+CUTi,jjcut鈥勨勨勨勨赌勨赌刦辞谤颈迟别尘鈥刬苍滨罢贰惭厂鈥勨赌勨赌勨赌勨赌勨赌勨赌勨赌勨赌刬fitemdimension=i,j鈥勨赌勨赌勨赌勨赌勨赌勨赌勨赌勨赌勨勨勨CUTi,j=maxCUTi,j,ci谤别迟耻谤苍鈥CUTX1,Y1

The algorithm returns the desired size of cloth need to earn maximum selling price.

03

Analyse the run time of the algorithm 

The inner three for()loops runX,Y andn times, so runtime for inner loops are OX+Y+nNow outer loops run in nesting, that give OXY.

Thus, effective runtime is OXYX+Y+n.

Unlock Step-by-Step Solutions & Ace Your Exams!

  • Full Textbook Solutions

    Get detailed explanations and key concepts

  • Unlimited Al creation

    Al flashcards, explanations, exams and more...

  • Ads-free access

    To over 500 millions flashcards

  • Money-back guarantee

    We refund you if you fail your exam.

Over 30 million students worldwide already upgrade their learning with 91影视!

One App. One Place for Learning.

All the tools & learning materials you need for study success - in one app.

Get started for free

Most popular questions from this chapter

Let us define a multiplication operation on three symbols a,b,caccording to the following table; thus ab=b,ba=c, and so on. Notice that the multiplication operation defined by the table is neither associative nor commutative.

Find an efficient algorithm that examines a string of these symbols, say bbbbac, and decides whether or not it is possible to parenthesize the string in such a way that the value of the resulting expression is . For example, on input bbbbacyour algorithm should return yes because((b(bb))(ba))c=a.

You are given a string of n characters s[1...n], which you believe to be a corrupted text document in which all punctuation has vanished (so that it looks something like 鈥渋twasthebestoftimes...鈥). You wish to reconstruct the document using a dictionary, which is available in the form of a Boolean function dict(.): for any string w,

dict(w)={trueifwisavalidwordfalseotherwise

Give a dynamic programming algorithm that determines whether the string s[.]can be reconstituted as a sequence of valid words. The running time should be at mostO(n2) , assuming calls to dict take unit time.

In the event that the string is valid, make your algorithm output the corresponding sequence of words.

A certain string-processing language offers a primitive operation which splits a string into two pieces. Since this operation involves copying the original string, it takes n units of time for a string of length n, regardless of the location of the cut. Suppose, now, that you want to break a string into many pieces. The order in which the breaks are made can affect the total running time. For example, if you want to cut a 20-character string at positions 3 and 10, then making the first cut at position 3 incurs a total cost of 20+17=37, while doing position first has a better cost of 20+17=37.

Give a dynamic programming algorithm that, given the locations of m cuts in a string of length , finds the minimum cost of breaking the string into m +1 pieces.

Optimal binary search trees. Suppose we know the frequency with which keywords occur in programs of a certain language, for instance:

begin5%do40%else8%end4%

if10%then10%while23%

We want to organize them in a binary search tree, so that the keyword in the root is alphabetically bigger than all the keywords in the left subtree and smaller than all the keywords in the right subtree (and this holds for all nodes). Figure 6.12 has a nicely-balanced example on the left. In this case, when a keyword is being looked up, the number of comparisons needed is at most three: for instance, in finding 鈥渨hile鈥, only the three nodes 鈥渆nd鈥, 鈥渢hen鈥, and 鈥渨hile鈥 get examined. But since we know the frequency 196 Algorithms with which keywords are accessed, we can use an even more fine-tuned cost function, the average number of comparisons to look up a word. For the search tree on the left, it is

cost=1(0.04)+2(0.40+0.10)+3(0.05+0.08+0.10+0.23)=2.42

By this measure, the best search tree is the one on the right, which has a cost of Give an efficient algorithm for the following task. Input: n words (in sorted order); frequencies of these words: p1,p2,...,pn.

Output: The binary search tree of lowest cost (defined above as the expected number of comparisons in looking up a word).

Figure 6.12 Two binary search trees for the keywords of a programming language.

The garage sale problem (courtesy of Professor Lofti Zadeh). On a given Sunday morning, there are n garage sales going on, g1,g2,g3............gn. For each garage sale gj, you have an estimate of its value to you, vj. For any two garage sales you have an estimate of the transportation cost dijof getting from gito gj. You are also given the costs d0jand dj0of going between your home and each garage sale. You want to find a tour of a subset of the given garage sales, starting and ending at home, that maximizes your total benefit minus your total transportation costs. Give an algorithm that solves this problem in time O(n22n).

(Hint: This is closely related to the traveling salesman problem.)

See all solutions

Recommended explanations on Computer Science Textbooks

View all explanations

What do you think about this solution?

We value your feedback to improve our textbook solutions.

Study anywhere. Anytime. Across all devices.