<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Learning Constrained Graph Layout for Content Generation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Seth Cooper</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Eden Balema</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dickinson College</institution>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Northeastern University</institution>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Graphs are a common format for procedurally generated content in games. However, many graph-based approaches require grammars to be manually authored or additional processing to add spatial layout information. In this work, we extend an existing system for constrained graph generation that learns from examples. The main extension is adding graph layout information directly into the graph learning and generation constraint problem by incorporating spatial transforms. We demonstrate the approach in several level generation applications and potential use in citizen science games.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;graphs</kwd>
        <kwd>procedural content generation</kwd>
        <kwd>constraints</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Background</title>
      <p>
        In this work, we extend the existing Sturgeon-GRAPH
system [
        <xref ref-type="bibr" rid="ref14">15</xref>
        ] for constrained graph generation.
SturgeonGraphs are one of many representations for procedurally GRAPH learns local patterns from example graphs and
generated content [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] in games. When using graphs, uses them to generate new graphs; however, prior to
grammars are a popular technique [
        <xref ref-type="bibr" rid="ref2 ref3 ref4 ref5 ref6">2, 3, 4, 5, 6</xref>
        ]. However, this work, it did not use spatial information, only
learnmany graph-based approaches require these grammars ing connectivity. Here, we incorporate relative spatial
to be manually authored or additional processing to add relationships between nodes in the patterns learned by
spatial layout information. Dormans’s work [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], for ex- Sturgeon-GRAPH. These spatial relationships are then
ample, uses a two-pass system of grammars, one that incorporated into the graph generation constraint
probifrst generates an abstract “mission” graph, which is then lem. Thus, the solution to the problem generates both
used by a shape grammar to create the “space” for the the graph connectivity structure and the spatial layout of
level. the nodes. We also use some other extensions in support
      </p>
      <p>
        A few approaches have learned graph generation from of this goal, including an alternate graph connectivity
examples, which can be considered a form of Procedural constraint and pattern definitions. We demonstrate the
Content Generation via Machine Learning (PCGML) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. approach in level generation and possible use as a tool
For example, Londoño and Missura’s [9] work used ex- in molecular citizen science games.
ample Super Mario Bros. levels to learn graph patterns
and grammars. The approach of Hauck and Aranha [10]
learns a grammar for generating Super Mario Bros. levels, 2. Overview
but is highly tailored to that game’s tile grid structure.
      </p>
      <p>
        Merrell and Manocha’s [11] work on continuous model
synthesis can also be considered learning to generate
graphs with layout from examples, though relies on
constructing arrays of intersecting lines or planes and using
these for node and edge placement. Merrell’s [
        <xref ref-type="bibr" rid="ref11">12</xref>
        ] more
recent work can also be considered learning graph layout
from examples, and uses grammars.
      </p>
      <p>
        In terms of graph layout, a wide variety of algorithms
have been developed, many incorporated into packages
such as GraphViz [
        <xref ref-type="bibr" rid="ref12">13</xref>
        ] and Tulip [
        <xref ref-type="bibr" rid="ref13">14</xref>
        ]. These generally
take an existing graph as input, rather than generating a
graph and layout simultaneously.
      </p>
      <p>
        This work extends the existing Sturgeon-GRAPH
system [
        <xref ref-type="bibr" rid="ref14">15</xref>
        ] for constrained graph generation from
examples. That system, built on the Sturgeon constraint-based
PCG system [
        <xref ref-type="bibr" rid="ref15">16</xref>
        ], first extracts a graph description,
consisting of distinct local patterns of labelled nodes and
edges, from example graphs. This graph description is
then used to set up a system of Boolean constraints, the
solution of which is a graph in which all patterns exist
in the example graphs. For eficiency, the system only
considers a subset of edges as potential edges for the
solution, rather than all possible edges between every pair
of nodes (e.g. band-n edges only consider edges between
nodes from id  up to id  + ).
      </p>
      <p>AIIDE Workshop on Experimental Artificial Intelligence in Games, Previously, Sturgeon-GRAPH used a constraint
