Markov Senior -- Learning Markov Junior Grammars to Generate User-specified Content

Mehmet Kayra Oğuz, Alexander Dockhorn
8/12/2024
cs.AI

No official code found. Best implementation: ADockhorn/MarkovSenior (10 stars, MIT, last commit 2024-05-13).

Abstract

Markov Junior is a probabilistic programming language used for procedural content generation across various domains. However, its reliance on manually crafted and tuned probabilistic rule sets, also called grammars, presents a significant bottleneck, diverging from approaches that allow rule learning from examples. In this paper, we propose a novel solution to this challenge by introducing a genetic programming-based optimization framework for learning hierarchical rule sets automatically. Our proposed method ``Markov Senior'' focuses on extracting positional and distance relations from single input samples to construct probabilistic rules to be used by Markov Junior. Using a Kullback-Leibler divergence-based fitness measure, we search for grammars to generate content that is coherent with the given sample. To enhance scalability, we introduce a divide-and-conquer strategy that enables the efficient generation of large-scale content. We validate our approach through experiments in generating image-based content and Super Mario levels, demonstrating its flexibility and effectiveness. In this way, ``Markov Senior'' allows for the wider application of Markov Junior for tasks in which an example may be available, but the design of a generative rule set is infeasible.

View on arXivView PDF

Code Implementations(1)

MIT
100PythonMay 13, 20242 years agoMIT

Similar Papers

Cite this paper

@article{ouz2024markov,
  title  = {Markov Senior -- Learning Markov Junior Grammars to Generate User-specified Content},
  author = {Mehmet Kayra Oğuz and Alexander Dockhorn},
  year   = {2024},
  eprint = {2408.05959},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2408.05959v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2408.05959.svg)](https://codeofpaper.com/paper/2408.05959)

Discussion