Git Product home page Git Product logo

quickgraph's Introduction

QuickGraph NuGet Status

QuickGraph provides generic directed/undirected graph datastructures and algorithms for .NET.

QuickGraph comes with algorithms such as depth first seach, breath first search, A* search, shortest path, k-shortest path, maximum flow, minimum spanning tree, etc.

QuickGraph was originally created by Jonathan "Peli" de Halleux in 2003.

Branch .NET
Master master .NET Build Status
GraphTasks GraphTasks .NET Build Status

Contributing

Build

  • Clone this repo.
  • Install Pex from lib/Pex.
  • Install CodeContracts from lib/DotNet.CodeContracts.
  • Use build.cmd for build.
  • Use Visual Studio 2015 for development.

Where to go next?

Maintainer(s)

quickgraph's People

Contributors

alexeyrabochy avatar anastasiasulyagina avatar anastasiyaragozina avatar ascherbakhov avatar auduchinok avatar baygeldin avatar bronti avatar denis-chusovitin avatar dimart avatar discodancer avatar edugeekey avatar egorgumin avatar fedorovr avatar gorohovart avatar govorukhaoksana avatar gsvgit avatar ivanovandrew avatar jnyrup avatar kseniya-gonta avatar ktnr avatar marat-rkh avatar melentyev avatar mikesurface avatar molchanovart avatar mtashkinov avatar phil-dolgolev avatar polubelova avatar resaglow avatar rhishi avatar romanbelkov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quickgraph's Issues

Restore PCL build

Restore PCL build.

  • F# projects must be supported.
  • MS VS 2015 and higher should be supported.
  • Mono build should be supported.
  • .Net Core (?) Investigate first.

Clique partition

Реализовать алгоритм построение клик.

Visualising support

So, why did quickGraph end its convertion to MSAGL support, but instead chose GLEE? As far as i know, GLEE transformed into MSAGL, and to download GLEE itself you must find a microsoft download page last updated in 2007. And It is not possible to create a MSAGL graph now, am i right?

Logo

Create a cool logo.

Хроматический многочлен

  • Реализовать алгоритм построения хроматического многочлена
  • Визуализация процесса построения хроматического многочлена

Question: What's new and what about performance?

Hi,
First thanks for making this available on GitHub! I am new to quickgraph which I discovered recently. And I saw this fork tonight. I have two questions if you do not mind:

  1. What is new with respect to the original one?
  2. Can this be used in some way as a graph database (sorry I did not go through the src, yet)? Is it optimized for search (indexed, binary search or so)?
    Thanks!

Transitive Reduction Algorithm

Hey,
I have had a need to use transitive reduction algorithm for some project I am working on. I am willing to contribute the code I used inspired by some matlab library I found(It is based off of V3.0 ). Not sure I will have enough time to implement proper testing thought.

Would that we OK for me to submit a PR ?

Thanks!

General components for graph processing with GPGPU

Визуализация алгоритмов Прима и Краскала

  • Реализовать алгоритм Прима
    • Реализацию Прима "положить" рядом с Краскалом: src/QuickGraph/Algorithms/MinimumSpanningTree
  • Визуализировать алгоритм Прима
  • Визуализировать алгоритм Краскала

What should we do with Pex?

Really. What should we do?

  • Remove it in order to make library compatible with mono, .NET Core, etc
  • Migrate to VS-2015 IntelliTest
  • Migrate to FsCheck
  • Something else?

Визуализация обходов графа

  • алгоритм Дейкстры
    • /src/QuickGraph/Algorithms/ShortestPath
  • обход в ширину
    • \src\QuickGraph\Algorithms\Search\
  • обход в глубину
    • \src\QuickGraph\Algorithms\Search\

CompressedSparseRow bug

While looking through sources in file https://github.com/YaccConstructor/QuickGraph/blob/master/src/QuickGraph/CompressedSparseRowGraph.cs I've noticed that the method FromGraph seems likely not to work due to the fact that start variable isn't updated after initialization.

I've confirmed my suspicions: I've run Topological sort on adjacency graph (it turned out OK), then converted that graph to CSR and run on that - it throws QuickGraph.NonAcyclicGraphException

Sample code:

            // a simple adjacency graph representation
            int[][] graph = new int[5][];
            graph[0] = new int[] {  };
            graph[1] = new int[] { 2, 3 };
            graph[2] = new int[] { 3, 0 };
            graph[3] = new int[] { 0 };
            graph[4] = new int[] { 1 };

            // interoping with quickgraph
            var g = GraphExtensions.ToDelegateVertexAndEdgeListGraph(
                Enumerable.Range(0, graph.Length),
                v => Array.ConvertAll(graph[v], w => new SEquatableEdge<int>(v, w))
            );
            
            // it's ready to use!
            foreach (var v in g.TopologicalSort())
                Console.WriteLine(v);
            
            var csr = CompressedSparseRowGraph<int>.FromGraph(g);
            foreach (var vertex in csr.TopologicalSort())
            {
                Console.WriteLine(vertex);
            }