probOctober 08, 2023, University of Utah, Utah, USA lem that handled graph generation, where layout was a
b$alesem.caoeo@pderic@kinnosrotnh.eeadsute(rEn..eBdaule(mS.aC)ooper); separate post-processing step. In this work, we extend
0000-0003-4504-0877 (S. Cooper) the Sturgeon-GRAPH system to incorporate layout
in© 2023 Copyright for this paper by its authors. Use permitted under Creative Commons License formation into the same constraint problem along with
CPWrEooUrckReshdoinpgs IhStpN:/c1e6u1r3-w-0s.o7r3g ACttEribUutRion W4.0oInrtekrnsahtioonpal (PCCroBYce4.0e).dings (CEUR-WS.org)
graph generation. This way, graph generation and layout bottom row implicitly (0, 0, 1). This function is used to
are solved in a single problem. This is done by including allocate a transform variable for each node.
constraints on relative spatial transforms, with support GetVarPosXform() — Get the position associated with
for two types of 2D transformations (discussed below). the given transform variable . In our implementation, 
For the use of relative transformations, the proposed is just the two variables, while  ℛ is the translation part
approach works only with directed dtree or dag graph of the matrix. This function is used to get the positions
types. of the nodes out of the solution.</p>
      <p>CnstrImpliesXform(, 0, 1, , ) — Add a
2.1. Graph Description Learning constraint that if the Boolean variable  is true, then
transform variable 1 is constrained to be the result of
When learning the graph description, before extracting the constant  applied to transform variable 0 (in the
laorceaaldpdaettdertnosthfreom(ditrheectgerda)pehd,greeslaotifvtehsepgartiaaplhtr—atnhseforremlas- cmauseltiopflica,titohnis). isIf atdhdeitcioonns,tianntthecaseofis fℛal,sem, athtreinx
tive transform from the edge source to destination. This only the positional part of 1 is constrained to be a small
is done by starting at the root of the graph and proceed- distance around the transformed location. This function
ing breadth-first through the graph, adding the relative is used to set up constraints such that if an edge is present
transform from the source to the destination to each edge. in the solution, its relative transform is applied from its</p>
      <p>The two types of 2D transforms currently supported source to its destination.
are translation-only ( ) and translation-rotation ( ℛ).</p>
      <p>For  transforms, the relative transform on an edge is CnstrIdentityDistXform(, , ) — Add
just the relative x and y delta of the nodes. For  ℛ constraints that the positional parts of the transform
varitransforms, relative transforms are stored in the graph ables , corresponding to the Boolean variables 
description as polar coordinates: a magnitude, and rela- (which are variables for missing nodes) that are false, are
tive angle from the incoming primary edge. As dags can at least  distance apart. Also, add a constraint
have nodes with more than one incoming edge, when that the first transform variable in  is the identity
transusing  ℛ one of the incoming edges (from the node with form and the first variable in  is false. This function
lowest ID) is set as the primary incoming edge and used is used to initialize basic positional constraints on the
for relative transforms. transforms for nodes that are present in the solution.</p>
      <p>After adding transform information to edges, pattern
learning from the example graphs proceeds much as be- 2.3. Additional Extensions
fore, except that the transform information is also
considered when finding unique patterns.</p>
      <p>In support of this work, we added a few other extensions
to Sturgeon-GRAPH.</p>
      <p>
        First, we added support for diferent pattern definitions.
2.2. Constrained Graph Generation In the original Sturgeon-GRAPH, a pattern consists of a
The relative transform information along edges is incor- key node, the edges connected to that node, and the nodes
porated into the constraint problem to solve for global connected to those edges, i.e. immediate neighbors
(edgetransforms for each of the nodes. In order to incorpo- node patterns). In this work we added a pattern definition
rate spatial transforms into the constraint problem, Stur- that only includes the key node and its connected edges,
geon’s solver API needed to be extended to support real- ignoring the labels of the connected nodes (edge-only
valued variables and some constraints on them. The patterns).
existing API only supported Boolean variables; this al- We also added a new type of edges to consider,
lowed for a wide variety of low-level solvers to be used, stripe-n1,n2,...,nm, which, for a node with id , considers
including those that do not support real-valued variables. only edges to nodes with ids  + 1,  + 2, ...,  + .
Thus, the following extensions to the API were only im- We also added an alternative method for
constrainplemented in the low-level Z3 solver [
        <xref ref-type="bibr" rid="ref16">17</xref>
        ]. Also here for ing graphs to be connected (i.e., not split into multiple
simplicity, we use the ∞ distance (e.g. square). The graphs). The previous method added a single
“reachabilfollowing functions were added to the solver API: ity” variable for each node, started from a single reachable
root node, and followed directed edges out to make sure
MakeVarXform() — Create a new transform vari- all nodes in the graph were reachable from the root node.
able of type  ( or  ℛ). This may correspond to The use of directed edges prevented independent cycles
more than one variable in the underlying low-level solver. from being found as connected but also limited generated
In our implementation, type  uses two real variables, graphs to a single root node. In this work, we added an
and type  ℛ uses six real variables representing the top approach where connectivity is computed using
“reachtwo rows of a 3 × 3 homogeneous transform matrix, with ability layers”. There are  layers, and each node has
      </p>
      <p>X</p>
      <p>X
