Abstract
The concept of decomposition in computer science and engineering is considered a fundamental component of computational thinking and is prevalent in design of algorithms, software construction, hardware design, and more. We propose a simple and natural formalization of sequential decomposition, in which a task is decomposed into two sequential sub-tasks, with the first sub-task to be executed before the second sub-task is executed. These tasks are specified by means of input/output relations. We define and study decomposition problems, which is to decide whether a given specification can be sequentially decomposed. Our main result is that decomposition itself is a difficult computational problem. More specifically, we study decomposition problems in three settings: where the input task is specified explicitly, by means of Boolean circuits, and by means of automatic relations. We show that in the first setting decomposition is NP-complete, in the second setting it is NEXPTIME-complete, and in the third setting there is evidence to suggest that it is undecidable. Our results indicate that the intuitive idea of decomposition as a systemdesign approach requires further investigation. In particular, we show that adding a human to the loop by asking for a decomposition hint lowers the complexity of decomposition problems considerably.
Original language | American English |
---|---|
Pages (from-to) | 37:1-37:29 |
Journal | Logical Methods in Computer Science |
Volume | 18 |
Issue number | 1 |
DOIs | |
State | Published - 1 Jan 2022 |
Externally published | Yes |
Keywords
- Automatic Relations
- Composition
- Decomposition
- Positivity
- Synthesis
All Science Journal Classification (ASJC) codes
- Theoretical Computer Science
- General Computer Science