P.S. It turned out that there's no sense for me in using QuickGraph's CSR anyway, so I just want to report this.

Dotnet core?

Do you have any plans to port Quickgraph to be usable in dotnet core?

Partitioning and clusterization

"Official" QuickGraph distribution / history?

Is this is "official" descendant of the original QuickGraph project which was hosted on https://quickgraph.codeplex.com/ ?

This project is described as a fork... which seems a little ambiguous. I'm not sure if I should use the libraries distributed here vs. using the original (and older?) versions from CodePlex, or if there is some other alternative?

Thank you

Алгоритм Йена

  • Реализовать алгоритм Йена поиска k кратчайших путей.
  • Визуализировать алгоритм
  • реализовать пожелания

HoffmanPavleyRankedShortestPathAlgorithm.ToString()

The ToString in HoffmanPavleyRankedShortestPathAlgorithm is implemented as

public override string ToString()
{
    return String.Format("{0} at {1} {2}", this.Weight, this.DeviationEdge);
}

This will obviously throw an exception as the number of arguments doesn't match the expected number in the format string.

As I'm not sure what the intended format is, I haven't submitted a PR to fix this.

Интерфейс для визуализации алгоритмов

Создать пользовательский интерфейс для визуализации алгоритмов на графах.

  • Чтение данных из dot
    • Переместить DotParserProject в общую структуру (\src\QuickGraph.)
    • Больше тестов. Уже всплыла как минимум одна проблема: YaccConstructor/YaccConstructor#145. Смотреть первое сообщение.
    • из файла
    • текстовое окно ввода
  • GraphX для отрисовки графов
    • Реализовать конвертер графов QuickGraph в графы GraphX
  • Для раскладки комнонент использовать avalonDock
  • Возможность пошагового проигрывания алгоритма
  • Список доступных алгоритмов
  • Расширяемость списка алгоритмов

Проверка свойств графа

Реалиизовать и визуализировать алгоритмы проверки

  • эйлеровости графа
  • гамильтоновости графа
    • обязательно реализовать алгебраический метод.

Domatic partition

Partition of vertices into disjoint dominating set. Calculate domatic number.

Documentation

We need a good documentation.
We have own site.
There is an original documentation.
What we should do.

  • Create auto generated documentation.
  • Improve auto generated documentation (add more informative comments in code).
  • Migrate important parts (basic examples at most) of original documentation to our site.

Latest release on Nuget (3.7.3)

The latest package version available on NuGet.org is 3.7.3, which is some way behind what's currently been merged to master in this repo. Is there any chance a new package can be published with the latest changes (assuming master is release-able)?

We're currently using some of the features from master (ComputeTransitiveReduction etc) which are not in the 3.7.3 release, and not having to create our own internal package would be great.

Reorganize YC.FST

  • Move fsa to src/QuickGraph.FSA
  • Move fst to src/QuickGraph.FST
  • Move tests to tests/QuickGraph.***.Tests
  • Add all projects to QuickGraph.sln
  • Replace refs to QuickGraph package with direct refs to appropriate projects.

Release

  • #3
  • Automate NuGet package(s) creation and publication
  • Publish new version!

Bidirectional Breadth First Search?

I see a BidirectionalDepthFirstSearchAlgorithm but not a BidirectionalBreadthFirstSearchAlgorithm.

Any particular reason why not?

I have a use for it and wouldn't mind implementing it myself unless there's a reason not to do it.

Визуализация алгоритмов построения связанных компонент

  • Реализовать на основе существующих алгоритмов их модификации, возвращающие компоненты связанности в виде готовых графов (сейчас возвращается коллекция вершин с указанием того, какой компоненте она принадлежит)
  • Визуализация алгоритмов построения связанных компонент
    • Связанные
    • Сильно связанные
    • Слабо связанные

/src/QuickGraph/Algorithms/ConnectedComponents

Assembly signing issue

Hi,
I have installed the NuGet Package using> Install-Package YC.QuickGraph
Afterwards I tried to run the application, but it seems that the assemblies are not signed, because I receive the following exception:

System.IO.FileLoadException: 'Could not load file or assembly 'YC.QuickGraph, Version=3.7.3.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)'

All my assemblies are signed and usually frameworks have signed assemblies and I would rater avoid cloning the repository to build and sign the assemblies.

Can you please fix this and release a new version on NuGet?

Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.