In[]:=
MultiwayTuringMachine[{2506,3506},{1,{{},0}},10,"StatesGraph"]
Out[]=
In[]:=
MultiwayTuringMachine[{2506,3506},{1,{{},0}},3,"StatesGraphStructure"]
Out[]=
In[]:=
NDTMStateGraphic[expr_,size_]:=Framed[Style[RulePlot[TuringMachine[2506(*needsasampleofruletype*)],expr,0,MeshAll,FrameFalse,ImageSizesize],Hue[0.62,1,0.48]],BackgroundDirective[Opacity[0.2],Hue[0.62,0.45,0.87]],FrameMargins{{2,2},{0,0}},RoundingRadius0,FrameStyleDirective[Opacity[0.5],Hue[0.62,0.52,0.82]]]
In[]:=
PolygonWeb[edges_,vertices_,dx_]:=Polygon[{#[[1]]-{dx,0,0},#[[1]]+{dx,0,0},#[[2]]+{dx,0,0},#[[2]]-{dx,0,0}}]&/@Map[vertices[[#]]&,edges,{2}]
In[]:=
NDTMMultispacePlot[rules_List,init_,t_]:=Module[{mwg=MultiwayTuringMachine[rules,init,t,"StatesGraphStructure"],vcoords},vcoords=Prepend[#,0]&/@GraphEmbedding[mwg,"LayeredDigraphEmbedding",2];Graphics3D[{{Opacity[.2],PolygonWeb[List@@@EdgeList[IndexGraph[mwg]],vcoords,.1]},MapThread[Inset[NDTMStateGraphic[#2,80],#1,Center]&,{vcoords,ToExpression/@VertexList[mwg]}]}]]
In[]:=
NDTMMultispacePlot[rules_List,init_,t_,{statesz_,ribbonsz_,op_}]:=Module[{mwg=MultiwayTuringMachine[rules,init,t,"StatesGraphStructure"],vcoords},vcoords=Prepend[#,0]&/@GraphEmbedding[mwg,"LayeredDigraphEmbedding",2];Graphics3D[{{Opacity[op],PolygonWeb[List@@@EdgeList[IndexGraph[mwg]],vcoords,ribbonsz]},MapThread[Inset[NDTMStateGraphic[#2,statesz],#1,Center]&,{vcoords,ToExpression/@VertexList[mwg]}]},ViewPoint{-0.7719380792437914`,-2.789077784964647`,1.7536124746448705`},ViewVertical{0.026383158535819524`,0.02623281042321099`,0.9993076446235032`}]]
In[]:=
With[{t=3},NDTMMultispacePlot[{2506,3506},{{1,t+1,0},Table[0,2t+1]},t]]
Out[]=
In[]:=
With[{t=5},NDTMMultispacePlot[{2506,3506},{{1,t+1,0},Table[0,2t+1]},t]]
Out[]=