S
X
X
X
X
X</p>
      <p>X
X
&gt;
]</p>
      <p>X
X
X
a Boolean reachability variable in each layer. In layer 0,
exactly 1 node is reachable. If a node is not reachable
in layer  − 1, and not connected (either as source or
destination) to a reachable node in layer  − 1, it is not
reachable in layer . All nodes must either be reachable
by the final layer, or missing from the generated graph.</p>
      <p>Finally, we added support for unique undirected cycle
labeling. The aim of this is for cycles (or, what would
be cycles in the undirected version of the graphs) to be
learned as complete units. To accomplish this, we find
the cycle basis of the undirected graphs and augment the
label of each edge in a basis with the index of its basis
and index within its basis.</p>
    </sec>
    <sec id="sec-2">
      <title>3. Applications</title>
      <p>Here we describe a few applications of the system. For
each application, we generated ten graphs, to get timing
information and select samples for figures.</p>
      <p>
        mario: This application is based on a version of
Super Mario Bros. 1-1 [
        <xref ref-type="bibr" rid="ref17">18</xref>
        ] from the VGLC [
        <xref ref-type="bibr" rid="ref18">19</xref>
        ], converted
into a grid graph. Node labels are the tile text from the
level. This is similar to the example application in
previous Sturgeon-GRAPH work [
        <xref ref-type="bibr" rid="ref14">15</xref>
        ], except it considers
stripe-1,8 edges and learns the relative node positions
from the example, using them in the graph generation
process. Thus the grid layout can be handled without the
selected examples
specialized grid approach used previously.
      </p>
      <p>This application used  transforms with edge-node
patterns, and generated graphs between 60–80 nodes
with stripe-1,8 edges and at least one of each node label. and at most one e and g node label. The example graph
Sample generated graphs are shown in Figure 1. Average and some sample generated graphs are shown in Figure 2.
generation time was 52.0s (SD=17.3s). Average generation time was 35.7s (SD=40.2s).</p>
      <p>
        Notably, the graphs are not required to be rectangular. fract: Based on the math educational game,
RefracThis could present interesting challenges or opportunities tion. In the game, lasers with numerical values come out
for gameplay. of sources. Lasers can be manipulated by various pieces
dungeon: This application is a graph with branches such as splitters, which split lasers into fractional parts,
and turns, representing a simple dungeon game. It is or benders, which redirect lasers. The goal is to get lasers
based on a manually-constructed example level, with with specific values to spaceships to power them up. The
nodes labeled for the type of room represented: en- game has been used for constraint-based level generation
trance (e), goal (g), branch (b), right turn (r), left turn before [
        <xref ref-type="bibr" rid="ref19">20</xref>
        ].
(l), straight hallway (h), and dead end (d). In this application, we manually created several small
      </p>
      <p>This application used  ℛ transforms with edge-only example graphs demonstrating how pieces work. These
patterns, and generated graphs between 10–15 nodes included labeled nodes for sources (□ &gt;), spaceships (&gt;□ ),
with band-3 edges and at least one of each node label, splitters (s), benders (b), and mergers (m); we also
in</p>
    </sec>
    <sec id="sec-3">
      <title>Acnowledgements</title>
      <p>Part of this material is based upon work supported by
