2017-12-28 4 views
0

나는 NetLogo에서 유향 그래프를로드하기 위해 nw : load-graphml "filename.graphml"을 사용했지만, 무향 그래프를로드하고 있습니다. NetLogo에서 directed graphml 파일을로드하는 다른 명령이 있습니까?NetLogo에서 directed graphML 파일을로드하는 방법은 무엇입니까?

다음은 GraphML 파일을로드하는 데 사용한 코드입니다. 나는 아래 주어진로드 그래프와로드 그래프 1 절차를 모두 시도했다.

은 또한 예를 들어, graphml 파일에 링크 = "true"로 속성을 직접 추가 한 : 가장자리 감독 = "true"로 ID = "2"소스 = "14341"대상 = "8312" 을하지만, 여전히 로드 된 네트워크는 방향이 지정되지 않습니다.

to load-graph 
     let filename user-file 
     if (filename != false) [ 
     nw:load-graphml filename [ 
      set shape "circle" 
      set size 1 
     ] 
     nw:set-context turtles links 
     ] 
    end 

    to load-graph1 
     nw:load-graphml "myfile.graphml" 
    end 

GraphML 파일 :

<?xml version="1.0" encoding="UTF-8"?><graphml xmlns="http://graphml.graphdrawing.org/xmlns"> 
    <key attr.name="label" attr.type="string" for="node" id="label"/> 
    <key attr.name="Edge Label" attr.type="string" for="edge" id="edgelabel"/> 
    <key attr.name="weight" attr.type="double" for="edge" id="weight"/> 
    <key attr.name="r" attr.type="int" for="node" id="r"/> 
    <key attr.name="g" attr.type="int" for="node" id="g"/> 
    <key attr.name="b" attr.type="int" for="node" id="b"/> 
    <key attr.name="x" attr.type="float" for="node" id="x"/> 
    <key attr.name="y" attr.type="float" for="node" id="y"/> 
    <key attr.name="size" attr.type="float" for="node" id="size"/> 
    <graph edgedefault="directed"> 
    <node id="16"> 
    <data key="label">v16</data> 
    <data key="size">100.0</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">4.917384E-7</data> 
    <data key="y">48.0</data> 
    </node> 
    <node id="15"> 
    <data key="label">v15</data> 
    <data key="size">97.648</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">14.832003</data> 
    <data key="y">45.648003</data> 
    </node> 
    <node id="17"> 
    <data key="label">v17</data> 
    <data key="size">97.648</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">-14.832001</data> 
    <data key="y">45.648003</data> 
    </node> 
    <node id="14"> 
    <data key="label">v14</data> 
    <data key="size">90.832</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">28.211998</data> 
    <data key="y">38.832</data> 
    </node> 
    <node id="18"> 
    <data key="label">v18</data> 
    <data key="size">90.832</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">-28.212002</data> 
    <data key="y">38.832</data> 
    </node> 
    <node id="13"> 
    <data key="label">v13</data> 
    <data key="size">80.212</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">38.832</data> 
    <data key="y">28.211998</data> 
    </node> 
    <node id="19"> 
    <data key="label">v19</data> 
    <data key="size">80.212</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">-38.832</data> 
    <data key="y">28.211998</data> 
    </node> 
    <node id="12"> 
    <data key="label">v12</data> 
    <data key="size">66.832</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">45.648003</data> 
    <data key="y">14.832003</data> 
    </node> 
    <node id="20"> 
    <data key="label">v20</data> 
    <data key="size">66.832</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">-45.648003</data> 
    <data key="y">14.832003</data> 
    </node> 
    <node id="1"> 
    <data key="label">v1</data> 
    <data key="size">52.000004</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">-48.000004</data> 
    <data key="y">4.917384E-7</data> 
    </node> 
    <node id="11"> 
    <data key="label">v11</data> 
    <data key="size">52.000004</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">48.0</data> 
    <data key="y">4.917384E-7</data> 
    </node> 
    <node id="2"> 
    <data key="label">v2</data> 
    <data key="size">37.168003</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">-45.648003</data> 
    <data key="y">-14.832001</data> 
    </node> 
    <node id="10"> 
    <data key="label">v10</data> 
    <data key="size">37.168003</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">45.648003</data> 
    <data key="y">-14.832001</data> 
    </node> 
    <node id="3"> 
    <data key="label">v3</data> 
    <data key="size">23.788002</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">-38.832</data> 
    <data key="y">-28.212002</data> 
    </node> 
    <node id="9"> 
    <data key="label">v9</data> 
    <data key="size">23.788002</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">38.832</data> 
    <data key="y">-28.212002</data> 
    </node> 
    <node id="4"> 
    <data key="label">v4</data> 
    <data key="size">13.168001</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">-28.212002</data> 
    <data key="y">-38.832</data> 
    </node> 
    <node id="8"> 
    <data key="label">v8</data> 
    <data key="size">13.168001</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">28.211998</data> 
    <data key="y">-38.832</data> 
    </node> 
    <node id="5"> 
    <data key="label">v5</data> 
    <data key="size">6.3519998</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">-14.832001</data> 
    <data key="y">-45.648003</data> 
    </node> 
    <node id="7"> 
    <data key="label">v7</data> 
    <data key="size">6.3519998</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">14.832003</data> 
    <data key="y">-45.648003</data> 
    </node> 
    <node id="6"> 
    <data key="label">v6</data> 
    <data key="size">4.0</data> 
    <data key="r">0</data> 
    <data key="g">0</data> 
    <data key="b">0</data> 
    <data key="x">4.917384E-7</data> 
    <data key="y">-48.000004</data> 
    </node> 
    <edge id="0" source="20" target="9"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="1" source="17" target="8"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="2" source="18" target="2"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="3" source="7" target="11"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="4" source="16" target="4"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="5" source="12" target="9"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="6" source="5" target="16"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="7" source="9" target="1"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="8" source="10" target="4"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="9" source="2" target="1"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="10" source="18" target="15"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="11" source="4" target="11"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="12" source="4" target="2"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="13" source="9" target="8"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="14" source="6" target="8"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="15" source="4" target="1"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="16" source="2" target="18"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="17" source="19" target="6"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="18" source="1" target="6"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="19" source="8" target="9"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="20" source="10" target="3"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="21" source="12" target="19"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="22" source="11" target="4"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="23" source="3" target="18"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="24" source="13" target="14"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="25" source="10" target="2"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="26" source="17" target="6"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="27" source="6" target="7"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="28" source="12" target="16"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="29" source="20" target="3"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="30" source="13" target="5"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="31" source="20" target="11"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="32" source="11" target="15"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="33" source="20" target="15"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="34" source="15" target="17"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="35" source="10" target="8"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="36" source="14" target="7"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="37" source="8" target="2"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="38" source="16" target="7"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="39" source="1" target="19"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="40" source="5" target="13"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="41" source="1" target="20"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="42" source="17" target="4"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="43" source="13" target="9"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="44" source="14" target="12"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="45" source="8" target="13"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="46" source="8" target="1"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="47" source="9" target="2"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="48" source="5" target="14"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="49" source="16" target="11"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="50" source="4" target="9"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="51" source="1" target="8"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="52" source="7" target="12"> 
    <data key="weight">1.0</data> 
    </edge> 
    <edge id="53" source="20" target="16"> 
    <data key="weight">1.0</data> 
    </edge> 
    </graph> 
    </graphml> 

