गेम थ्योरी के लिए विज़ुअलाइज़ेशन टूल: गेम ट्री


12

क्रमिक खेल को 'हाथ से खींचने' के कई तरीके हैं। खेल ड्राइंग द्वारा मैं यह मतलब है:

यहाँ छवि विवरण दर्ज करें

खिलाड़ियों के निर्णय बिंदुओं, उपलब्ध कार्यों और अदायगी को प्रदर्शित करना।

क्या कोई ऐसा तरीका है जिससे मैं R या इसी तरह की उच्च स्तरीय प्रोग्रामिंग भाषा में ऐसा कर सकता हूं? सटीक होने के लिए: मैं ज्यामितीय समीकरणों की साजिश नहीं करना चाहता, मैं एक संरचना (खिलाड़ी, अंक, कनेक्शन, अदायगी) को परिभाषित करना चाहता हूं और कार्यक्रम की साजिश है।

मैं वर्तमान में 'इग्राफ' पैकेज ब्राउज़ कर रहा हूं, लेकिन मुझे लेबल करने में कुछ कठिनाई हो रही है इसलिए मैं सोच रहा हूं कि क्या कोई बेहतर तरीका है।


1
यदि आप LaTeX को "समान उच्च स्तरीय प्रोग्रामिंग भाषा" मानते हैं, तो आपको TeX.SE (और वहां से संबंधित अन्य प्रश्न) पर इस प्रश्न के उत्तर मिल सकते हैं ।
इल्मरी करोनें

जवाबों:


6

मैथेमेटिका में एक ग्राफ निर्माण और ड्राइंग क्षमता है।

इसलिए, यदि आपने गणितज्ञ में ग्राफ बनाया है, तो आप इसे अपने चयन की सेटिंग्स का उपयोग करके प्लॉट कर सकते हैं।

Mathematica में, आप ग्राफ बनाने के लिए ट्रीग्राफ का उपयोग कर सकते हैं, और ट्रीप्लॉट इसे प्लॉट करने के तरीके के रूप में। उदाहरण के लिए, निम्नलिखित कोड समन्वय द्वारा लेबल किए गए नोड्स के साथ एक पेड़ बनाता है और आपके द्वारा इच्छित रूप में एक समान प्रारूप है:

TreePlot[{1 -> 4, 1 -> 1, 1 -> 5, 2 -> 4, 3 -> 6, 3 -> 9, 4 -> 8, 
  4 -> 10, 6 -> 7, 8 -> 9}, 
 EdgeRenderingFunction -> ({If[First[#2] === Last[#2], Red, Black], 
     Arrow[#1, .1], 
     Text[#2, LineScaledCoordinate[#1, .5], Background -> White]} &), 
 VertexLabeling -> True]

यहाँ छवि विवरण दर्ज करें

यह भी ध्यान दें कि टेक्स में टिकज जैसे ग्राफिकल पैकेज हैं जिनमें बहुत शक्तिशाली ग्राफ ड्राइंग क्षमता है। टिकज का उपयोग ज्यादातर यूनिक्स वातावरण में किया जाता है, हालांकि, यह डेटा संरचनाओं को संग्रहीत नहीं करेगा या गणितज्ञ की तरह गणना नहीं करेगा। यह विशुद्ध रूप से एक चित्रमय ड्राइंग क्षमता है।

चित्रण के रूप में आपने जिस ग्राफ का उपयोग किया है वह आमतौर पर TeX में उपयोग किया जाने वाला फ़ॉन्ट है, इसलिए इसे संभवतः TikZ या किसी अन्य TeX पैकेज के साथ तैयार किया गया था। यदि आप चाहते हैं कि एक Mathematica समीकरण दिखे, तो आप TradForm फ़ंक्शन का उपयोग कर सकते हैं, या कंप्यूटर मॉडर्न फ़ॉन्ट को स्पष्ट रूप से निर्दिष्ट कर सकते हैं।


8

साथ LaTeX forest

forestLaTeX का पैकेज आपको गेम के पेड़ों को बहुत सरल वाक्य रचना के साथ आकर्षित करने की अनुमति देता है। लाटेक्स प्रस्तावना में एक पूर्व-निर्धारित टेम्पलेट की प्रतिलिपि बनाने के बाद, कोई नेस्टेड []सिंटैक्स का उपयोग करके गेम ट्री का निर्माण कर सकता है , फिर प्रोग्राम नोड प्लेसमेंट / रिक्ति / आदि का ख्याल रखता है।

  • पेशेवरों: customizability (आप किसी भी तरह से खेल के पेड़ की व्याख्या कर सकते हैं) और फ़ॉन्ट / शैली स्थिरता
  • विपक्ष: खेल के पेड़ के तत्वों (खिलाड़ी / कार्रवाई के नाम, अदायगी, जानकारी सेट) को इनपुट करना अभी भी कुछ हद तक मैनुअल है, खासकर अगर पेड़ बड़ा है; और यदि आप पहले से ही TikZ पैकेज से परिचित नहीं हैं, तो कुछ कठिन सीखने की अवस्था

यहाँ forestमैनुअल से एक उदाहरण है (धारा 5.1 में "निर्णय वृक्ष"):

\begin{forest} 
decision tree
[N,plain content
  [I;{p_1=0.5},plain content,elo={yshift=4pt}
    [{5,1};a]
    [II;b,plain content
      [{1,2};m]
      [{2,3};n]
    ]
  ]
  [II;{p_2=0.5},plain content,elo={yshift=4pt}
    [;c
      [{1,0};z]
      [{2,2};t]
    ]
    [;d
      [{3,1};z]
      [{0,0};t]
    ]
  ]{\draw[dashed](!1.anchor)--(!2.anchor) node[pos=0.5,above]{I};}
]
\end{forest}

यहाँ छवि विवरण दर्ज करें

खेल थ्योरी एक्सप्लोरर

खेल के सिद्धांत अन्वेषक लंदन स्कूल आफ इकोनॉमिक्स पर कुछ लोगों द्वारा विकसित की है। यह उपयोगकर्ताओं को मैट्रिक्स-फॉर्म गेम इनपुट करने या GUI के माध्यम से व्यापक फॉर्म गेम बनाने की अनुमति देता है। यह सामान्य और व्यापक रूप के खेल के बीच परिवर्तित करने में भी सक्षम लगता है। इसके अतिरिक्त, सॉफ्टवेयर एक सॉल्वर के साथ आता है जो इनपुट गेम के नैश संतुलन के लिए दिखता है।

  • पेशेवरों: जीयूआई; solver; स्थानीय स्थापना के लिए कोई ज़रूरत नहीं है; (सीमित) अनुकूलन
  • विपक्ष: एनोटेशन के लिए कोई समर्थन नहीं; बाकी दस्तावेज़ के साथ फ़ॉन्ट / शैली की असंगति

स्क्रीनशॉट: यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


4

यदि आप LaTeX का उपयोग करते हैं, तो आप istgameपैकेज के साथ गेम ट्री भी आकर्षित कर सकते हैं , जो TikZ पर आधारित है।

मैनुअल में पूर्ण कोड सहित कई उदाहरण हैं:

  • किसी भी दिशा में खेल के पेड़: नीचे की ओर, ऊपर की ओर, पूर्व की ओर, -45 डिग्री, आदि।
  • खिलाड़ियों, एक्शन लेबल और अदायगी के लेबल लगाना
  • निर्णय नोड्स, मौका नोड्स, टर्मिनल नोड्स
  • विभिन्न जानकारी सेट
  • शाखाओं पर विभिन्न तीर (पिछड़े प्रेरण)
  • क्रियाओं के विभिन्न महाद्वीप
  • subgames
  • खेल का संकेत

istgameपैकेज के साथ , आप खेल के पेड़ खींच सकते हैं जैसे आप उन्हें हाथ से खींचते हैं।

यहाँ छवि विवरण दर्ज करें

\documentclass{standalone}

\usepackage{istgame}

\begin{document}

\begin{istgame}
\xtdistance{15mm}{40mm}
\istroot(0){1}
  \istb{a_1}[al]
  \istb{a_2}[ar]
  \endist
\xtdistance{15mm}{20mm}
\istroot(1)(0-1){2}
  \istb{b_1}[al]{5,5}
  \istb{b_2}[ar]{1,5}
  \endist
\istroot(1)(0-2){2}
  \istb{b_3}[al]{3,6}
  \istb{b_4}[ar]{2,2}
  \endist
\end{istgame}

\end{document}

यह बहुत अच्छा है, धन्यवाद!
गिस्कर्ड

1

यहाँ छवि विवरण दर्ज करें

मैंने tikz पैकेज के साथ LaTeX का उपयोग किया है। इस सेंटपेड गेम को बनाने के लिए निम्न कोड का उपयोग किया जाता है:

\documentclass{article}

\usepackage{tikz}
\usepackage{bodegraph}
\usepackage[printwatermark]{xwatermark}


\begin{document}


\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=1.3cm,
  thick,main node/.style={circle,fill=blue!20,draw,font=\sffamily\normalsize\bfseries}]

  \node[main node] (1) {1};
  \node[main node] (2) [right of=1] {2};
  \node[main node] (3) [right of=2] {1};
  \node[main node] (4) [right of=3] {2};
  \node[main node] (5) [right of=4] {1};
  \node[main node] (6) [right of=5] {2};
    \node (7) [below of=1] {$(1,0)$};
       \node (8) [below of=2] {(0,2)};
    \node (9) [below of=3] {$(3,1)$};
    \node (10) [below of=4] {$(2,4)$};
  \node (11) [below of=5] {$(5,3)$};
    \node (12) [below of=6] {$(4,6)$};
      \node (13) [right of=6] {$(7,5)$};
       \path[every node/.style={font=\sffamily\small\scshape}]
   (1) edge node [above] {In} (2)
   edge node [left] {Out} (7)
        (2) edge node [above] {In} (3)
   edge node [left] {Out} (8)
      (3) edge node [above] {In} (4)
   edge node [left] {Out} (9)
      (4) edge node [above] {In} (5)
   edge node [left] {Out} (10)
      (5) edge node [above] {In} (6)
   edge node [left] {Out} (11)
      (6) edge node [above] {In} (13)
   edge node [left] {Out} (12);
\end{tikzpicture} 
\end{document}

यहाँ एक और उदाहरण है:

यहाँ छवि विवरण दर्ज करें

उपरोक्त खेल के लिए कोड है:

\documentclass{article}

\usepackage{tikz}
\usepackage{bodegraph}
\usepackage[printwatermark]{xwatermark}


\begin{document}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=3cm,
  thick,main node/.style={circle,fill=blue!20,draw,font=\sffamily\Large\bfseries}]

  \node[main node] (1) {1};
  \node[main node] (2) [below right of=1] {2};
  \node[main node] (3) [below left of=2] {1};
  \node (4) [below left of=1] {$(1,1)$};
   \node (5) [below right of=2] {(0,2)};
    \node (6) [below left of=3] {$(10,0)$};
    \node (7) [below right of=3] {$(5,5)$};

 \path[every node/.style={font=\sffamily\small\scshape}]
   (1) edge node [right] {Play} (2)
   edge node [left] {Not Play} (4)
      (2) edge node [right] {Distrust} (5)
   edge node [left] {Trust} (3)
      (3) edge node [left] {Steal} (6)
   edge node [right] {Share} (7);
\end{tikzpicture}
\end{document}

1

सिर्फ अपनी सुविधा के लिए

यदि आप istgameपैकेज में रुचि रखते हैं , तो आप ऐसा कर सकते हैं (अमित के उदाहरणों को आकर्षित करने के लिए):

सेंटीपीड गेम के लिए:

यहाँ छवि विवरण दर्ज करें

\documentclass{standalone}

\usepackage{istgame}

\begin{document}

\begin{istgame}
%% for arrows (optional)
\xtShowArrows
\xtShowEndPoints[ellipse node]
\xtHideTerminalNodes
%% some more optional settings
\setistEllipseNodeStyle{15pt}[blue!20] % node style
\setistmathTF*001<textbf>{textsc}      % input mode changer
\setistgrowdirection{-45}              % direction
%% tree
\xtdistance{10mm}{20mm}
\istrooto(1){1}
  \istbt{Out}[l]{(1,0)}[b] \istb{In}[a]            \endist
\istrooto(2)(1-2){2}
  \istbt{Out}[l]{(0,2)}[b] \istb{In}[a]            \endist
\istrooto(3)(2-2){1}
  \istbt{Out}[l]{(3,1)}[b] \istb{In}[a]            \endist
\istrooto(4)(3-2){2}
  \istbt{Out}[l]{(2,4)}[b] \istb{In}[a]            \endist
\istrooto(5)(4-2){1}
  \istbt{Out}[l]{(5,3)}[b] \istb{In}[a]            \endist
\istrooto(6)(5-2){2}
  \istbt{Out}[l]{(4,6)}[b] \istbt{In}[a]{(7,5)}[r] \endist
\end{istgame}

\end{document}

पेड़ की संरचना अपने आप में सरल है।

यहाँ छवि विवरण दर्ज करें

\documentclass{standalone}

\usepackage{istgame}

\begin{document}

\begin{istgame}[font=\scriptsize]
\setistmathTF*001{textsc}  % input mode changer
\setistgrowdirection{-45}  % direction
%% tree
\xtdistance{10mm}{20mm}
\istroot(1){1}
  \istb{Out}[l]{(1,0)}[b] \istb{In}[a]           \endist
\istroot(2)(1-2){2}
  \istb{Out}[l]{(0,2)}[b] \istb{In}[a]           \endist
\istroot(3)(2-2){1}
  \istb{Out}[l]{(3,1)}[b] \istb{In}[a]           \endist
\istroot(4)(3-2){2}
  \istb{Out}[l]{(2,4)}[b] \istb{In}[a]           \endist
\istroot(5)(4-2){1}
  \istb{Out}[l]{(5,3)}[b] \istb{In}[a]           \endist
\istroot(6)(5-2){2}
  \istb{Out}[l]{(4,6)}[b] \istb{In}[a]{(7,5)}[r] \endist
\end{istgame}

\end{document}


एक अन्य उदाहरण के लिए:

यहाँ छवि विवरण दर्ज करें

\documentclass{standalone}

\usepackage{istgame}

\begin{document}

\begin{istgame}[font=\scriptsize]
%% for arrows (optional)
\xtShowArrows
\xtShowEndPoints[ellipse node]
\xtHideTerminalNodes
%% some more optional settings
\setistEllipseNodeStyle{15pt}[blue!20] % node style
\setistmathTF*001<textbf>{textsc} % input mode changer
%% tree
\xtdistance{15mm}{30mm}
\istrooto(1){1}
  \istbt{Not Play}[al]{(1,1)}
  \istb{Play}[ar]
  \endist
\istrooto(2)(1-2){2}
  \istb{Trust}[al]
  \istbt{Distrust}[ar]{(0,2)}
  \endist
\istrooto(3)(2-1){1}
  \istbt{Steal}[al]{(10,10)}
  \istbt{Share}[ar]{(5,5)}
  \endist
\end{istgame}

\end{document}

फिर से, पेड़ की संरचना सरल है।

यहाँ छवि विवरण दर्ज करें

\documentclass{standalone}

\usepackage{istgame}

\begin{document}

\begin{istgame}[font=\scriptsize]
\setistmathTF*001{textsc}        % input mode changer
%% tree
\xtdistance{15mm}{30mm}
\istroot(1){1}
  \istb{Not Play}[al]{(1,1)}
  \istb{Play}[ar]
  \endist
\istroot(2)(1-2){2}
  \istb{Trust}[al]
  \istb{Distrust}[ar]{(0,2)}
  \endist
\istroot(3)(2-1){1}
  \istb{Steal}[al]{(10,10)}
  \istb{Share}[ar]{(5,5)}
  \endist
\end{istgame}

\end{document}

(जोड़ा) यदि आप चाहते हैं कि वृक्ष पूर्वमुखी हो :

यहाँ छवि विवरण दर्ज करें

\documentclass{standalone}

\usepackage{istgame}

\begin{document}

\begin{istgame}[font=\scriptsize]
\setistmathTF*001{textsc}        % input mode changer
\setistgrowdirection'{east}      % direction
%% tree
\xtdistance{15mm}{30mm}
\istroot(1)<180>{1}
  \istb{Not Play}[al]{(1,1)}
  \istb{Play}[bl]
  \endist
\istroot(2)(1-2)<180>{2}
  \istb{Trust}[al]
  \istb{Distrust}[bl]{(0,2)}
  \endist
\istroot(3)(2-1)<180>{1}
  \istb{Steal}[al]{(10,10)}
  \istb{Share}[bl]{(5,5)}
  \endist
\end{istgame}

\end{document}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.