The Algorithm Design Manual Second Edition



Download 5,51 Mb.
Pdf ko'rish
bet214/488
Sana31.12.2021
Hajmi5,51 Mb.
#273936
1   ...   210   211   212   213   214   215   216   217   ...   488
Bog'liq
2008 Book TheAlgorithmDesignManual

7.11

Exercises

Backtracking

7-1. [3] derangement is a permutation of

{1, . . . , n} such that no item is in its proper

position, i.e. p



i

for all 1 ≤ i ≤ n. Write an efficient backtracking program with

pruning that constructs all the derangements of items.

7-2. [4] Multisets are allowed to have repeated elements. A multiset of items may

thus have fewer than n! distinct permutations. For example,



{1122has only

six different permutations:



{1122}{1212}{1221}{2112}{2121},

and


{2211}. Design and implement an efficient algorithm for constructing all

permutations of a multiset.

7-3. [5] Design and implement an algorithm for testing whether two graphs are isomor-

phic to each other. The graph isomorphism problem is discussed in Section

16.9

(page


550

). With proper pruning, graphs on hundreds of vertices can be tested

reliably.

7-4. [5] Anagrams are rearrangements of the letters of a word or phrase into a different

word or phrase. Sometimes the results are quite striking. For example, “MANY

VOTED BUSH RETIRED” is an anagram of “TUESDAY NOVEMBER THIRD,”

which correctly predicted the result of the 1992 U.S. presidential election. Design

and implement an algorithm for finding anagrams using combinatorial search and

a dictionary.

7-5. [8] Design and implement an algorithm for solving the subgraph isomorphism prob-

lem. Given graphs and H, does there exist a subgraph H



of such that G

is isomorphic to H



? How does your program perform on such special cases of

subgraph isomorphism as Hamiltonian cycle, clique, independent set, and graph

isomorphism?




7 . 1 1

E X E R C I S E S



271

7-6. [8] In the turnpike reconstruction problem, you are given n(n



− 1)/2 distances in

sorted order. The problem is to find the positions of points on the line that give

rise to these distances. For example, the distances

{123456can be determined

by placing the second point 1 unit from the first, the third point 3 from the second,

and the fourth point 2 from the third. Design and implement an efficient algorithm

to report all solutions to the turnpike reconstruction problem. Exploit additive

constraints when possible to minimize the search. With proper pruning, problems

with hundreds of points can be solved reliably.

Combinatorial Optimization

For each of the problems below, either (1) implement a combinatorial search pro-

gram to solve it optimally for small instance, and/or (2) design and implement

a simulated annealing heuristic to get reasonable solutions. How well does your

program perform in practice?

7-7. [5] Design and implement an algorithm for solving the bandwidth minimization

problem discussed in Section

13.2


(page

398


).

7-8. [5] Design and implement an algorithm for solving the maximum satisfiability prob-

lem discussed in Section

14.10


(page

472


).

7-9. [5] Design and implement an algorithm for solving the maximum clique problem

discussed in Section

16.1


(page

525


).

7-10. [5] Design and implement an algorithm for solving the minimum vertex coloring

problem discussed in Section

16.7


(page

544


).

7-11. [5] Design and implement an algorithm for solving the minimum edge coloring

problem discussed in Section

16.8


(page

548


).

7-12. [5] Design and implement an algorithm for solving the minimum feedback vertex

set problem discussed in Section

16.11


(page

559


).

7-13. [5] Design and implement an algorithm for solving the set cover problem discussed

in Section

18.1


(page

621


).

Interview Problems

7-14. [4] Write a function to find all permutations of the letters in a particular string.

7-15. [4] Implement an efficient algorithm for listing all k-element subsets of items.

7-16. [5] An anagram is a rearrangement of the letters in a given string into a sequence

of dictionary words, like Steven Skiena into Vainest Knees. Propose an algorithm

to construct all the anagrams of a given string.

7-17. [5] Telephone keypads have letters on each numerical key. Write a program that

generates all possible words resulting from translating a given digit sequence (e.g.,

145345) into letters.

7-18. [7] You start with an empty room and a group of people waiting outside. At

each step, you may either admit one person into the room, or let one out. Can

you arrange a sequence of 2

n

steps, so that every possible combination of people is

achieved exactly once?



272

7 .


C O M B I N A T O R I A L S E A R C H A N D H E U R I S T I C M E T H O D S

7-19. [4] Use a random number generator (rng04) that generates numbers from



{01234with equal probability to write a random number generator that gener-

ates numbers from 0 to 7 (rng07) with equal probability. What are expected number

of calls to rng04 per call of rng07?


Download 5,51 Mb.

Do'stlaringiz bilan baham:
1   ...   210   211   212   213   214   215   216   217   ...   488




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish