Portál AbcLinuxu, 30. dubna 2025 16:55
Nx-algs je nástroj pro usnadnění výuky grafových algoritmů a obecně hraní si s grafy. Je postavený nad knihovnou NetworkX a ovládaný z pythonu. Rád se od vás dozvím, co si o něm myslíte, zda vám bude k něčemu dobrý nebo jaké funkce byste rádi v budoucnosti viděli :)
Nejvíce se toho dozvíte na homepage nx-algs. Prográmek vznikl jako zápočtový projekt do předmětu Programování II a můj cíl bylo nějak vizualizovat znalosti nabyté v algoritmech a datových strukturách 1 - takže si můžete vyrobit jakýkoliv graf a potom pozorovat, jak se na něm bude chovat prohledávání do šířky, do hloubky, Dijkstra, Kruskal a podobně. To je první záměr - aby si mohli studenti vyzkoušet, jak se ty algoritmy chovají na grafech, které se vymyslí.
Pochopitelně ten algoritmus musí někdo napsat - to je druhý záměr nx-algs - zjednodušit vytváření takového výukového algoritmu. Když se podíváte na kapitolku o psaní algoritmu, můžete posoudit sami, jak se to povedlo.
Nx-algs je prográmek velmi mladý a určitě ještě plný chyb všeho druhu (naneštěstí i některých chyb v návrhu), za které se v první řadě omlouvám a v druhé řadě vás prosím o jejich hlášení. Taky budu rád za jakékoliv nápady na vylepšení, další funkce a podobně (v další verzi bych například rád jednoduché GUI a něco, co by zpohodlnilo práci s hranami, které obsahují nějaká data - vyrobit graf s ohodnocenými hranami je zatím tak trochu utrpení). Ask me anything.
P.S.: Python, NetworkX a Sphinx jsou super!
Tiskni
Sdílej:
Zaujimave :) Pripomina mi to NodeBox, na ktory som vcera nahodou narazil.
Díky :) Některé věci, které NodeBox umí s grafy by se mi taky moc líbily. Ale celkově mám pocit, že je NodeBox příliš zaměřený na to, jak bude výsledek vypadat - ne že by to nebylo důležité, ale potom je v kódu algoritmu více stylování a grafiky než samotného algoritmu. Tenhle poměr se snažím držet na minimu. Každopádně bych chtěl, aby i ty obrázky vypadaly co nejlépe - pro začátek by to mohl být nějaký chytřejší (méně křížení) layout, nejradši bych aby byla nějaká možnost zobrazit si graf a natahat vrcholy kam se mi zachce s tím, že si podle toho on ten layout upraví. Ne že by to nešlo, jen jsem prakticky ještě k programování GUI nečuchnul a tohle by bylo docela velké sousto na začátek... konec meditace :)
NetworkX umí použít pygraphviz na generování layoutu, ale to musí být pygraphviz přítomný a musí to zrovna fungovat (narážím na to, že asi ještě neopravili chyby způsobené změnou reprezentace dat na hraně). Když jsem to ale zkoušel na grafy, se kterými to fungovalo, vypadalo to slibně. Zkusím to někdy čistě graphvizem a pokud v tom bude nějaký rozdíl, třeba to implementuju :)
No podla celej stranky mam pocit, ze NodeBox je jednoducho zamerany skor na umenie a umelecku tvorbu.. Je to asi sw z trochu ineho sudku, len som sa s nim prave hral, ked som videl tvoj blog.
Asi to bude hlavní účel, ale když se kouknu na Graph, tak by se to dalo v pohodě využít na to, co dělám já, a ještě by to mělo nějaké výhody navíc - animace, oblé hrany a podobně, takže čistě na umění to asi není. Kdyby to nebylo jen pro Mac, tak bych si to určitě vyzkoušel, takhle mám asi smůlu :/
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.