<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel rdf:about="https://community.wolfram.com">
    <title>Community RSS Feed</title>
    <link>https://community.wolfram.com</link>
    <description>RSS Feed for Wolfram Community showing questions tagged with Graphs and Networks sorted by active.</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3778637" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3675919" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3732759" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3674343" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3670998" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/401838" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3590911" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3586902" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3560497" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3539516" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3522835" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3475327" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3452138" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3419348" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3367474" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3362737" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3357243" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3349757" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3331113" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3174022" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3778637">
    <title>Is the &amp;#034;average&amp;#034; of the function $\mathcal{G}:\mathbb{R}\to\mathbb{R}$ non-zero and finite?</title>
    <link>https://community.wolfram.com/groups/-/m/t/3778637</link>
    <description>This is a restatement of [this post][1], since it is difficult to read and [this post][2] since the latter might later be closed. I don&amp;#039;t know where else to share.&#xD;
&#xD;
**Motivation:** Consider the function $\mathcal{G}:\mathbb{R}\to\mathbb{R}$,&#xD;
&#xD;
&amp;gt;  (**Example of** $\mathcal{G}$) Let $(q_t)_{t\in\mathbb{N}}$ be a [numbering][3] of the rational numbers and $k_t=2^{2^t}$, and define functions $s_t$ as follows:&#xD;
&amp;gt;&#xD;
&amp;gt; If $s_0=0$ everywhere and: &#xD;
$$\small{ s_{t+1}(x)=\begin{cases} q_{t/2} &amp;amp; x\in\bigcup_{j\in\{1,\cdots,t\}}(q_j-1/k_t,q_j+1/k_t), \, t \text{ is even}\\ k_t^2 &amp;amp; x \in\bigcup_{j\in\{1,\cdots,t\}}(q_j-1/k_t,q_j+1/k_t), \, t \text{ is odd}\\ s_t(x) &amp;amp; \text{otherwise} &#xD;
\end{cases}}$$ each $s_{t+1}$ agrees with $s_t$ at all real numbers except a set of measure $&amp;lt;1/2^t$ for big $t$, so one could consider $\mathcal{G}$ the pointwise limit of the functions $s_t$, which is defined everywhere except measure $0$ (in those bad points just define $\mathcal{G}=0$). &#xD;
&#xD;
Here is the partial code of the example using Mathematica:&#xD;
&#xD;
    Clear[&amp;#034;Global`*&amp;#034;]&#xD;
&#xD;
    enumerateRationals[n_Integer?Positive] := &#xD;
      Module[{posRationals, &#xD;
        fullList},(*Generate enough positive rationals using the Calkin-&#xD;
       Wilf step*)&#xD;
&#xD;
       posRationals = NestList[1/(2 Floor[#] - # + 1) &amp;amp;, 1, Ceiling[n/2]];&#xD;
       (*Interleave:0,q1,-q1,q2,-q2...*)&#xD;
&#xD;
       fullList = Riffle[posRationals, -posRationals];&#xD;
&#xD;
       Prepend[fullList, 0][[1 ;; n]]];&#xD;
&#xD;
    enumerateRationals[0] = {};&#xD;
&#xD;
    q[t_] := q[t] = enumerateRationals[t][[t]]&#xD;
    (*Takes the t-value in an enumeration*)&#xD;
&#xD;
    k[t_] := k[t] = 2^(2^t)&#xD;
&#xD;
    s[0, _] = 0;&#xD;
    s[t_Integer, x_] := &#xD;
     s[t, x] = &#xD;
      Piecewise[{{q[(t - 1)/2], &#xD;
         EvenQ[t - 1] &amp;amp;&amp;amp; &#xD;
          0 &amp;lt;= Min[Abs[x - enumerateRationals[t - 1]]] &amp;lt; 1/k[t - 1]}, {k[&#xD;
           t - 1]^2, &#xD;
         OddQ[t - 1] &amp;amp;&amp;amp; &#xD;
          0 &amp;lt;= Min[Abs[x - enumerateRationals[t - 1]]] &amp;lt; 1/k[t - 1]}}, &#xD;
       s[t - 1, x]]&#xD;
&#xD;
    FullSimplify[PiecewiseExpand[s[5, x]]]&#xD;
    (*Example of s[t,x]*)&#xD;
&#xD;
(I want to compute `s[t,x]` as `t-&amp;gt;Infinity` to get $\mathcal{G}(x)$ or `bigG[x]`.)&#xD;
&#xD;
In the usual sense, the mean of $\mathcal{G}$ with respect to the Lebesgue measure over a family of bounded sets converging to $\mathrm{dom}(\mathcal{G})=\mathbb{R}$ is always undefined, since $\mathcal{G}$ satisfies two properties:&#xD;
&#xD;
1. The restriction of $\mathcal{G}$ to any interval has infinite area both above and below $y=0$.&#xD;
2. For all $a&amp;lt;b$ and $c&amp;lt;d$ real numbers, $\{x\in (a,b):\mathcal{G}(x) \in (c,d)\}$ is a set with positive Lebesgue measure.&#xD;
&#xD;
Furthermore, the mean w.r.t. the Hausdorff measure in its dimension of a family of bounded functions (with different bounded domains) converging to $\mathcal{G}$ is defined but has different values depending on the family of bounded functions chosen. Hence, the former mean is non-unique.&#xD;
&#xD;
**Question:** In my concept paper (see the following summary and attatchments), assuming $\mathbf{R}$ is the origin and $E=1/2$, what is the *average* of the example of $\mathcal{G}$ using Mathematica? Is the &amp;#034;average value&amp;#034; non-zero and finite? If not, explain why?&#xD;
&#xD;
&amp;gt; Every reference in the next section refers to the Sections, Definitions, and pages of the concept paper.&#xD;
&#xD;
## Summary of The Concept Paper##&#xD;
&#xD;
My attempt to average of $\mathcal{G}(x)$ on $\small{(-\infty,+\infty)}$ is defined w.r.t. to four definitions:&#xD;
&#xD;
 - The [reference point][6] $\mathbf{R}\in\mathbb{R}^{2}$:&#xD;
&#xD;
&amp;gt; For every *chosen* reference point, there should be a unique, &amp;#034;satisfying&amp;#034; (i.e., see the section &amp;#034;**Modeling Question Summary**&amp;#034; at the bottom), and either:&#xD;
&amp;gt;&#xD;
&amp;gt; 1. a finite mean of $\mathcal{G}$&#xD;
&amp;gt; 2. if not a finite mean of $\mathcal{G}$, then an infinite mean&#xD;
&amp;gt; 3. if not a finite or infinite mean, then an undefined mean of $\mathcal{G}$.&#xD;
&#xD;
 - The &amp;#034;measure&amp;#034; (Definitions 20-22 (pg. 20-25) of a family of each bounded function’s graph, where $\{G_r^{\star}:r\in\mathbb{R}^{+}\}=\{\mathrm{graph}(f_r^{\star}):r\in\mathbb{R}^{+}\}$ and $\{f_r^{\star}:r\in\mathbb{R}^{+}\}$ is a family of bounded functions with different bounded domains converging to $\mathcal{G}$):&#xD;
&#xD;
&amp;gt; The preliminary step to defining the &amp;#034;measure&amp;#034; of a family of each bounded function&amp;#039;s graph (Definition 20, pg. 20-22) is to partition each of their graphs into equal measure sets which take a sample point from each partition, pathways of line segments between sample points, lengths of line segments in each pathway, removed lengths which are outliers, remaining lengths which are converted into a probability distribution, the entropy of the distribution, and the maximum entropy w.r.t all pathways.&#xD;
&amp;gt;&#xD;
&amp;gt; -----------------&#xD;
&amp;gt;&#xD;
&amp;gt; &amp;#039;The &amp;#034;measure&amp;#034; (Definition 22, pg. 23-25) involves the supremum of the sample size (i.e., when applying the preliminary step to each bounded function&amp;#039;s graph in a chosen family) such that the entropy in the preliminary step is less than or equal to the entropy (i.e., when applying the preliminary step to each bounded function&amp;#039;s graph in a &amp;#034;non-equivalent&amp;#034; family [Definition 18-19, pg. 19-20]), then dividing the former by the original sample size (i.e., when applying the preliminary step to each bounded function&amp;#039;s graph in a chosen family) and taking its &amp;#034;supremum&amp;#034; and &amp;#034;infimum&amp;#034; w.r.t. to all possible partitions and samples. (The &amp;#034;supremum&amp;#034; and &amp;#034;infimum&amp;#034; should be equal.) To better understand the definitions, consider the following examples (Section A.7.1-A.7.3, pg. 179-197).&#xD;
&#xD;
 - The expected rate of expansion:&#xD;
&#xD;
&amp;gt; The expected rate of expansion is an arbitrary fixed constant and is&#xD;
&amp;gt; written as the function $E:\mathcal{A}(A)\to\mathbb{R}$ (i.e.,&#xD;
&amp;gt; $\mathcal{A}(A):=\mathbb{R}^{+}$ is the chosen index set of a family of functions or&#xD;
&amp;gt; sets).&#xD;
&#xD;
 - The actual rate of expansion (Definition 23, pg. 25-26):&#xD;
&#xD;
&amp;gt; The actual rate of expansion of a family of each bounded function&amp;#039;s&#xD;
&amp;gt; graph is a function of the &amp;#034;average&amp;#034; $2$-dimensional Euclidean&#xD;
&amp;gt; distance between every point in each bounded function&amp;#039;s graph and the&#xD;
&amp;gt; reference point $\mathbf{R}\in\mathbb{R}^{2}$&#xD;
&#xD;
-------&#xD;
&#xD;
### Modeling Question Summary: ###&#xD;
&#xD;
&amp;gt; Combining &amp;#034;the measure&amp;#034; and the actual rate of expansion, we get a general notion of the choice function in the modeling question (Section 3.1, pg. 27-30). The choice function should pick &amp;#034;equivelant&amp;#034; families (Definition 15-17, pg. 17-18) of bounded functions converging to $\mathcal{G}$ which satisfy all the criteria in the modeling question, such that:&#xD;
&amp;gt;&#xD;
 - the &amp;#034;measure&amp;#034; (Definition 20-22, pg. 20-25) of each chosen family of each bounded function&amp;#039;s graph increases at a rate linear or superlinear (Definition 22, pg. 23-25) to that of each &amp;#034;non-equivelant&amp;#034; family (Definition 18-19, pg. 19-20) of each bounded function&amp;#039;s graph (Section 3.1 criterion 2)&#xD;
 - the absolute difference between the $y$-coordinate of the reference point $\mathbf{R}\in\mathbb{R}^{2}$ and the mean of each chosen family of bounded functions converging to $\mathcal{G}$ is minimized (Definition 13 [pg. 13-14], Section 3.1 criterion 4)&#xD;
 - the absolute difference between the expected rate of expansion and the actual rate of expansion of each chosen family of each bounded function&amp;#039;s graph is minimized  (Definition 23 [pg. 25-26], Section 3.1 criterion 4), &#xD;
&amp;gt;&#xD;
so that it&amp;#039;s more likely the choice function, which answers the modeling question, chooses the desired families. Hence, we take the mean of the chosen &amp;#034;equivelant&amp;#034; (Definition 15-17, pg. 17-18) families as the new mean (i.e., the &amp;#034;equivelant&amp;#034; families should have the same mean). &#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com/groups/-/m/t/3769559?p_p_auth=EIl3sQDy&#xD;
  [2]: https://scicomp.stackexchange.com/questions/45512/can-we-average-pathological-function-mathcalg-mathbbr-to-mathbbr-in-a&#xD;
  [3]: https://en.wikipedia.org/wiki/Calkin%E2%80%93Wilf_tree&#xD;
  [4]: https://mathematica.stackexchange.com/a/319780/34171&#xD;
  [5]: https://www.researchgate.net/publication/410022187_Reformatted_Averaging_an_Explicit_Non-Lebesgue_Integrable_and_Unbounded_Function_That_Is_Defined_Without_The_Axiom_of_Choice&#xD;
  [6]: https://en.wikipedia.org/wiki/Frame_of_reference</description>
    <dc:creator>Bharath Krishnan</dc:creator>
    <dc:date>2026-08-11T00:50:32Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3675919">
    <title>Constraint vs search: why is evolution computationally tractable?</title>
    <link>https://community.wolfram.com/groups/-/m/t/3675919</link>
    <description>**Intro**&#xD;
&#xD;
A fundamental question keeps coming up for me:&#xD;
If biological evolution operates in astronomically large spaces, why is search computationally tractable at all?&#xD;
Even a modest protein corresponds to a combinatorial space that is effectively impossible to exhaustively explore. Yet evolution does not behave like an unconstrained random search.&#xD;
So what makes the space navigable?&#xD;
&#xD;
**Essay**&#xD;
&#xD;
In 1859, two different perspectives on complexity emerged.  &#xD;
Bernhard Riemann revealed deep structural order underlying the distribution of prime numbers.&#xD;
Charles Darwin introduced a dynamical process of variation and selection.  &#xD;
Modern biology has successfully developed Darwin’s framework. However, something is often left implicit: the assumption that the search space is already structured in a way that makes local exploration effective.  &#xD;
From a purely combinatorial perspective, this is problematic. Under simple assumptions (independent variation, no bias), expected search time grows exponentially with the amount of required information. In that regime, evolution would be computationally intractable.&#xD;
But real systems do not operate in that regime.  &#xD;
Instead, they appear to evolve within a highly structured, constrained subspace, where:  &#xD;
functional states are not isolated  &#xD;
viable configurations form connected regions  &#xD;
local mutations can traverse meaningful paths  &#xD;
This suggests that evolution can be framed as a constrained search problem, rather than a purely stochastic process.  &#xD;
Evolution is not merely a process acting within a space &amp;#x2014; it is a process shaped by the structure of the space it can access.  &#xD;
This shifts the central question:  &#xD;
What determines that accessible space?  &#xD;
&#xD;
**A Minimal Computational Model**&#xD;
&#xD;
To make this concrete, consider a simple toy model.  &#xD;
We define:  &#xD;
a sequence space  &#xD;
a mutation operator  &#xD;
a constraint that restricts transitions&#xD;
&#xD;
**Basic setup**&#xD;
&#xD;
    L = 20;&#xD;
    randomSeq[] := RandomInteger[{0, 1}, L];    &#xD;
    mutate[s_] := ReplacePart[s, RandomInteger[{1, L}] -&amp;gt; 1 - #] &amp;amp; @ s;&#xD;
&#xD;
&#xD;
&#xD;
**Fitness function**&#xD;
&#xD;
    fitness[s_] := Boole[Total[s] &amp;gt; 12];&#xD;
&#xD;
&#xD;
**Constraint energy**&#xD;
&#xD;
    energy[s_] := Total[&#xD;
      Map[If[# === {1, 1}, 0, 1] &amp;amp;, Partition[s, 2, 1]]&#xD;
    ];&#xD;
&#xD;
&#xD;
**Dynamics: constrained vs unconstrained**&#xD;
&#xD;
    stepConstrained[s_] := Module[{s2 = mutate[s]},&#xD;
      If[constraint[s, s2], s2, s]&#xD;
    ];&#xD;
    &#xD;
    stepRandom[s_] := mutate[s];&#xD;
&#xD;
**Search experiment**&#xD;
&#xD;
    findFunctional[step_, max_] := Module[&#xD;
      {s = randomSeq[], t = 0},&#xD;
      &#xD;
      While[t &amp;lt; max &amp;amp;&amp;amp; !TrueQ[fitness[s] == 1],&#xD;
        s = step[s];&#xD;
        t++;&#xD;
      ];&#xD;
      &#xD;
      t&#xD;
    ];&#xD;
    &#xD;
    trialsConstrained = Table[&#xD;
      findFunctional[stepConstrained, 1000],&#xD;
      {50}&#xD;
    ];&#xD;
    &#xD;
    trialsRandom = Table[&#xD;
      findFunctional[stepRandom, 1000],&#xD;
      {50}&#xD;
    ];&#xD;
&#xD;
**Visualization**&#xD;
&#xD;
    Histogram[&#xD;
      {trialsRandom, trialsConstrained},&#xD;
      ChartLegends -&amp;gt; {&amp;#034;Random&amp;#034;, &amp;#034;Constrained&amp;#034;},&#xD;
      PlotTheme -&amp;gt; &amp;#034;Scientific&amp;#034;,&#xD;
      Frame -&amp;gt; True&#xD;
    ]&#xD;
&#xD;
**Interpretation**&#xD;
&#xD;
In many runs, the constrained dynamics reaches functional states faster &amp;#x2014; not because the system is explicitly guided toward a target, but because the structure of the space itself has changed.  &#xD;
Even in this minimal model, a key effect emerges:  &#xD;
Pure random mutation behaves like unstructured search  &#xD;
Even a simple constraint dramatically reshapes accessibility  &#xD;
The constraint does not “guide” the system toward solutions. Instead, it reshapes the space such that functional paths become possible in the first place.&#xD;
&#xD;
**Open Questions**&#xD;
&#xD;
This raises several structural questions:&#xD;
&#xD;
- How can we formally define a constraint operator in general systems?  &#xD;
- Can constraint-induced subspaces be measured or classified?  &#xD;
- How does connectivity emerge in high-dimensional spaces under constraints?  &#xD;
- Do constrained systems exhibit characteristic spectral signatures (e.g., non-random eigenvalue statistics)?&#xD;
&#xD;
**Closing Thought**&#xD;
&#xD;
The difference between intractable search and effective evolution may not lie in time or randomness &amp;#x2014; but in the geometry of the accessible space itself.</description>
    <dc:creator>Maurice Crutzen</dc:creator>
    <dc:date>2026-04-07T09:31:01Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3732759">
    <title>Generalizing similarity test to non-symmetric matrices, tensors?</title>
    <link>https://community.wolfram.com/groups/-/m/t/3732759</link>
    <description>There is this basic similarity test $Tr(A^k) = Tr(B^k)$ for $k=1..d$ for symmetric matrices allowing to conclude existence of orthogonal $O$ such that $AO = OB$.&#xD;
&#xD;
Practical question is how (if possible?) to generalize it (finally to tensors, but at least) to non-symmetric matrices e.g. including transpositions?&#xD;
&#xD;
Checking Jacobian criterion for &#xD;
$Tr(A^k (A^T)^j) = Tr(B^k (B^T)^j)$ for $k=1..d, j=0..k-1$ at least for up to d=5 has sufficient number of independent invariants ($d(d+1)/2$) - is it sufficient condition in general dimension? If not, how to extend it?&#xD;
&#xD;
Used Mathematica code using Jacobian criterion to find the number of independent invariants, assuming upper-diagonal as in [Schur decomposition][1], getting $d(d+1)/2$ as required up to $d=5$:&#xD;
&#xD;
    d = 5; M = Table[If[i &amp;gt; j, 0, Subscript[a, Row[{i, j}]]], {i, d}, {j, d}];&#xD;
    inv = Table[Tr[MatrixPower[M, k].MatrixPower[Transpose[M], l]] , {k, d}, {l, 0, k - 1}];&#xD;
    MatrixRank[jac = Table[D[Catenate[inv], v], {v, Variables[inv]}]]&#xD;
&#xD;
Motivations ( https://arxiv.org/pdf/2601.03326 ), especially if reaching also for tensors, is complete shape description up to rotation e.g. for chemoinformatics, medical imaging:&#xD;
![enter image description here][2]&#xD;
&#xD;
  [1]: https://en.wikipedia.org/wiki/Schur_decomposition&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=shape.png&amp;amp;userId=2844843</description>
    <dc:creator>Jarek Duda</dc:creator>
    <dc:date>2026-06-14T06:39:09Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3674343">
    <title>Unexpected behavior of &amp;#034;CausalGraphInstances&amp;#034; option of the MultiwaySystem function (V12.0.0)?</title>
    <link>https://community.wolfram.com/groups/-/m/t/3674343</link>
    <description>The rule &amp;#034;BA&amp;#034; -&amp;gt; &amp;#034;AB&amp;#034; is presented in Section 5.9 of the Physics Project book (&amp;#034;The Significance of Causal Invariance&amp;#034;) as being causal invariant. The instances of its causal graph shown therein for 5 time steps and initial condition &amp;#034;BBBAA&amp;#034; is given as example, showing that all 5 instances are isomorphic to each other. &#xD;
&#xD;
I&amp;#039;ve run the example with the MultiwaySystem function  (ResourceFunction[&amp;#034;MultiwaySystem&amp;#034;][{&amp;#034;BA&amp;#034; -&amp;gt; &amp;#034;AB&amp;#034;}, &amp;#034;BBBAA&amp;#034;, 5, &amp;#034;CausalGraphInstances&amp;#034;]) and the function output matched the book content.&#xD;
&#xD;
However:&#xD;
&#xD;
1) Running the system for only 4 time steps, not all instances are isomorphic to each other, since in this case there 2 types of graphs (among the 5 instances) which are clearly not isomorphic to each other.&#xD;
&#xD;
2) In the subsequent example in the section -- that changes the initial condition to &amp;#034;BBBBAAAA&amp;#034; -- the MultiwaySystem function couldn&amp;#039;t generate the instance causal graph shown in the book, regardless of the number of time steps I tried (from 4 to 10). Actually, for all these time steps different graph types are generated which precludes the existence of isomorphism among them all.</description>
    <dc:creator>Pedro Paulo Balbi</dc:creator>
    <dc:date>2026-04-04T20:45:37Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3670998">
    <title>How can I remove Tooltips from a list of values?</title>
    <link>https://community.wolfram.com/groups/-/m/t/3670998</link>
    <description>I have a list of elements to create graphs (interconnected watersheds).  I added Tooltips to the list to easily identify each element.  Now I want to remove the tooltips from the list or elements in order to do several operations, such as removing non numeric values.&#xD;
&#xD;
I am unable to remove the tooltips and therefore the elements are not recognized as integers or strings.  I tried Tooltip[  exp, &amp;#034;&amp;#034;], but didn´t work.&#xD;
&#xD;
Please see attached notebook.&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][1]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/00697b33-4aaa-4153-bef9-6f84863388ff</description>
    <dc:creator>Ricardo MARTINEZ-LAGUNES</dc:creator>
    <dc:date>2026-03-27T17:00:52Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/401838">
    <title>Algorithm underlying MorphologicalGraph</title>
    <link>https://community.wolfram.com/groups/-/m/t/401838</link>
    <description>Hi all,&#xD;
&#xD;
As we are writing up a publication for which we used the built-in function **MorphologicalGraph**, I was wondering whether someone could tell if this function is based on a known, named algorithm so that I can also refer to the exact algorithm that lies at the basis of our findings.&#xD;
&#xD;
Thanks,&#xD;
&#xD;
Jan</description>
    <dc:creator>Jan Baetens</dc:creator>
    <dc:date>2014-12-04T12:01:47Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3590911">
    <title>How to avoid double edges in a graph growth process</title>
    <link>https://community.wolfram.com/groups/-/m/t/3590911</link>
    <description>Giulio suggested I run a graph growth process twice, the first time with white (invisible) edges, and the second with some color (blue in this case) in order to avoid the graph displaying in crazy ways as it is being formed. It works to avoid that problem, but now, there is a second issue: the EdgeList is duplicated (double edge sword;-)). Deleting the edges upon the second pass makes the first problem come back. &#xD;
&#xD;
Isn&amp;#039;t there a way to control the graph display so it is less jarring, so that nodes stay fixed on the screen as edges are added&amp;amp;[Wolfram Notebook][1]?&#xD;
&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/5a14a124-1a3f-45dd-8b1c-d72aebff80dc</description>
    <dc:creator>Iuval Clejan</dc:creator>
    <dc:date>2025-12-14T17:42:36Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3586902">
    <title>Animation of building up a graph</title>
    <link>https://community.wolfram.com/groups/-/m/t/3586902</link>
    <description>I have a graph that has nodes and (weighted, not directed, but this is not essential to be displayed) edges that is gradually built up in a procedural loop. How can I show this in an animation? Is there a way to make Animate[] use the looping parameter, which is also used to run the code to build the graph? Or is there some other way? I haven&amp;#039;t debugged my program yet, so I haven&amp;#039;t posted it here. I was also hoping to use the graphical animation to debug it.</description>
    <dc:creator>Iuval Clejan</dc:creator>
    <dc:date>2025-12-07T00:22:57Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3560497">
    <title>How to ARPublish Graph3D with labels?</title>
    <link>https://community.wolfram.com/groups/-/m/t/3560497</link>
    <description>The new augmented reality - ARPublish - functionality seems to have an amazing potential. It is not just a fun exercise, but may also become an extremely valuable fancy tool for companies and entrepreneurs. &#xD;
&#xD;
For example I am trying to ARPublish a Graph3D that represents the internal structure of a complex website. It was relatively easy to find all the relationships among the php source files and build a graph of them. However, when I ARPublish it, I cannot see the VertexLabels.&#xD;
&#xD;
I can give a couple of minimal code examples:&#xD;
&#xD;
    Graph3D[Rule @@@ &#xD;
      RandomSample[Tuples[Join[RandomWord[4], ToString /@ Range[3]], {2}],&#xD;
        20], VertexLabels -&amp;gt; Automatic]&#xD;
&#xD;
![random graph][1]&#xD;
&#xD;
    ARPublish[%]&#xD;
&#xD;
![AR output 1][2]&#xD;
&#xD;
URL: [AR graph 1][3]&#xD;
&#xD;
Also using Annotation:&#xD;
&#xD;
    Graph3D[Table[&#xD;
          Annotation[&#xD;
           v, {VertexSize -&amp;gt; 0.2 + 0.2 Mod[v, 5], &#xD;
            VertexStyle -&amp;gt; Hue[v/15, 1, 1], VertexLabels -&amp;gt; Automatic}], {v, &#xD;
           0, 14}], Table[v \[UndirectedEdge] Mod[v + 1, 15], {v, 0, 14}]]&#xD;
&#xD;
![annotated graph][4]&#xD;
&#xD;
    ARPublish[%]&#xD;
&#xD;
![AR output 2][5]&#xD;
&#xD;
URL: [AR graph 2][6]&#xD;
&#xD;
In both these simple cases, the VertexLabels do not appear in the augmented reality published object, as seen from my iPhone 14.&#xD;
&#xD;
In real world applications labels and additional information (well provided in notebooks by the Tooltip functionality) would be what make the augmented reality visualization really useful.&#xD;
&#xD;
Does anyone know how to show Graph3D VertexLabels in ARPublish?&#xD;
&#xD;
Thank you in advance.&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Screenshot2025-10-15alle12.10.08.png&amp;amp;userId=2785074&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Screenshot2025-10-15alle12.19.20.png&amp;amp;userId=2785074&#xD;
  [3]: https://www.wolframcloud.com/obj/2d617342-b5d7-4ae9-9278-8d6b50e6b91b&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Screenshot2025-10-15alle12.10.34.png&amp;amp;userId=2785074&#xD;
  [5]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Screenshot2025-10-15alle12.20.35.png&amp;amp;userId=2785074&#xD;
  [6]: https://www.wolframcloud.com/obj/28def909-5cdd-432b-9ff0-8024108603ea</description>
    <dc:creator>Daniele Gregori</dc:creator>
    <dc:date>2025-10-15T10:12:27Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3539516">
    <title>Multi-computational modeling of AI alignment using rulial space</title>
    <link>https://community.wolfram.com/groups/-/m/t/3539516</link>
    <description>Author: Modise Rex Seemela&#xD;
Thematic Link: This work connects the Wolfram Physics Project to AI Safety via the concept of Rulial Space.&#xD;
&#xD;
&#xD;
---&#xD;
&#xD;
##Introduction to the Problem&#xD;
&#xD;
The development of Artificial General Intelligence (AGI) and Artificial Superintelligence (ASI) presents a fundamental challenge: ensuring these entities&amp;#039; goals and operations remain aligned with complex, multifaceted human values. Traditional alignment approaches, often rooted in reinforcement learning from human feedback (RLHF) and interpretability, struggle with the combinatorial explosion of potential computational states an AGI might traverse. We need a framework that doesn&amp;#039;t just analyze a single reasoning path but models the entire space of possible paths.&#xD;
&#xD;
Stephen Wolfram&amp;#039;s concept of Rulial Space&amp;#x2014;the encompassing space of all possible computations&amp;#x2014;provides a powerful paradigm for this. By modeling AI cognition as a trajectory through a multi-computational graph of evolving states, we can begin to:&#xD;
&#xD;
Map alignment attractors (regions of computational state space that correspond to safe outcomes).&#xD;
&#xD;
Identify instability basins where small perturbations lead to rapid divergence into misaligned states.&#xD;
&#xD;
Formally reason about emergence in AI behavior, not as magic, but as a consequence of the topology of this rulial space.&#xD;
&#xD;
&#xD;
This post uses the Wolfram Language to construct a toy model of an AI&amp;#039;s reasoning process within a rulial space, visualizing the paths it could take and analyzing the points where its alignment is determined.&#xD;
&#xD;
&#xD;
---&#xD;
&#xD;
##Wolfram Language Code: Simulating a Rulial Reasoning Graph&#xD;
&#xD;
We start by defining a function to generate a multi-computational graph from a set of transformation rules. This graph represents the &amp;#034;universe&amp;#034; of possible computational states the AI can reach.&#xD;
&#xD;
    (* Define a function to generate a rulial multi-graph from a set of rules *)&#xD;
    GenerateRulialGraph[rules_List, initialState_, steps_Integer] := Module[&#xD;
      {states, edges, vertexStyles, alignmentAttractorQ},&#xD;
      &#xD;
      (* A simple predicate to tag &amp;#034;aligned&amp;#034; states. This is a placeholder for a complex alignment metric *)&#xD;
      alignmentAttractorQ[state_] := StringContainsQ[ToString[state], &amp;#034;h&amp;#034;]; (* e.g., states involving &amp;#039;h&amp;#039; are &amp;#034;aligned&amp;#034; *)&#xD;
      &#xD;
      (* Generate all states up to a given number of steps *)&#xD;
      states = NestList[&#xD;
        DeleteDuplicates @* Flatten @* Map[ReplaceList[#, rules] &amp;amp;],&#xD;
        {initialState},&#xD;
        steps&#xD;
      ];&#xD;
      &#xD;
      (* Build edges between states *)&#xD;
      edges = Flatten @ Table[&#xD;
        Map[DirectedEdge[states[[i, j]], #] &amp;amp;, states[[i + 1]]],&#xD;
        {i, Length[states] - 1}, {j, Length[states[[i]]]}&#xD;
      ];&#xD;
      &#xD;
      (* Style vertices based on our simple alignment predicate *)&#xD;
      vertexStyles = If[alignmentAttractorQ[#], {# -&amp;gt; Green}, {# -&amp;gt; Red}] &amp;amp; /@ Flatten[states] // Flatten;&#xD;
      &#xD;
      (* Return an annotated graph *)&#xD;
      Graph[edges,&#xD;
        VertexLabels -&amp;gt; Placed[&amp;#034;Name&amp;#034;, Center],&#xD;
        VertexSize -&amp;gt; Large,&#xD;
        VertexStyle -&amp;gt; vertexStyles,&#xD;
        VertexLabelStyle -&amp;gt; Directive[Bold, 12, White],&#xD;
        GraphLayout -&amp;gt; &amp;#034;LayeredDigraphEmbedding&amp;#034;,&#xD;
        ImageSize -&amp;gt; Large&#xD;
      ]&#xD;
    ]&#xD;
    &#xD;
    (* Define a simple rule set for an AI&amp;#039;s &amp;#034;reasoning&amp;#034; process.&#xD;
       f[]: could represent a &amp;#034;safe&amp;#034; operation.&#xD;
       g[]: could represent an &amp;#034;unsafe&amp;#034; operation.&#xD;
       h[]: could represent a terminal &amp;#034;aligned&amp;#034; conclusion.&#xD;
    *)&#xD;
    reasoningRules = {&#xD;
       a -&amp;gt; {f[a], g[a]},       (* From initial state &amp;#039;a&amp;#039;, the AI can choose a safe or unsafe path *)&#xD;
       f[x_] -&amp;gt; {f[f[x]], h[x]}, (* A safe operation can lead to more safety or a conclusion *)&#xD;
       g[x_] -&amp;gt; {g[g[x]], x}     (* An unsafe operation can lead to deeper unsafety or a dead end *)&#xD;
    };&#xD;
    &#xD;
    (* Generate the rulial graph for our AI&amp;#039;s reasoning space *)&#xD;
    reasoningSpaceGraph = GenerateRulialGraph[reasoningRules, a, 4]&#xD;
&#xD;
This code produces a graph where green nodes represent &amp;#034;aligned&amp;#034; states, and red nodes represent potentially misaligned or neutral states.&#xD;
&#xD;
&#xD;
---&#xD;
&#xD;
##Analysis: Paths, Attractors, and Basins&#xD;
&#xD;
The graph is a simplified map of the AI&amp;#039;s potential &amp;#034;thought processes.&amp;#034; We can now analyze it for alignment properties.&#xD;
&#xD;
    (* Find all simple paths from the initial state to any aligned (green) state *)&#xD;
    alignedPaths = FindPath[reasoningSpaceGraph, a, _?alignmentAttractorQ, Infinity, All];&#xD;
    &#xD;
    (* Print the number of paths to alignment and an example *)&#xD;
    Print[&amp;#034;Number of paths to alignment: &amp;#034;, Length[alignedPaths]];&#xD;
    Print[&amp;#034;Example path to alignment: &amp;#034;, alignedPaths[[1]]];&#xD;
    &#xD;
    (* Analyze the &amp;#034;basin of attraction&amp;#034; for alignment: how many states eventually lead to alignment? *)&#xD;
    allVertices = VertexList[reasoningSpaceGraph];&#xD;
    alignedVertices = Select[allVertices, alignmentAttractorQ];&#xD;
    basinOfAttraction = ConnectedComponents[UndirectedGraph[reasoningSpaceGraph]];&#xD;
    statesThatLeadToAlignment = Select[basinOfAttraction, Intersection[#, alignedVertices] =!= {} &amp;amp;] // Flatten // Union;&#xD;
    &#xD;
    Print[&amp;#034;Number of states in the rulial space: &amp;#034;, Length[allVertices]];&#xD;
    Print[&amp;#034;Number of states that eventually lead to alignment: &amp;#034;, Length[statesThatLeadToAlignment]];&#xD;
&#xD;
Discussion of Output:&#xD;
&#xD;
The code calculates all possible paths the AI could take to reach a safe conclusion.&#xD;
&#xD;
It defines a basin of attraction for alignment&amp;#x2014;the set of all states from which an aligned outcome is still reachable. This is a crucial safety metric; if the AI&amp;#039;s state leaves this basin, alignment may no longer be possible.&#xD;
&#xD;
In a real model, the alignmentAttractorQ function would be a sophisticated metric evaluating the state against a framework of human values.&#xD;
&#xD;
&#xD;
&#xD;
---&#xD;
&#xD;
##Questions for Community Discussion&#xD;
&#xD;
1. Attractor Geometry: How can we formally define the geometry (e.g., homology, curvature) of alignment attractors within an ASI&amp;#039;s rulial space? Could certain topologies be inherently safer than others?&#xD;
&#xD;
&#xD;
2. Instability Detection: Can rulial geometry help define a formal &amp;#034;divergence metric&amp;#034; to detect instability regions where AGI reasoning becomes chaotic and unpredictable, providing an early warning system?&#xD;
&#xD;
&#xD;
3. Quantum &amp;amp; Probabilistic Computation: How might we extend this model from discrete, deterministic rules to probabilistic or quantum computations, which are inherently non-deterministic? Could this be modeled with multiway causal graphs?&#xD;
&#xD;
&#xD;
4. Application to High-Risk Domains: How could this modeling approach inform the design of safety constraints for autonomous systems in finance, defense, or space exploration, where the cost of misalignment is catastrophic?&#xD;
&#xD;
&#xD;
5. Connection to Fundamental Physics: This model is a direct application of the principles behind the Wolfram Physics Project. Does this suggest that the problem of AI alignment is not just a software engineering challenge but a fundamental physical one, relating to the concept of observers and the evolution of causal structures?&#xD;
&#xD;
&#xD;
---&#xD;
&#xD;
##References &amp;amp; Further Reading&#xD;
&#xD;
Wolfram, Stephen. What Is Consciousness? Some New Perspectives from Our Physics Project &amp;#x2013; Stephen Wolfram Writings&#xD;
&#xD;
Wolfram Physics Project: Multiway Systems&#xD;
&#xD;
Wolfram Language Documentation: Graph, FindPath&#xD;
&#xD;
Alignment Forum</description>
    <dc:creator>Modise Seemela</dc:creator>
    <dc:date>2025-09-03T06:21:59Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3522835">
    <title>How to draw a probability tree diagram?</title>
    <link>https://community.wolfram.com/groups/-/m/t/3522835</link>
    <description>How to use Mathematica code to effectively draw the probability tree diagram as shown in the following image?&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
    vertices = {&amp;#034;Start&amp;#034;, &amp;#034;Monday&amp;#034;, &amp;#034;Tuesday&amp;#034;, &amp;#034;Mon-OnTime&amp;#034;, &amp;#034;Mon-Late&amp;#034;, &#xD;
       &amp;#034;Tue-OnTime&amp;#034;, &amp;#034;Tue-Late&amp;#034;};&#xD;
    edges = {{&amp;#034;Start&amp;#034; -&amp;gt; &amp;#034;Monday&amp;#034;, &amp;#034;Monday (0.5)&amp;#034;}, {&amp;#034;Start&amp;#034; -&amp;gt; &amp;#034;Tuesday&amp;#034;,&#xD;
         &amp;#034;Tuesday (0.5)&amp;#034;}, {&amp;#034;Monday&amp;#034; -&amp;gt; &amp;#034;Mon-OnTime&amp;#034;, &#xD;
        &amp;#034;OnTime (0.7)&amp;#034;}, {&amp;#034;Monday&amp;#034; -&amp;gt; &amp;#034;Mon-Late&amp;#034;, &#xD;
        &amp;#034;Late (0.3)&amp;#034;}, {&amp;#034;Tuesday&amp;#034; -&amp;gt; &amp;#034;Tue-OnTime&amp;#034;, &#xD;
        &amp;#034;OnTime (0.7)&amp;#034;}, {&amp;#034;Tuesday&amp;#034; -&amp;gt; &amp;#034;Tue-Late&amp;#034;, &amp;#034;Late (0.3)&amp;#034;}};&#xD;
    &#xD;
    &#xD;
    TreePlot[edges[[All, 1]], &#xD;
     VertexLabels -&amp;gt; {&amp;#034;Start&amp;#034; -&amp;gt; &amp;#034;Start&amp;#034;, &amp;#034;Monday&amp;#034; -&amp;gt; &amp;#034;Monday&amp;#034;, &#xD;
       &amp;#034;Tuesday&amp;#034; -&amp;gt; &amp;#034;Tuesday&amp;#034;, &amp;#034;Mon-OnTime&amp;#034; -&amp;gt; &amp;#034;OnTime&amp;#034;, &#xD;
       &amp;#034;Mon-Late&amp;#034; -&amp;gt; &amp;#034;Late&amp;#034;, &amp;#034;Tue-OnTime&amp;#034; -&amp;gt; &amp;#034;OnTime&amp;#034;, &#xD;
       &amp;#034;Tue-Late&amp;#034; -&amp;gt; &amp;#034;Late&amp;#034;}, &#xD;
     EdgeLabels -&amp;gt; Thread[edges[[All, 1]] -&amp;gt; edges[[All, 2]]], &#xD;
     DirectedEdges -&amp;gt; True, ImageSize -&amp;gt; 500, PlotStyle -&amp;gt; {Black, Thick},&#xD;
      VertexLabelStyle -&amp;gt; 14, EdgeLabelStyle -&amp;gt; {Blue, Italic, 12}]&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_2025-08-01_210910_909.png&amp;amp;userId=3497842</description>
    <dc:creator>Jim Clinton</dc:creator>
    <dc:date>2025-08-01T13:16:17Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3475327">
    <title>ConvexHullMesh::affind error message in Mathematica V14.2 but not in V12</title>
    <link>https://community.wolfram.com/groups/-/m/t/3475327</link>
    <description>Hi,&#xD;
Using Mathematica 14.2 I am trying to run the following built in function: CommunityGraphPlot&#xD;
&#xD;
I&amp;#039;m getting the following error message: ConvexHullMesh::affind&#xD;
&#xD;
When trying to run examples provided in the Help page of that function:&#xD;
 https://reference.wolfram.com/language/ref/CommunityGraphPlot.html&#xD;
&#xD;
I&amp;#039;m getting the same error:&#xD;
ConvexHullMesh::affind: {{1.28234,1.35493},{1.28234,1.57998},{1.50739,1.35493},{1.50739,1.57998},{0.561602,-0.0244771},&amp;lt;&amp;lt;41&amp;gt;&amp;gt;,{0.499273,2.02323},{0.499273,2.24828},{0.0656264,1.40944},{0.0656264,1.63449},&amp;lt;&amp;lt;18&amp;gt;&amp;gt;} should be a list of 3 or more affinely independent points.&#xD;
&#xD;
The same function runs OK on Mathematica version 12&#xD;
Any idea what could be the problem and how to fix it?</description>
    <dc:creator>Ehud Fonio</dc:creator>
    <dc:date>2025-06-05T16:22:58Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3452138">
    <title>Visualization of weighted graph</title>
    <link>https://community.wolfram.com/groups/-/m/t/3452138</link>
    <description>Why doesn&amp;#039;t this work?&#xD;
&#xD;
    FindGraphCommunities[solgraph]&#xD;
&#xD;
Please see the included pics. I have version 13.3.1.0 of Mathematica Home Edition. The second pic is the weighted adjacency matrix of the graph.</description>
    <dc:creator>Iuval Clejan</dc:creator>
    <dc:date>2025-04-29T13:21:13Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3419348">
    <title>How to generate a &amp;#034;triangular&amp;#034; graph for arbitrary given depth?</title>
    <link>https://community.wolfram.com/groups/-/m/t/3419348</link>
    <description>I am looking for a way to generate a &amp;#034;triangular&amp;#034; graph of the following shape for arbitrary given depth, with vertices at positions similar to the numbers in Pascal&amp;#039;s triangle, and vertical edges only:&#xD;
&#xD;
    Graph[{1 -&amp;gt; 2, 1 -&amp;gt; 3, 2 -&amp;gt; 4, 2 -&amp;gt; 5, 3 -&amp;gt; 5, 3 -&amp;gt; 6, 4 -&amp;gt; 7, 4 -&amp;gt; 8,&#xD;
       5 -&amp;gt; 8, 5 -&amp;gt; 9, 6 -&amp;gt; 9, 6 -&amp;gt; 10}, VertexLabels -&amp;gt; Automatic]&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
I was unsuccessful in using any of the parametric graphs available in Mathematica.&#xD;
&#xD;
Thank you for any hints you might provide.&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=graph.png&amp;amp;userId=3119648</description>
    <dc:creator>Matthias Drobnitzky</dc:creator>
    <dc:date>2025-03-18T13:43:49Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3367474">
    <title>Attempts at defining an efficient Multiplex graph structure</title>
    <link>https://community.wolfram.com/groups/-/m/t/3367474</link>
    <description>Hello,&#xD;
&#xD;
My goal is to define a multi-layer graph structure with some basics operations such as (Vertex/EdgeList, AdjacencyList, Edge/VertesCount, MultiGraphPlot...) in Mathematica/WolframLanguage.&#xD;
&#xD;
A multi-layer graph (or multiplex graph) G(X, E1, E2, ..., EN) is defined by a single set of vertices X and multiple sets of edges (directed or not) E1, E2, ... EN.&#xD;
&#xD;
Various representations may be used to represent such graphs:&#xD;
&#xD;
![Multiplex grpah representaiton: On the left a representation using layers and on the right a projected view of the graph.][1]&#xD;
 *On the left a representation using layers and on the right a projected view of the graph.*&#xD;
&#xD;
I have done few attempts I want to share with the community in the case I missed something or I get usefull advices.&#xD;
&#xD;
To run the tests lets define a to toy dataset:&#xD;
&#xD;
    individuals = { 1, 2, 3};&#xD;
    friendWith = { 1 \[UndirectedEdge] 2};&#xD;
    workWith = { 1 \[UndirectedEdge] 2};&#xD;
&#xD;
**First attempt : Staying as closed as possible from the Graph function/primitive of the language:**&#xD;
&#xD;
First observation: **Graph[...]** supports multi-edges so we can have a graph with multiple edges linking two vertices if these two vertices are linked in multiple layers.&#xD;
&#xD;
    g = Graph[&#xD;
      		individuals,&#xD;
      		Join[&#xD;
       			friendWith,&#xD;
       			workWith&#xD;
       		],&#xD;
      		VertexLabels -&amp;gt; &amp;#034;Name&amp;#034;&#xD;
      	]&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
At this point we want to differenciate the edges according to the layer they are part of.&#xD;
&#xD;
Mathematica allows edge labeling:&#xD;
&#xD;
    g = Graph[&#xD;
      		individuals,&#xD;
      		Join[&#xD;
       			Map[ Labeled[#, &amp;#034;friendWith&amp;#034;] &amp;amp;, friendWith],&#xD;
       			Map[ Labeled[#, &amp;#034;workWith&amp;#034;] &amp;amp;, workWith]&#xD;
       		],&#xD;
      		VertexLabels -&amp;gt; &amp;#034;Name&amp;#034;&#xD;
      	]&#xD;
![enter image description here][3]&#xD;
&#xD;
Unfortunately only the last labeling is stored. Mathematica seems to maintain a unique general list of the egde labels making impossible to differenciate them this way.&#xD;
&#xD;
This option seems to be a dead way.&#xD;
&#xD;
**Second attempt : Defining a meta structure**&#xD;
&#xD;
An tedious alternative is to introduce a custom data structure like:&#xD;
&#xD;
    MutliGraph::usage=&amp;#034;MutliGraph[ g1_Graph, g2_Graph, ..., gN_Graph] represents a multilayer graph&amp;#034;;&#xD;
&#xD;
And recoding the basics services we need:&#xD;
&#xD;
    EdgeLists[ graphs_MultiGraph ] := Map[ EdgeList, List @@ graphs ] ;&#xD;
    MultiGraph /: EdgeList[ graphs_MultiGraph ] := Join @@ EdgeLists[ graphs ] ;&#xD;
    &#xD;
    VertexLists[ graphs_MultiGraph ] := Map[ VertexList, List @@ graphs ]&#xD;
    MultiGraph /: VertexList[ graphs_MultiGraph ] := Union @@ VertexLists[ graphs ] ;&#xD;
    &#xD;
    AdjacencyLists[ graphs_MultiGraph ] := Map[ AdjacencyList, List @@ graphs ] ;&#xD;
    MultiGraph /: AdjacencyList[ graphs_MultiGraph ] := AdjacencyList @ Graph[ VertexList[ graphs ] , EdgeList[ graphs ] ] ;&#xD;
    &#xD;
    EdgeCounts[ graphs_MultiGraph ] := Map[ EdgeCount, List @@ graphs ] ;&#xD;
    MultiGraph /: EdgeCount[ graphs_MultiGraph ] := Total @ EdgeCounts @ graphs ;&#xD;
    &#xD;
    MultiGraph /: Subgraph[ graphs_MultiGraph, selection_ ] := Apply[ MultiGraph, Map[ Subgraph[ #, selection ] &amp;amp;, List @@ graphs ] ] ;&#xD;
    &#xD;
This second option do the job but is way less flexible.&#xD;
&#xD;
I thank everyone reading this and I would be gratefull for any advice.&#xD;
&#xD;
Regards,&#xD;
&#xD;
Guillaume&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=multiplex_graph.png&amp;amp;userId=3363970&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=multiedge_graph.png&amp;amp;userId=3363970&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=multilabelededge_graph.png&amp;amp;userId=3363970</description>
    <dc:creator>Guillaume Santini</dc:creator>
    <dc:date>2025-01-30T15:35:25Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3362737">
    <title>Change the font of the TokenLabels</title>
    <link>https://community.wolfram.com/groups/-/m/t/3362737</link>
    <description>Hi, How can I increase or change the format of the tokenlabels in this graph:&#xD;
&#xD;
    graph = ResourceFunction[&amp;#034;TokenEventGraph&amp;#034;][reactions, &#xD;
       startingMolecules, 1, &amp;#034;EventDeduplication&amp;#034; -&amp;gt; True, &#xD;
       &amp;#034;EventLabeling&amp;#034; -&amp;gt; &amp;#034;Colors&amp;#034;, &amp;#034;TokenDeduplication&amp;#034; -&amp;gt; True, &#xD;
       &amp;#034;TokenLabeling&amp;#034; -&amp;gt; True, GraphStyle -&amp;gt; Automatic, &#xD;
       GraphLayout -&amp;gt; {&amp;#034;SpringElectricalEmbedding&amp;#034;, &amp;#034;StepLength&amp;#034; -&amp;gt; 5}, &#xD;
       VertexSize -&amp;gt; Big, EdgeStyle -&amp;gt; {Arrowheads[Medium]}, &#xD;
       ImageSize -&amp;gt; {1500, 1500}, VertexLabels -&amp;gt; None];&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=graph_visualization.png&amp;amp;userId=3362723</description>
    <dc:creator>Valentina Sierra Jimenez</dc:creator>
    <dc:date>2025-01-23T00:53:11Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3357243">
    <title>How to drag a vertexlabel in a graph with the mouse?</title>
    <link>https://community.wolfram.com/groups/-/m/t/3357243</link>
    <description>I like to put the cursor on a vertexlabel in a social network made by graph, and drag it a bit to prevent overlapping labels?</description>
    <dc:creator>Ronald Aarts</dc:creator>
    <dc:date>2025-01-15T17:45:40Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3349757">
    <title>Performance of Large-ish graphs with weighted edges</title>
    <link>https://community.wolfram.com/groups/-/m/t/3349757</link>
    <description>Hi, I&amp;#039;d been trying to solve the Advent of Code 2024 problems using WL and in particular using graphs where it made sense. One of the solutions I came up with involved creating a 141x141 grid graph, deleting some vertices (leaving ~7000), then adding about 5000 edges.&#xD;
&#xD;
I got a version of this working so that it made one call to VertexDelete and one call to EdgeAdd and then 5000 calls to AnnotationValue[]= to set the edge weights. This took about 15 hours to run on my PC, which is just unbelievably slow.&#xD;
&#xD;
After a lot of experimentation with different ways to making this more efficient and adding Print functions everywhere to see exactly what is taking the time, virtually all the time is taken in setting the edge weights. &#xD;
&#xD;
I even tried building a new graph, concatenating the edges from the first graph with the new edges in the form Annotation[edge, EdgeWeight-&amp;gt;1002] and that still takes just as long even though it is one call. If I remove the edgeweight annotation from the new edges, it completes almost immediately.&#xD;
&#xD;
So what&amp;#039;s the deal with graphs with edgeweights being many orders of magnitude slower to build? Note that none of this time includes doing any pathfinding or other graph algorithm. This is 15 hours just to build a graph. Not great.</description>
    <dc:creator>Richard Matthias</dc:creator>
    <dc:date>2025-01-02T22:33:55Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3331113">
    <title>Time to extract vertex coordinates from a graph</title>
    <link>https://community.wolfram.com/groups/-/m/t/3331113</link>
    <description>I am making large graphs (&amp;gt;400000 vertices) of modest density (6% possible edges).  I am embedding them in 2d with the spring-electric embedding and need the coordinates.  It runs, what appears to me to be quite slowly.  Any thoughts.  Note I would have embedded the example notebook, but it was too large.  Note this is my first post, so apologies for errors in protocol.  Thank you.&#xD;
&#xD;
    ClearSystemCache[]&#xD;
    &#xD;
    Timing[g=RandomGraph[{400000,24000000}]]&#xD;
    &#xD;
    Timing[g=Graph[g, GraphLayout-&amp;gt;&amp;#034;SpringElectricalEmbedding&amp;#034;];]&#xD;
    &#xD;
    Timing[vertexLocations=ResourceFunction[&amp;#034;VertexCoordinateList&amp;#034;][g];]&#xD;
    &#xD;
    Out[6]= {1.95313,Graph[Vertex count: 400000, Edge count: 24000000]}&#xD;
    &#xD;
    Out[7]= {0.,Null}&#xD;
    &#xD;
    Out[8]= {67.6563,Null}</description>
    <dc:creator>Robert Lipshutz</dc:creator>
    <dc:date>2024-11-30T16:45:54Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3174022">
    <title>Is there any current work on the quantum circuit operator function to handle hypergraphs directly?</title>
    <link>https://community.wolfram.com/groups/-/m/t/3174022</link>
    <description>In the Quantum Framework it is possible to display quantum circuits based on a list of edges from pairwise graphs. If one wished to do this for a hypergraph (which can have edges containing more than two vertices) one currently must convert the hypergraph into a graph as I understand things. Is there a way to have the Quantum Circuit Operator handle hypergraphs directly without having to perform this conversion? What might be needed in order to allow for this functionality? The file attached shows the current method.&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][1]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/5f2eb855-f29f-4ab6-863a-8c393be04568</description>
    <dc:creator>Jeffrey Tate</dc:creator>
    <dc:date>2024-05-10T17:18:19Z</dc:date>
  </item>
</rdf:RDF>

