Constructors for 2.0
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
Direzione di ricerca
Inizia esaminando i costruttori SimpleGraph elencati e le firme proposte di Graph e MultiGraph. Confronta come dovrebbero essere rappresentate le collezioni di vertici, le matrici di adiacenza, gli elenchi di archi, i generatori e i multigrafi nell’API 2.0. Il lavoro è completato quando si raggiunge un accordo su un design coerente dei costruttori; questo issue è un thread di discussione, non un’attività di implementazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Here is a thread for discussing the constructors for Graphs 2.0
Current constructors
Constructors for SimpleGraph
SimpleGraph{T}(): empty graphSimpleGraph{T}(nv::Integer): graph with no edgesSimpleGraph{T}(nv::Integer, ne::Integer): random graph (erdos-renyi)SimpleGraph(::Type{T}): empty graphSimpleGraph(nv::Integer, ne::Integer, edgestream::Channel): add edges from the stream until stream end or we reachneedges.SimpleGraphFromIterator(edgelist)SimpleGraph(adjmx::AbstractMatrix)SimpleGraph{T}(g::AbstractGraph)SimpleGraph(edge_list::Vector{SimpleGraphEdge{T}})
Goals for 2.0
We will have a new concrete graph type Graph{V} which can represent arbitrary vertices.
We would need new constructors to be able to construct such new graphs.
Instead of passing nv, we should provide a list (or even an iterator ?) of the vertices of the graph.
As the type of vertices can be arbitrary, the type signatures of generators can quickly become a mess / incompatible
Also we will need to support multigraphs
My proposal
Graph{V}()andGraph(::Type{V})should be unambiguous- Remove
SimpleGraph{T}(nv::Integer, ne::Integer)(much better to call explicitlyerdos-renyi) - I don't really get this one
SimpleGraph(nv::Integer, ne::Integer, edgestream::Channel), I think It does not add much toSimpleGraphFromIterator - Keep
Graph{T<:Integer}(nv::Integer) - Use keywords for other generators:
Graph{V<:Integer}(adjmx=adjmx)(Multi)Graph{V}(edge_list=edge_list)(Multi)Graph{V}(vertices=vertices)(Multi)Graph{V}(vertices=vertices::Vector{V})Graph{V}(vertices=vertices::Vector{V}, adjmx=adjmx)(Multi)Graph{V}(vertices=vertices::Vector{V}, edge_list=edge_list)
Is this proposal sound?
Do you have some other ideas of generators? A better proposal?
- Lingua principale
- Julia
- Stelle
- 11
- Fork
- 2
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaGraphs/GraphsBase.jl
-
question
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
JuliaGraphs/GraphsBase.jl#28 ·
-
question
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JuliaGraphs/GraphsBase.jl#27 · 1 commento · 1 reazione ·
-
question
Difficoltà 5/5 Più di una settimana Idoneità per principianti 22/100
JuliaGraphs/GraphsBase.jl#26 · 6 commenti · 2 reazioni ·
-
question
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JuliaGraphs/GraphsBase.jl#25 · 3 commenti · 1 reazione ·
-
Fallback on integer verticesApertaquestion
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JuliaGraphs/GraphsBase.jl#24 ·
Tutte le issue di JuliaGraphs/GraphsBase.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
SciML/DiffEqNoiseProcess.jl#342 ·
-
Broken links in the docsAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
oxfordcontrol/COSMO.jl#211 ·
-
documentation
Difficoltà 2/5 Mezza giornata Idoneità per principianti 65/100
I maintainer di solito rispondono entro 6 giorni