Ticket #12136: trac_12136.patch

File trac_12136.patch, 1.8 KB (added by fichtejo, 17 months ago)
  • sage/graphs/digraph.py

    # HG changeset patch
    # User Johannes Klaus Fichte <fichte@kr.tuwien.ac.at>
    # Date 1324621964 -3600
    # Node ID 092dc01ded091da2bae330d4e9b20e320f85d039
    # Parent  df5620969fbddef0cf191407d046c2ed522d6a49
    Ticket #12136
    FVS function in DiGraph returns [0] instead of [] if already directed acyclic
    -> feedback vertex set returns empty list, if the graph is directed acyclic
    
    diff --git a/sage/graphs/digraph.py b/sage/graphs/digraph.py
    a b  
    14511451                 
    14521452                b_sol=p.get_values(b) 
    14531453                 
    1454                 from sage.sets.set import Set 
    1455                 return Set([(u,v) for (u,v) in self.edges(labels=None) if b_sol[(u,v)]==1]) 
     1454                return [(u,v) for (u,v) in self.edges(labels=None) if b_sol[(u,v)]==1] 
    14561455 
    14571456    def feedback_vertex_set(self, value_only=False, solver=None, verbose=0, constraint_generation = True): 
    14581457        r""" 
     
    15731572        if self.is_directed_acyclic(): 
    15741573            if value_only: 
    15751574                return 0 
    1576  
    1577             from sage.sets.set import Set 
    1578             return Set([0]) 
     1575            return [] 
    15791576 
    15801577        from sage.numerical.mip import MixedIntegerLinearProgram, Sum 
    15811578 
     
    16271624            else: 
    16281625             
    16291626                # listing the edges contained in the MFAS 
    1630                 from sage.sets.set import Set 
    1631                 return Set([v for v in self if p.get_values(b[v]) > .5]) 
     1627                return [v for v in self if p.get_values(b[v]) > .5] 
    16321628 
    16331629 
    16341630        else: 
     
    16581654                p.solve(log=verbose) 
    16591655                b_sol=p.get_values(b) 
    16601656 
    1661                 from sage.sets.set import Set 
    1662                 return Set([v for v in self if b_sol[v]==1]) 
     1657                return [v for v in self if b_sol[v]==1] 
    16631658 
    16641659 
    16651660    ### Construction