Skip to content

Instantly share code, notes, and snippets.

@gballet
Last active December 6, 2018 13:20
Show Gist options
  • Save gballet/ff39fd2754e966759571c14d254aeed0 to your computer and use it in GitHub Desktop.
Save gballet/ff39fd2754e966759571c14d254aeed0 to your computer and use it in GitHub Desktop.
Graphviz representation of conflicts
digraph G {
rankdir=LR;
subgraph {
state01 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
>];
state02 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
>];
state03 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
>];
state04 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
>];
}
subgraph states {
state1 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td bgcolor="red"></td>
<td bgcolor="red"></td>
<td bgcolor="blue"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="blue"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="red"></td>
<td bgcolor="blue"></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="red"></td>
<td bgcolor="blue"></td>
</tr>
</table>
>];
state2 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td bgcolor="red"></td>
<td bgcolor="red"></td>
<td bgcolor="blue"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="blue"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="red"></td>
<td bgcolor="blue"></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="red"></td>
<td bgcolor="blue"></td>
</tr>
</table>
>];
state3 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td></td>
<td bgcolor="green"></td>
<td bgcolor="blue"></td>
<td></td>
</tr>
<tr>
<td></td>
<td bgcolor="green"></td>
<td bgcolor="blue"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="green"></td>
<td bgcolor="blue"></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td bgcolor="blue"></td>
</tr>
</table>
>];
state4 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td></td>
<td bgcolor="green"></td>
<td bgcolor="blue"></td>
<td></td>
</tr>
<tr>
<td></td>
<td bgcolor="green"></td>
<td bgcolor="blue"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="green"></td>
<td bgcolor="green"></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td bgcolor="blue"></td>
</tr>
</table>
>];
}
state01 -> state1 [label="tx1+tx3"];
state02 -> state2 [label="tx3+tx1"];
state03 -> state3 [label="tx2+tx3"];
state04 -> state4 [label="tx3+tx2"];
digraph G {
rankdir=LR;
subgraph {
state01 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
>];
state02 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
>];
state03 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
>];
}
subgraph states {
state1 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td bgcolor="red"></td>
<td bgcolor="red"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="red"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="red"></td>
<td></td>
</tr>
</table>
>];
state2 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td></td>
<td bgcolor="green"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td bgcolor="green"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="green"></td>
<td bgcolor="green"></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
>];
state3 [shape=none,margin=0,label=<
<table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<tr>
<td></td>
<td></td>
<td bgcolor="blue"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td bgcolor="blue"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td bgcolor="blue"></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td bgcolor="blue"></td>
</tr>
</table>
>];
}
state01 -> state1 [label="tx1"];
state02 -> state2 [label="tx2"];
state03 -> state3 [label="tx3"];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment