code: def build_feedback_edge_set(edges, fixed_edges)
        edges             = edges.dup
        acyclic_edges     = fixed_edges.dup
        feedback_edge_set = []
  
        while edges.present?
          edge = edges.shift
          if detect_cycle(edge, acyclic_edges)
            feedback_edge_set << edge
          else
            acyclic_edges << edge
          end
        end
  
        feedback_edge_set
      end
docs: Builds a feedback edge set, which is a set of edges creating a cycle
  
   @param edges [Array<Array>] List of edges, where edge is defined as [InventoryCollection, InventoryCollection],
          these are all edges except fixed_edges
   @param fixed_edges [Array<Array>] List of edges, where edge is defined as [InventoryCollection, InventoryCollection],
          fixed edges are those that can't be moved