新書推薦:
《
惜华年(全两册)
》
售價:HK$
70.3
《
甲骨文丛书·古代中国的军事文化
》
售價:HK$
99.7
《
中国王朝内争实录(套装全4册):从未见过的王朝内争编著史
》
售價:HK$
244.2
《
半导体纳米器件:物理、技术和应用
》
售價:HK$
177.0
《
创客精选项目设计与制作 第2版 刘笑笑 颜志勇 严国陶
》
售價:HK$
61.6
《
佛山华家班粤菜传承 华家班59位大厨 102道粤菜 图文并茂 菜式制作视频 粤菜故事技法 佛山传统文化 广东科技
》
售價:HK$
221.8
《
武人琴音(十周年纪念版 逝去的武林系列收官之作 形意拳一门三代:尚云祥、韩伯言、韩瑜的人生故事 凸显百年武人命运)
》
售價:HK$
43.7
《
剑桥斯堪的纳维亚戏剧史(剑桥世界戏剧史译丛)
》
售價:HK$
154.6
|
編輯推薦: |
1.专业作者:哥伦比亚大学计算机科学系教授蒂姆·拉夫加登丰富的教学经验和深入的研究成果使得这本书成为算法领域的专业之作。2.实战导向:本书是《算法详解》四部曲的第四卷,主要介绍NP-Hard问题算法。全书内容丰富、结构清晰,提供了快速识别NP-Hard问题的方法和处理NP的算法工具,适合读者提升算法思维能力。3.自测习题:每章都提供了小测验和章末习题,这不仅能够帮助读者加深对算法的理解,还能够培养读者的独立思考能力。4.能力提升:无论是计算机专业的高校教师和学生,还是想要培养和训练算法思维与计算思维的IT专业人士,甚至是正在准备面试的应聘者和面试官,本书都能够有效提升算法能力。
|
內容簡介: |
算法详解系列图书共有4卷,本书是第4卷——NP-Hard问题算法。全书共有6章,主要介绍了快速识别NP-Hard问题的方法和处理NP的算法工具。本书的每一章均有小测验、章末习题,这为读者的自我检查以及进一步学习提供了方便。本书提供了丰富而实用的资料,能够帮助读者提升算法思维能力。本书适合计算机专业的高校教师和学生,想要培养和训练算法思维与计算思维的IT专业人士,以及正在准备面试的应聘者和面试官阅读参考。
|
關於作者: |
蒂姆·拉夫加登(Tim Roughgarden)是哥伦比亚大学计算机科学系的教授,之前曾任教于斯坦福大学计算机科学系,他从2004年开始教授和研究算法。本书是他的《算法详解》四部曲的第三卷,基于他从2012年开始定期举行的在线算法课程编写。
|
目錄:
|
第 1章 什么是NP问题11.1 MST和TSP:算法的难解之谜21.1.1 最小生成树问题21.1.2 旅行商问题31.1.3 解决TSP的尝试和失败41.1.4 小测验1.1?C1.2的答案61.2 读者的不同专业层次71.3 容易的问题和困难的问题81.3.1多项式时间的算法91.3.2 多项式时间与指数级时间101.3.3 容易的问题111.3.4 相对难以处理121.3.5 困难的问题121.3.6 P≠NP猜想141.3.7 NP问题的临时定义141.3.8 随机化和量子算法151.3.9 微妙性151.4 NP问题的算法策略161.4.1 通用、正确、快速(选择其二)171.4.2 通用性的妥协181.4.3 正确性的妥协191.4.4 最坏情况运行时间的妥协201.4.5 关键思路211.5 证明NP问题:一个简单的方案211.5.1 转化221.5.2 使用转化来设计快速算法231.5.3 使用转化对NP问题进行扩展251.5.4 无环最短路径是NP问题261.5.5 小测验1.3的答案301.6 新手错误和可接受的不准确说法301.7 本章要点331.8 章末习题341.8.1 挑战题361.8.2 编程题37第 2章 正确性的妥协:高效的不准确算法382.1 完成工时最小化382.1.1 问题定义392.1.2 贪心算法402.1.3 Graham算法412.1.4 运行时间422.1.5 近似的正确性422.1.6 定理2.1的证明442.1.7 最长处理时间优先(LPT)462.1.8 定理2.4的证明492.1.9 小测验2.1?C2.3的答案502.2 最大覆盖512.2.1 问题定义512.2.2 更多的应用532.2.3 一种贪心算法542.2.4 GreedyCoverage算法的糟糕例子552.2.5 近似正确性572.2.6 一个关键的辅助结论582.2.7 定理2.6的证明602.2.8 小测验2.4?C2.5的答案61*2.3 影响最大化622.3.1 社交网络的瀑布模型622.3.2 例子632.3.3 影响最大化问题642.3.4 一种贪心算法652.3.5 近似正确性662.3.6 影响是覆盖函数的一个加权和662.3.7 定理2.8的证明672.3.8 小测验2.6的答案692.4 TSP的2-OPT启发式算法702.4.1 处理TSP702.4.2 通过2-变换改进路线722.4.3 2-OPT算法742.4.4 运行时间752.4.5 解决方案质量762.4.6 小测验2.7?C2.8的答案762.5 局部搜索的原则772.5.1 可行解决方案的元图(Meta-Graph)772.5.2 局部搜索算法设计范例792.5.3 三个建模决策802.5.4 两个算法设计决策832.5.5 运行时间和解决方案质量842.5.6 避免不好的局部最优解842.5.7 什么时候应该使用局部搜索?862.5.8 小测验2.9?C2.10的答案862.6 本章要点872.7 章末习题882.7.1 挑战题912.7.2 编程题96第3章 速度的妥协:准确的非高效算法983.1 TSP的Bellman-Held-Karp算法983.1.1 底线:穷举搜索983.1.2 动态规划993.1.3 最优子结构1003.1.4 推导公式1023.1.5 子问题1033.1.6 Bellman-Held-Karp算法1043.1.7 小测验3.1的答案105*3.2 通过颜色编码寻找最长路径1063.2.1 动机1073.2.2 问题定义1073.2.3 子问题的初次试探1083.2.4 颜色编码1093.2.5 计算最低成本全色路径1103.2.6 正确性和运行时间1133.2.7 随机化挽救危局1143.2.8 最终的算法1163.2.9 运行时间和正确性1173.2.10 再论PPI网络1183.2.11 小测验3.2?C3.4的答案1183.3 问题特定的算法与万能魔盒1193.3.1 转化和万能魔盒1193.3.2 MIP和SAT解决程序1203.3.3 将要学习的和不会学习的1213.3.4 再论新手易犯的错误1213.4 混合整数规划解决程序1213.4.1 例子:背包问题1223.4.2 更基本意义上的MIP1243.4.3 MIP解决程序:一些起点1253.5 可满足性解决程序1263.5.1 示例:图形着色1263.5.2 可满足性1273.5.3 把图形着色问题表达为SAT1283.5.4 SAT解决程序:一些起点1303.6 本章要点1303.7 章末习题1323.7.1 挑战题1343.7.2 编程题137第4章 证明NP问题1384.1 再论转化1384.2 3-SAT问题和Cook-Levin定理1404.3 整体思路1424.3.1 再论新手易犯的错误1424.3.2 18个转化1424.3.3 为什么要啃艰涩的NP问题证明?1444.3.4 小测验4.1的答案1454.4 一个转化模板1454.5 独立子集问题是NP问题1474.5.1 主要思路1474.5.2 定理4.2的证明150*4.6 有向汉密尔顿路径问题是NP问题1524.6.1 变量的编码和真值指派1534.6.2 约束条件的编码1544.6.3 定理4.4的证明1564.7 TSP是NP问题1584.7.1 无向汉密尔顿路径问题1584.7.2 定理4.7的证明1594.8 子集求和问题是NP问题1614.8.1 基本方法1614.8.2 例子:4顶点环路1624.8.3 例子:5顶点环路1634.8.4 定理4.9的证明1644.9 本章要点1654.10 章末习题166第5章 P、NP及相关概念170*5.1 难处理性的累积证据1715.1.1 通过转化创建一个案例1715.1.2 为TSP选择集合C172*5.2 决策、搜索和优化173*5.3 NP:具有容易识别的解决方案的问题1745.3.1 复杂类NP的定义1745.3.2 NP中的问题实例1755.3.3 NP问题是可以通过穷举搜索解决的1765.3.4 NP问题1765.3.5 再论Cook-Levin定理1775.3.6 小测验5.1的解决方案179*5.4 P≠NP猜想1805.4.1 多项式时间可解决的NP问题1805.4.2 P≠NP猜想的正式定义1805.4.3 P≠NP猜想的状态181*5.5 指数级时间假设1835.5.1 NP问题需要指数级的时间吗?1835.5.2 强指数级时间假设(SETH)1845.5.3 容易问题的运行时间下界185*5.6 NP完全问题1875.6.1 Levin转化1875.6.2 NP中最难的问题1895.6.3 NP完全问题的存在1895.7 本章要点1915.8 章末习题192第6章 案例研究:FCC激励拍卖1956.1 无线频谱再利用1956.1.1 从电视到移动电话1956.1.2 无线频谱的一次最近重分配1966.2 回购执照的启发式贪心算法1986.2.1 4个临时的简化假设1986.2.2 遭遇加权独立子集问题1996.2.3 启发式贪心算法2006.2.4 多频道情况2026.2.5 遭遇图形着色问题2036.2.6 小测验6.1的答案2046.3 可行性检查2056.3.1 改编为可满足性问题2056.3.2 加入边际约束条件2066.3.3 重新安置问题2066.3.4 技巧#1:预解决程序(寻求一种容易的解决之道)2076.3.5 技巧#2:预处理和简化2086.3.6 技巧#3:SAT解决程序的组合2106.3.7 容忍失败2116.3.8 小测验6.2的答案2116.4 降序时钟拍卖的实现2126.4.1 拍卖和算法2126.4.2 例子2136.4.3 重新实现FCCGreedy算法2146.4.4 是时候提供补偿了2166.5 最终结果2176.6 本章要点2186.7 章末习题2186.7.1 挑战题2206.7.2 编程题220后记 算法设计实战指南221附录 问题提示和答案224
|
|