the National Science Foundation under under Grant No.
1950697, and the Rosetta Commons REU Program.
cluded nodes for spaces with lasers repeating (r) and
crossing (x) so that other pieces would not be placed in
their way. Edge labels represent the fractional value of
the laser.</p>
      <p>This application used  transforms with edge-only
patterns. To increase variety, the example graphs were
rotated 90, 180, and 270 degrees. Generated graphs
between 10–15 nodes with band-4 edges and at least one m
and s node labels and two 1&gt; node labels. Sample
example and generated graphs are shown in Figure 3. Average
generation time was 15.2s (SD=1.1s).</p>
      <p>
        mol: Based on small molecule structures. Recently
deep learning methods have been proposed for
generating small molecules, for example using SMILES string
representations [
        <xref ref-type="bibr" rid="ref20">21</xref>
        ] or directly on graphs [
        <xref ref-type="bibr" rid="ref21 ref22">22, 23</xref>
        ];
however, these learning approaches often use large training
datasets. In this application, seven 2D small molecule
PDBs from SMPDB [
        <xref ref-type="bibr" rid="ref23">24</xref>
        ] were converted to graph format.
Node labels were atomic types. Other information, such
as bond order (i.e. single/double/triple), was not used,
but could potentially be incorporated into labels in the
future. This application shows the flexibility of the
approach, and we imagine it might be useful as a player
tool for molecular design in citizen science games such
as Foldit [
        <xref ref-type="bibr" rid="ref24">25</xref>
        ].
      </p>
      <p>This application used  ℛ transforms with edge-node
patterns. Undirected cycle labeling was used.
Generated graphs were between 5–10 nodes with band-5 edges.
We generated graphs that both forbid and required
undirected cycles. Sample examples and generated graphs
are shown in Figure 4. Average generation time was 5.3s
(SD=3.7s) with cycles forbidden and 211.8s (SD=149.5s)
with cycles required.</p>
      <p>Given the small size and small number of undirected
