8,175 research outputs found
A survey on algorithmic aspects of modular decomposition
The modular decomposition is a technique that applies but is not restricted
to graphs. The notion of module naturally appears in the proofs of many graph
theoretical theorems. Computing the modular decomposition tree is an important
preprocessing step to solve a large number of combinatorial optimization
problems. Since the first polynomial time algorithm in the early 70's, the
algorithmic of the modular decomposition has known an important development.
This paper survey the ideas and techniques that arose from this line of
research
Teaching programming with computational and informational thinking
Computers are the dominant technology of the early 21st century: pretty well all aspects of economic, social and personal life are now unthinkable without them. In turn, computer hardware is controlled by software, that is, codes written in programming languages. Programming, the construction of software, is thus a fundamental activity, in which millions of people are engaged worldwide, and the teaching of programming is long established in international secondary and higher education. Yet, going on 70 years after the first computers were built, there is no well-established pedagogy for teaching programming.
There has certainly been no shortage of approaches. However, these have often been driven by fashion, an enthusiastic amateurism or a wish to follow best industrial practice, which, while appropriate for mature professionals, is poorly suited to novice programmers. Much of the difficulty lies in the very close relationship between problem solving and programming. Once a problem is well characterised it is relatively straightforward to realise a solution in software. However, teaching problem solving is, if anything, less well understood than teaching programming.
Problem solving seems to be a creative, holistic, dialectical, multi-dimensional, iterative process. While there are well established techniques for analysing problems, arbitrary problems cannot be solved by rote, by mechanically applying techniques in some prescribed linear order. Furthermore, historically, approaches to teaching programming have failed to account for this complexity in problem solving, focusing strongly on programming itself and, if at all, only partially and superficially exploring problem solving.
Recently, an integrated approach to problem solving and programming called Computational Thinking (CT) (Wing, 2006) has gained considerable currency. CT has the enormous advantage over prior approaches of strongly emphasising problem solving and of making explicit core techniques. Nonetheless, there is still a tendency to view CT as prescriptive rather than creative, engendering scholastic arguments about the nature and status of CT techniques. Programming at heart is concerned with processing information but many accounts of CT emphasise processing over information rather than seeing then as intimately related.
In this paper, while acknowledging and building on the strengths of CT, I argue that understanding the form and structure of information should be primary in any pedagogy of programming
Neural Task Programming: Learning to Generalize Across Hierarchical Tasks
In this work, we propose a novel robot learning framework called Neural Task
Programming (NTP), which bridges the idea of few-shot learning from
demonstration and neural program induction. NTP takes as input a task
specification (e.g., video demonstration of a task) and recursively decomposes
it into finer sub-task specifications. These specifications are fed to a
hierarchical neural program, where bottom-level programs are callable
subroutines that interact with the environment. We validate our method in three
robot manipulation tasks. NTP achieves strong generalization across sequential
tasks that exhibit hierarchal and compositional structures. The experimental
results show that NTP learns to generalize well to- wards unseen tasks with
increasing lengths, variable topologies, and changing objectives.Comment: ICRA 201
The Algorithmic Complexity of Modular Decomposition
Modular decomposition is a thoroughly investigated topic in
many areas such as switching theory, reliability theory, game theory and
graph theory. We propose an O(mn)-algorithm for the recognition of a
modular set of a monotone Boolean function f with m prime implicants
and n variables. Using this result we show that the computation of
the modular closure of a set can be done in time O(mn2). On the other
hand, we prove that the recognition problem for general Boolean func
tions is NP-complete. Moreover, we introduce the so called generalized
Shannon decomposition of a Boolean functions as an efficient tool for
proving theorems on Boolean function decompositions
Implementing Shor's algorithm on Josephson Charge Qubits
We investigate the physical implementation of Shor's factorization algorithm
on a Josephson charge qubit register. While we pursue a universal method to
factor a composite integer of any size, the scheme is demonstrated for the
number 21. We consider both the physical and algorithmic requirements for an
optimal implementation when only a small number of qubits is available. These
aspects of quantum computation are usually the topics of separate research
communities; we present a unifying discussion of both of these fundamental
features bridging Shor's algorithm to its physical realization using Josephson
junction qubits. In order to meet the stringent requirements set by a short
decoherence time, we accelerate the algorithm by decomposing the quantum
circuit into tailored two- and three-qubit gates and we find their physical
realizations through numerical optimization.Comment: 12 pages, submitted to Phys. Rev.
- âŠ