Ni! Hello Phillip,

Don't think there's a boxed method for this task, but you can easily
improve your algorithm, though that is no longer a question for graph-tool.

Two possible ways to improve it:

* you could use the fact that the min() function in Python takes an
iterable as argument, and pass it something like the generator below:

# chain must be imported from itertools
for v in g.vertices():
    g.vp.year[v] = min( g.ep.year[e] for e in chain(v.out_edges(),
v.in_edges()) )

* you could iterate only once over g.edges() and then, update the g.vp.year
of source and target for each edge.

I would go with something like this:

# this assumes g.vp.year was initlized to a large value by passing 'val' to
for e in g.edges():
    for v in (e.source(),
        if g.vp.year[v] > g.ep.year[e]:
            g.vp.year[v] = g.ep.year[e]

Yet again, this has little to do with graph tool, you might prefer to look
for advice in general programming.



On Fri, Sep 16, 2016 at 1:57 PM, P-M <> wrote:

> I have a network where each of my edges is labelled with a date. I want to
> now also label my vertices so that each vertex has a date assigned to it
> corresponding to the minimum date of all edges incident and emanating from
> it. Is there an inbuilt function to find this which would be faster than me
> looping over all vertices and then all edges for each vertex manually? My
> current code idea is:
> lowest_year = 2016
> for v in g.vertices():
>    for e in v.in_edges():
>       year = g.ep.year[e]
>       lowest_year = min(year,lowest_year)
>    for e in v.out_edges():
>       year = g.ep.year[e]
>       lowest_year = min(year,lowest_year)
>    g.vp.year[v]=lowest_year
>    lowest_year = 2016
> --
> View this message in context: http://main-discussion-list-
> minimum-value-of-edge-property-for-all-edges-connected-to-a-given-node-
> tp4026722.html
> Sent from the Main discussion list for the graph-tool project mailing list
> archive at
> _______________________________________________
> graph-tool mailing list
graph-tool mailing list

Reply via email to