답변

2

nw:load-graphml 부하는 그래프를 지시했다.

edgedefault="directed"이 GraphML 파일의 <graph> 요소로 설정되어 있는지 확인하십시오. 또한 링크 번식을 사용하는 경우 해당 번식은 NetLogo 내부로 지정되도록 정의해야합니다.

이 여전히 작동하지 않으면, 당신은 우리에게 샘플 GraphML 파일과 당신이 그것을로드하는 데 사용하는 정확한 코드를 표시해야합니다 ...

편집

내가 더 조사 하였다, 그리고 나는 일 수 있다고 생각합니다. nw은 번목이없는 링크가 포함 된 GraphML 파일을로드합니다.

우아한 방법은 직접 링크를 생성하고 GraphML 파일 내에 breed 속성을 사용하여 링크의 유형을 설정하는 것입니다.

: 당신은 당신의 네트워크를로드 한 후 다음

let dummies [] 
create-turtles 2 [ 
    create-links-to other turtles 
    set dummies fput self dummies 
] 

그리고, 을 :

훨씬 빨리이 문제를 해결하기 위해 더 많은 hackish 방법은 네트워크를로드하기 전에 이런 일을 추가하는 것입니다

foreach dummies [ t -> ask t [ die ] ] 

이것은 NetLogo의 교배되지 않은 링크가 전달되거나 전달 될 수 있지만 둘 모두가 될 수는 없다는 사실에 의존합니다. 네트워크가로드되기 전에 생성 된 더미 링크를 통해 NetLogo는 다른 모든 링크를 지시대로 생성합니다.

문제점에 대해 GitHub에서 문제점을 열었으며 자세히 조사 할 것입니다. 그때까지, 그 해킹은 당신을 구해야합니다.

+0

Nicolas Payette, 정말 고마워요. 다시 감사합니다. – BiSarfraz

+0

GitHub 문제의 URL은 무엇입니까 ...? –

+0

https://github.com/NetLogo/NW-Extension/issues/183 –

관련 문제