指导项目#

本页面列出了指导项目想法,供有兴趣为 NetworkX 项目贡献的贡献者参考。如果您有其他想法,欢迎在 NetworkX GitHub 讨论页面 提出。

这些想法可作为 Google Summer of Code、Outreachy、NumFOCUS 小型开发资助以及大学课程/项目学分(如果您的大学允许为开源贡献获得学分)的项目。

NetworkX 中实现的算法的教学互动笔记本#

  • 摘要:NetworkX 实现了 多种算法。尽管算法有详细文档,但算法背后的思想解释通常缺失。我们希望收集这些思想,编写 Jupyter 笔记本以阐明这些想法并实验性地探索算法,然后将笔记本发布到 networkx/notebooks。目标是让读者对标准网络科学和图论算法有更深入的理解,并鼓励他们深入研究该主题。

  • 推荐技能:Python、Jupyter 笔记本、图算法。

  • 预期成果:一系列交互式 Jupyter 笔记本,向 NetworkX 的读者和用户解释和探索网络算法。例如,请参阅关于几何生成模型的此笔记本。

  • 复杂度:取决于您有兴趣研究的算法。

  • 感兴趣的导师:@MridulS, @rossbar

  • 预计时间投入:本项目可以是中等项目(约 175 小时)或大型项目(约 350 小时)。对于中等时长的项目,贡献者预计贡献 2-3 个教学互动笔记本;对于长时长的项目,预计贡献 4-5 个笔记本。

使用 Matplotlib 的可视化 API#

  • 摘要:NetworkX 提供了一些使用 Matplotlib 渲染图像的基本绘图工具。Matplotlib 已发生变化,但其 API 尚未更新。我们还添加或正尝试添加新功能,尤其是在绘制边方面。我们希望有人深入研究我们和 Matplotlib 各自提供的功能,并提出一种让用户能够灵活绘制图形且具有良好默认设置的优雅方式。仅一个广泛的主题在一个夏天内完成的可能性不大,但制定路线图并取得实质性进展是可行的。

  • 推荐技能:Python、Matplotlib 使用经验。

  • 预期成果:NetworkX 中 Matplotlib 工具的优化 API 路线图,以及以拉取请求 (PR) 形式的代码,该代码实现(部分)该 API 并包含测试。

  • 感兴趣的导师:@dschult, @rossbar

  • 预计时间投入:本项目将是一个为期 10 周的全职项目(约 350 小时)。

集成用于 ISMAGs 同构计算的 Python 库#

  • 摘要:来自 Sandia Labs 的一个团队已将 ISMAGs 同构例程的原始 Java 实现转换为 Python。他们邀请我们如果感兴趣的话,将该代码集成到 NetworkX 中。我们希望有人学习我们当前提供的 ISMAGs 代码以及这个新库的代码,并确定将来最适合包含在 NetworkX 中的组合。这可能是两个独立的工具子包,或者更有可能是两组代码的组合,或者结合了双方优良特性的第三种实现方式。

  • 推荐技能:Python、图算法。

  • 预期成果:关于如何将 ISMAGs 最好地集成到 NetworkX 中的计划,以及实现集成的代码。

  • 感兴趣的导师:@dschult, @rossbar

  • 预计时间投入:本项目将是一个为期 10 周的全职项目(约 350 小时)。

中心性图集#

  • 摘要:本项目目标是全面回顾网络中心性度量。中心性是网络科学的核心概念,在各个领域有许多应用。NetworkX 提供了许多函数来衡量各种类型的网络中心性。各个中心性函数通常在文档字符串中有很好的描述(尽管总有改进空间!);然而,目前没有对中心性进行全面的概述。此外,许多中心性度量密切相关,但没有文档描述这些关系。

  • 推荐技能:Python、文献回顾、技术写作

  • 预期成果:一份可执行文档,提供网络中心性度量的概述和应用。潜在产出包括(但不限于):一篇用于 nx-guides 的文章(参见上文)和/或一个中心性度量示例画廊。

  • 感兴趣的导师:@dschult, @rossbar

  • 预计时间投入:可变,但高质量的评论文章预计需要几个月的专门研究(约 350 小时)。

已完成项目#