cycle examples, there was little variety in the graphs
requiring undirected cycles, often reproducing ringed
examples or very similar. They also took substantially
longer to generate.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>N.</given-names>
            <surname>Shaker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Togelius</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Nelson</surname>
          </string-name>
          , Procedural Content Generation in Games, Springer,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Font</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Izquierdo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Manrique</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Togelius</surname>
          </string-name>
          ,
          <article-title>Constrained level generation through grammarbased evolutionary algorithms</article-title>
          , in: G. Squillero, P. Burelli (Eds.),
          <source>Applications of Evolutionary Computation, Lecture Notes in Computer Science</source>
          , Springer International Publishing, Cham,
          <year>2016</year>
          , pp.
          <fpage>558</fpage>
          -
          <lpage>573</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Valls-Vargas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ontañón</surname>
          </string-name>
          ,
          <article-title>Graph grammarbased controllable generation of puzzles for a learning game about parallel programming</article-title>
          ,
          <source>in: Proceedings of the 12th International Conference on the Foundations of Digital Games</source>
          ,
          <year>2017</year>
          , pp.
          <volume>7</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          :
          <fpage>10</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>R. van Rozen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Heijn</surname>
          </string-name>
          ,
          <article-title>Measuring quality of grammars for procedural level generation</article-title>
          ,
          <source>in: Proceedings of the 13th International Conference on the Foundations of Digital Games</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>C.</given-names>
            <surname>Jemmali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ithier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cooper</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. S.</given-names>
            <surname>El-Nasr</surname>
          </string-name>
          ,
          <article-title>Grammar based modular level generator for a programming puzzle game</article-title>
          ,
          <source>in: Proceedings of the Experimental AI in Games Workshop</source>
          ,
          <year>2020</year>
          , p.
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Madkour</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Marsella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Harteveld</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Seif ElNasr</surname>
          </string-name>
          , J.-W. van de Meent,
          <article-title>Guiding generative graph grammars of dungeon mission graphs via examples</article-title>
          ,
          <source>in: Experimental AI in Games Workshop</source>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Dormans</surname>
          </string-name>
          ,
          <article-title>Adventures in level design: Generating missions and spaces for action adventure games</article-title>
          ,
          <source>in: Proceedings of the 2010 Workshop on Procedural Content Generation in Games</source>
          ,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Summerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Snodgrass</surname>
          </string-name>
          , M. Guzdial,
          <volume>4</volume>
          .
          <string-name>
            <surname>Conclusion</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Holmgård</surname>
            ,
            <given-names>A. K.</given-names>
          </string-name>
          <string-name>
            <surname>Hoover</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Isaksen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Nealen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Togelius</surname>
          </string-name>
          ,
          <article-title>Procedural Content Generation via In this work, we present an approach to learning con- Machine Learning (PCGML), IEEE Transactions on strained graph layouts from example graphs</article-title>
          .
          <source>This was ap- Games</source>
          <volume>10</volume>
          (
          <year>2018</year>
          )
          <fpage>257</fpage>
          -
          <lpage>270</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <article-title>proached by adding transform information to the graph [9</article-title>
          ]
          <string-name>
            <given-names>S.</given-names>
            <surname>Londoño</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Missura</surname>
          </string-name>
          ,
          <article-title>Graph grammars for Super description and constraints using the Sturgeon-GRAPH Mario Bros levels</article-title>
          ,
          <source>in: Sixth FDG Workshop on system [15]. Procedural Content Generation</source>
          ,
          <year>2015</year>
          .
          <article-title>In the future, we are interested in exploring other con-</article-title>
          [10]
          <string-name>
            <given-names>E.</given-names>
            <surname>Hauck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Aranha</surname>
          </string-name>
          ,
          <article-title>Automatic generation of Sustraints on spatial positions, such as nodes being at cer- per Mario levels via graph grammars, in: 2020 IEEE tain locations, as well as expanding scalability to larger Conference on Games (CoG</article-title>
          ),
          <year>2020</year>
          , pp.
          <fpage>297</fpage>
          -
          <lpage>304</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <article-title>graphs and 3D transformations</article-title>
          . We would also like to [11]
          <string-name>
            <given-names>P.</given-names>
            <surname>Merrell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Manocha</surname>
          </string-name>
          ,
          <article-title>Continuous model synmore thoroughly evaluate the generator, such as with an thesis</article-title>
          ,
          <source>ACM Transactions on Graphics</source>
          <volume>27</volume>
          (
          <year>2008</year>
          )
          <article-title>expressive range [26] or playability analysis</article-title>
          .
          <volume>158</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>158</lpage>
          :
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Merrell</surname>
          </string-name>
          ,
          <article-title>Example-based procedural modeling using graph grammars</article-title>
          ,
          <source>ACM Transactions on Graphics</source>
          <volume>42</volume>
          (
          <year>2023</year>
          )
          <volume>60</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>60</lpage>
          :
          <fpage>16</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ellson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. R.</given-names>
            <surname>Gansner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Koutsofios</surname>
          </string-name>
          , S. C. North, G. Woodhull,
          <article-title>Graphviz and Dynagraph - Static and Dynamic Graph Drawing Tools</article-title>
          , in: M.
          <string-name>
            <surname>Jünger</surname>
          </string-name>
          , P. Mutzel (Eds.),
          <source>Graph Drawing Software, Mathematics and Visualization</source>
          ,
          <year>2004</year>
          , pp.
          <fpage>127</fpage>
          -
          <lpage>148</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D.</given-names>
            <surname>Auber</surname>
          </string-name>
          ,
          <string-name>
            <surname>Tulip - A Huge Graph Visualization Framework</surname>
          </string-name>
          , in: M.
          <string-name>
            <surname>Jünger</surname>
          </string-name>
          , P. Mutzel (Eds.),
          <source>Graph Drawing Software, Mathematics and Visualization</source>
          , Springer, Berlin, Heidelberg,
          <year>2004</year>
          , pp.
          <fpage>105</fpage>
          -
          <lpage>126</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S.</given-names>
            <surname>Cooper</surname>
          </string-name>
          , Sturgeon-GRAPH:
          <article-title>Constrained Graph Generation from Examples</article-title>
          ,
          <source>in: Proceedings of the 18th International Conference on the Foundations of Digital Games</source>
          ,
          <year>2023</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>9</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Cooper</surname>
          </string-name>
          , Sturgeon:
          <article-title>Tile-based procedural level generation via learned and designed constraints</article-title>
          ,
          <source>Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment</source>
          <volume>18</volume>
          (
          <year>2022</year>
          )
          <fpage>26</fpage>
          -
          <lpage>36</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [17]
          <string-name>
            <surname>L. de Moura</surname>
          </string-name>
          , N. Bjørner,
          <article-title>Z3: An eficient SMT solver</article-title>
          , in: C. R. Ramakrishnan, J. Rehof (Eds.),
          <source>Tools and Algorithms for the Construction and Analysis of Systems, Lecture Notes in Computer Science</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>337</fpage>
          -
          <lpage>340</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Nintendo</surname>
          </string-name>
          , Super Mario Bros.,
          <year>1985</year>
          . Game [NES].
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Summerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Snodgrass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ontañón</surname>
          </string-name>
          ,
          <string-name>
            <surname>The</surname>
            <given-names>VGLC</given-names>
          </string-name>
          :
          <article-title>The Video Game Level Corpus</article-title>
          , arXiv:
          <fpage>1606</fpage>
          .07487 [cs] (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [20]
          <string-name>
            <surname>A. M. Smith</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Andersen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Mateas</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Popović</surname>
          </string-name>
          ,
          <article-title>A case study of expressively constrainable level design automation tools for a puzzle game</article-title>
          ,
          <source>in: Proceedings of the International Conference on the Foundations of Digital Games</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>156</fpage>
          -
          <lpage>163</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>E.</given-names>
            <surname>Mazuz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Shtar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Shapira</surname>
          </string-name>
          , L. Rokach,
          <article-title>Molecule generation using transformers and policy gradient reinforcement learning</article-title>
          ,
          <source>Scientific Reports</source>
          <volume>13</volume>
          (
          <year>2023</year>
          )
          <fpage>8799</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>Q.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Allamanis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brockschmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Gaunt</surname>
          </string-name>
          ,
          <article-title>Constrained graph variational autoencoders for molecule design</article-title>
          ,
          <source>in: Proceedings of the 32nd International Conference on Neural Information Processing Systems</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>7806</fpage>
          -
          <lpage>7815</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>O.</given-names>
            <surname>Mahmood</surname>
          </string-name>
          , E. Mansimov,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bonneau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Cho</surname>
          </string-name>
          ,
          <article-title>Masked graph modeling for molecule generation</article-title>
          ,
          <source>Nature Communications</source>
          <volume>12</volume>
          (
          <year>2021</year>
          )
          <fpage>3156</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>A.</given-names>
            <surname>Frolkis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Knox</surname>
          </string-name>
          , E. Lim,
          <string-name>
            <given-names>T.</given-names>
            <surname>Jewison</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Law</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. D.</given-names>
            <surname>Hau</surname>
          </string-name>
          , P. Liu,
          <string-name>
            <given-names>B.</given-names>
            <surname>Gautam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ly</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. C.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Xia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Shrivastava</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Wishart</surname>
          </string-name>
          ,
          <string-name>
            <surname>SMPDB</surname>
          </string-name>
          :
          <article-title>The Small Molecule Pathway Database</article-title>
          ,
          <source>Nucleic Acids Research</source>
          <volume>38</volume>
          (
          <year>2010</year>
          )
          <fpage>D480</fpage>
          -
          <lpage>487</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>B.</given-names>
            <surname>Koepnick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Flatten</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Husain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ford</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.- A.</given-names>
            <surname>Silva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Bick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bauer</surname>
          </string-name>
          , G. Liu,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ishida</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Boykov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. D.</given-names>
            <surname>Estep</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kleinfelter</surname>
          </string-name>
          , T. NørgårdSolano, L.
          <string-name>
            <surname>Wei</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Players</surname>
            ,
            <given-names>G. T.</given-names>
          </string-name>
          <string-name>
            <surname>Montelione</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>DiMaio</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Popović</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Khatib</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Cooper</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Baker</surname>
          </string-name>
          ,
          <article-title>De novo protein design by citizen scientists</article-title>
          ,
          <source>Nature</source>
          <volume>570</volume>
          (
          <year>2019</year>
          )
          <fpage>390</fpage>
          -
          <lpage>394</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>G.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whitehead</surname>
          </string-name>
          ,
          <article-title>Analyzing the expressive range of a level generator</article-title>
          ,
          <source>in: Proceedings of the 2010 Workshop on Procedural Content Generation in Games</source>
          ,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>