多项式时间下的方块平铺和多米诺骨牌填充

IF 0.9 3区 计算机科学 Q3 COMPUTER SCIENCE, THEORY & METHODS
Anders Aamand, Mikkel Abrahamsen, Peter M. R. Rasmussen, Thomas D. Ahle
{"title":"多项式时间下的方块平铺和多米诺骨牌填充","authors":"Anders Aamand, Mikkel Abrahamsen, Peter M. R. Rasmussen, Thomas D. Ahle","doi":"https://dl.acm.org/doi/10.1145/3597932","DOIUrl":null,"url":null,"abstract":"<p>A polyomino is a polygonal region with axis-parallel edges and corners of integral coordinates, which may have holes. In this paper, we consider planar tiling and packing problems with polyomino pieces and a polyomino container <i>P</i>. We give polynomial-time algorithms for deciding if <i>P</i> can be tiled with <i>k</i> × <i>k</i> squares for any fixed <i>k</i> which can be part of the input (that is, deciding if <i>P</i> is the union of a set of non-overlapping <i>k × k</i> squares) and for packing <i>P</i> with a maximum number of non-overlapping and axis-parallel <i>2 × 1</i> dominos, allowing rotations by 90°. As packing is more general than tiling, the latter algorithm can also be used to decide if <i>P</i> can be tiled by 2 × 1 dominos.</p><p>These are classical problems with important applications in VLSI design, and the related problem of finding a maximum packing of 2 × 2 squares is known to be NP-hard [6]. For our three problems there are known pseudo-polynomial-time algorithms, that is, algorithms with running times polynomial in the <i>area</i> or <i>perimeter</i> of <i>P</i>. However, the standard, compact way to represent a polygon is by listing the coordinates of the corners in binary. We use this representation, and thus present the first polynomial-time algorithms for the problems. Concretely, we give a simple <i>O(n</i> log <i>n</i>)-time algorithm for tiling with squares, where <i>n</i> is the number of corners of <i>P</i>. We then give a more involved algorithm that reduces the problems of packing and tiling with dominos to finding a maximum and perfect matching in a graph with <i>O</i>(<i>n</i><sup>3</sup>) vertices. This leads to algorithms with running times \\(O(n^3 \\frac{\\log ^3 n}{\\log ^2\\log n})\\) and \\(O(n^3 \\frac{\\log ^2 n}{\\log \\log n})\\), respectively.</p>","PeriodicalId":50922,"journal":{"name":"ACM Transactions on Algorithms","volume":"7 17","pages":""},"PeriodicalIF":0.9000,"publicationDate":"2023-07-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Tiling with Squares and Packing Dominos in Polynomial Time\",\"authors\":\"Anders Aamand, Mikkel Abrahamsen, Peter M. R. Rasmussen, Thomas D. Ahle\",\"doi\":\"https://dl.acm.org/doi/10.1145/3597932\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<p>A polyomino is a polygonal region with axis-parallel edges and corners of integral coordinates, which may have holes. In this paper, we consider planar tiling and packing problems with polyomino pieces and a polyomino container <i>P</i>. We give polynomial-time algorithms for deciding if <i>P</i> can be tiled with <i>k</i> × <i>k</i> squares for any fixed <i>k</i> which can be part of the input (that is, deciding if <i>P</i> is the union of a set of non-overlapping <i>k × k</i> squares) and for packing <i>P</i> with a maximum number of non-overlapping and axis-parallel <i>2 × 1</i> dominos, allowing rotations by 90°. As packing is more general than tiling, the latter algorithm can also be used to decide if <i>P</i> can be tiled by 2 × 1 dominos.</p><p>These are classical problems with important applications in VLSI design, and the related problem of finding a maximum packing of 2 × 2 squares is known to be NP-hard [6]. For our three problems there are known pseudo-polynomial-time algorithms, that is, algorithms with running times polynomial in the <i>area</i> or <i>perimeter</i> of <i>P</i>. However, the standard, compact way to represent a polygon is by listing the coordinates of the corners in binary. We use this representation, and thus present the first polynomial-time algorithms for the problems. Concretely, we give a simple <i>O(n</i> log <i>n</i>)-time algorithm for tiling with squares, where <i>n</i> is the number of corners of <i>P</i>. We then give a more involved algorithm that reduces the problems of packing and tiling with dominos to finding a maximum and perfect matching in a graph with <i>O</i>(<i>n</i><sup>3</sup>) vertices. This leads to algorithms with running times \\\\(O(n^3 \\\\frac{\\\\log ^3 n}{\\\\log ^2\\\\log n})\\\\) and \\\\(O(n^3 \\\\frac{\\\\log ^2 n}{\\\\log \\\\log n})\\\\), respectively.</p>\",\"PeriodicalId\":50922,\"journal\":{\"name\":\"ACM Transactions on Algorithms\",\"volume\":\"7 17\",\"pages\":\"\"},\"PeriodicalIF\":0.9000,\"publicationDate\":\"2023-07-14\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"ACM Transactions on Algorithms\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://doi.org/https://dl.acm.org/doi/10.1145/3597932\",\"RegionNum\":3,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q3\",\"JCRName\":\"COMPUTER SCIENCE, THEORY & METHODS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Transactions on Algorithms","FirstCategoryId":"94","ListUrlMain":"https://doi.org/https://dl.acm.org/doi/10.1145/3597932","RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, THEORY & METHODS","Score":null,"Total":0}
引用次数: 0

摘要

多边形是一个多边形区域,它的边和角是轴平行的积分坐标,可以有孔。在本文中,我们考虑了平面的平铺和填充问题,其中包含了多项式块和一个多项式容器P。我们给出了多项式时间算法来决定P是否可以被k × k平方平铺,对于任意固定的k可以作为输入的一部分(即,决定P是否为一组不重叠的k × k平方的并集),以及P是否可以被最大数量的不重叠且轴平行的2 × 1多米诺骨牌填充,允许旋转90°。由于打包比平铺更普遍,后一种算法也可以用来决定P是否可以被2 × 1多米诺骨牌平铺。这些都是在VLSI设计中具有重要应用的经典问题,而寻找2 × 2平方的最大封装的相关问题已知是NP-hard[6]。对于我们的三个问题,有已知的伪多项式时间算法,即在p的面积或周长上具有多项式运行时间的算法。然而,表示多边形的标准、紧凑的方法是将角的坐标以二进制形式列出。我们使用这种表示,因此提出了第一个多项式时间算法的问题。具体地说,我们给出了一个简单的O(n log n)时间算法来平铺正方形,其中n是p的角数。然后我们给出了一个更复杂的算法,它减少了多米诺骨牌的包装和平铺问题,在一个有O(n3)个顶点的图中找到一个最大和完美的匹配。这导致算法的运行时间分别为\(O(n^3 \frac{\log ^3 n}{\log ^2\log n})\)和\(O(n^3 \frac{\log ^2 n}{\log \log n})\)。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Tiling with Squares and Packing Dominos in Polynomial Time

A polyomino is a polygonal region with axis-parallel edges and corners of integral coordinates, which may have holes. In this paper, we consider planar tiling and packing problems with polyomino pieces and a polyomino container P. We give polynomial-time algorithms for deciding if P can be tiled with k × k squares for any fixed k which can be part of the input (that is, deciding if P is the union of a set of non-overlapping k × k squares) and for packing P with a maximum number of non-overlapping and axis-parallel 2 × 1 dominos, allowing rotations by 90°. As packing is more general than tiling, the latter algorithm can also be used to decide if P can be tiled by 2 × 1 dominos.

These are classical problems with important applications in VLSI design, and the related problem of finding a maximum packing of 2 × 2 squares is known to be NP-hard [6]. For our three problems there are known pseudo-polynomial-time algorithms, that is, algorithms with running times polynomial in the area or perimeter of P. However, the standard, compact way to represent a polygon is by listing the coordinates of the corners in binary. We use this representation, and thus present the first polynomial-time algorithms for the problems. Concretely, we give a simple O(n log n)-time algorithm for tiling with squares, where n is the number of corners of P. We then give a more involved algorithm that reduces the problems of packing and tiling with dominos to finding a maximum and perfect matching in a graph with O(n3) vertices. This leads to algorithms with running times \(O(n^3 \frac{\log ^3 n}{\log ^2\log n})\) and \(O(n^3 \frac{\log ^2 n}{\log \log n})\), respectively.

求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
ACM Transactions on Algorithms
ACM Transactions on Algorithms COMPUTER SCIENCE, THEORY & METHODS-MATHEMATICS, APPLIED
CiteScore
3.30
自引率
0.00%
发文量
50
审稿时长
6-12 weeks
期刊介绍: ACM Transactions on Algorithms welcomes submissions of original research of the highest quality dealing with algorithms that are inherently discrete and finite, and having mathematical content in a natural way, either in the objective or in the analysis. Most welcome are new algorithms and data structures, new and improved analyses, and complexity results. Specific areas of computation covered by the journal include combinatorial searches and objects; counting; discrete optimization and approximation; randomization and quantum computation; parallel and distributed computation; algorithms for graphs, geometry, arithmetic, number theory, strings; on-line analysis; cryptography; coding; data compression; learning algorithms; methods of algorithmic analysis; discrete algorithms for application areas such as biology, economics, game theory, communication, computer systems and architecture, hardware design, scientific computing
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信