ó
    …~i(	  ã                   óz   • S r SSKrSSKJrJr  S/r\" S5      \" S5      \R                  SS j5       5       5       rg)	z=
Algorithm to find a maximal (not maximum) independent set.

é    N)Únot_implemented_forÚpy_random_stateÚmaximal_independent_setÚdirectedé   c           	      óô  • U(       d  UR                  [        U 5      5      1nO[        U5      nUR                  U 5      (       d  [        R
                  " U S35      e[        R                  " U Vs/ s H  n[        U R                  U   5      PM     sn6 n[        R                  XA5      (       a  [        R
                  " U S35      e[        U5      n[        U R                  5       5      R                  UR                  U5      5      nU(       a_  UR                  [        U5      5      nUR                  U5        UR                  [        U R                  U   5      U/-   5        U(       a  M_  U$ s  snf )a—  Returns a random maximal independent set guaranteed to contain
a given set of nodes.

An independent set is a set of nodes such that the subgraph
of G induced by these nodes contains no edges. A maximal
independent set is an independent set such that it is not possible
to add a new node and still get an independent set.

Parameters
----------
G : NetworkX graph

nodes : list or iterable
   Nodes that must be part of the independent set. This set of nodes
   must be independent.

seed : integer, random_state, or None (default)
    Indicator of random number generation state.
    See :ref:`Randomness<randomness>`.

Returns
-------
indep_nodes : list
   List of nodes that are part of a maximal independent set.

Raises
------
NetworkXUnfeasible
   If the nodes in the provided list are not part of the graph or
   do not form an independent set, an exception is raised.

NetworkXNotImplemented
    If `G` is directed.

Examples
--------
>>> G = nx.path_graph(5)
>>> nx.maximal_independent_set(G)  # doctest: +SKIP
[4, 0, 2]
>>> nx.maximal_independent_set(G, [1])  # doctest: +SKIP
[1, 3]

Notes
-----
This algorithm does not solve the maximum independent set problem.

z" is not a subset of the nodes of Gz is not an independent set of G)ÚchoiceÚlistÚsetÚissubsetÚnxÚNetworkXUnfeasibleÚunionÚadjÚintersectionÚnodesÚ
differenceÚappendÚdifference_update)ÚGr   ÚseedÚvÚ	neighborsÚindep_nodesÚavailable_nodesÚnodes           ÚT/home/mande/repo/quber/.venv/lib/python3.13/site-packages/networkx/algorithms/mis.pyr   r      s'  € öf Ø—‘œT !›WÓ%Ð&‰ä�E“
ˆØ�>‰>˜!×ÑÜ×#Ò# u gÐ-OÐ$PÓQÐQÜ—	’	±5Ó9²5¨aœC §¡ a¡žM±5Ñ9Ð:€IÜ
×Ñ˜	×)Ñ)Ü×#Ò# u gÐ-LÐ$MÓNÐNÜ�u“+€KÜ˜!Ÿ'™'›)“n×/Ñ/°	·±ÀÓ0FÓG€OÞ
Ø�{‰{œ4 Ó0Ó1ˆØ×Ñ˜4Ô Ø×)Ñ)¬$¨q¯u©u°T©{Ó*;¸t¸fÑ*DÔE÷ ˆ/ð Ðùò :s   Á2"E5)NN)	Ú__doc__Únetworkxr   Únetworkx.utilsr   r   Ú__all__Ú_dispatchabler   © ó    r   Ú<module>r%      sN   ðñó
 ß ?à$Ð
%€ñ �ZÓ Ù�ÓØ×Ñó?ó ó ó !ñ?r$   