### Analytics for Kids

Some interesting stuff you can do with Lego's to introduce analytic thinking, computational complexity, and experimental design to kids 6-12 years old, and get them interested in analytics. Let's say you purchase 2 sets of Lego's (one to build a car, another one to build another car). Let's assume that the overlap between the two sets is substantial. There is three different ways that you can build the two cars. The first step consists in sorting the pieces (Lego's) by color, and maybe also size.

### Analytics for Kids

Some interesting stuff you can do with Lego's to introduce analytic thinking, computational complexity, and experimental design to kids 6-12 years old, and get them interested in analytics. Let's say you purchase 2 sets of Lego's (one to build a car, another one to build another car). Let's assume that the overlap between the two sets is substantial. There is three different ways that you can build the two cars. The first step consists in sorting the pieces (Lego's) by color, and maybe also size.

### Exhaustive and Semi-Exhaustive Procedural Content Generation

Within the area of procedural content generation (PCG) there are a wide range of techniques that have been used to generate content. Many of these techniques use traditional artificial intelligence approaches, such as genetic algorithms, planning, and answer-set programming. One area that has not been widely explored is straightforward combinatorial search -- exhaustive enumeration of the entire design space or a significant subset thereof. This paper synthesizes literature from mathematics and other subfields of Artificial Intelligence to provide reference for the algorithms needed when approaching exhaustive procedural content generation. It builds on this with algorithms for exhaustive search and complete examples how they can be applied in practice.

### Monitoring the Execution of Partial-Order Plans via Regression

Partial-order plans (POPs) have the capacity to compactly represent numerous distinct plan linearizations and as a consequence are inherently robust. We exploit this robustness to do effective execution monitoring. We characterize the conditions under which a POP remains viable as the regression of the goal through the structure of a POP. We then develop a method for POP execution monitoring via a structured policy, expressed as an ordered algebraic decision diagram. The policy encompasses both state evaluation and action selection, enabling an agent to seamlessly switch between POP linearizations to accommodate unexpected changes during execution. We demonstrate the effectiveness of our approach by comparing it empirically and analytically to a standard technique for execution monitoring of sequential plans. On standard benchmark planning domains, our approach is 2 to 17 times faster and up to 2.5 times more robust than comparable monitoring of a sequential plan. On POPs that have few ordering constraints among actions, our approach is significantly more robust, with the ability to continue executing in up to an exponential number of additional states.

### Edge Partitioning in Parallel Structured Duplicate Detection

Heuristic-search planners that use A* and related graph search algorithms must be parallelized to harness advances in computing power that are based on increasing use of multi-core processors. Although a graph can always be converted to an equivalent tree that can be easily searched in parallel, such a conversion increases the size of the search space exponentially, and the resulting overhead is hard to justify in the context of parallel search for which the speedup ratio is bounded by the number of parallel processes, a polynomial resource in most practical settings. A more direct approach to parallelizing graph search is needed. The challenge in parallelizing graph search is duplicate detection, which requires checking newly generated nodes against the set of already visited nodes. If performed naively, duplicate detection may require excessive synchronization among concurrent search processes (e.g., to maintain the open and closed lists of A*). Here we show how edge partitioning, a technique that was developed originally for reducing the number of time-consuming disk I/O operations in external-memory search, can be used in a parallel setting to reduce the frequency with which search processes need to synchronize with one another, effectively reducing the primary source of overhead in parallel graph search.