PyCon JP 2025 Logo
広島国際会議場
JPEN
Hayao Suzuki

Hayao Suzuki

明日からgraphlib、みんなで使おう

ダリア2日本語
04:30 - 05:0030min
DAY 1
09/26
FRI

Python 3.9で標準ライブラリにgraphlibが追加されました。graphlibはグラフ理論におけるグラフのトポロジカルソートを行うライブラリです。グラフ理論におけるグラフとは何か、トポロジカルソートとは何にか、結局graphlibは何に使えるのか、すべて(なるべく)解説します。明日からgraphlib、みんなで使おう。


トーク詳細 / Description

導入

Python 3.9で標準ライブラリにgraphlibが追加されました。 しかし、公式ドキュメントにはgraphlibが導入されたモチベーションや利用例に乏しく、すでにトポロジカルソートの存在を知っている人しか使えないライブラリになっています。 結局、graphlibは何に使えるのか、電池が液漏れする前に(なるべく)すべて解説します。

グラフ理論速習

graphとは数学のグラフ理論におけるグラフを意味します。 グラフとは(大雑把に説明すれば)物事とその関係性を数学的にモデル化したものであり、鉄道網における駅と線路、人間関係における人間と友人関係など、日常生活においてグラフでモデル化できるものはたくさんあります。

  • グラフとは
  • 無向グラフと有向グラフ(今回扱うのは有向グラフ)
  • 線型順序について(半順序関係、全順序関係)

トポロジカルソート、有向非巡回グラフ(DAG)について

任意のグラフがトポロジカルソートできるわけではありません。 グラフが有向非巡回グラフであることと、グラフがトポロジカルソート可能であることは同義であることを説明します。

  • 有向非巡回グラフの定義
  • トポロジカルソートの定義
  • グラフが有向非巡回グラフであることと、グラフがトポロジカルソート可能であることは同義

graphlibの使い方

ここまで理解できれば、明日からgraphlibを使えるようになります。 少なくとも、頭の片隅にgraphlibが入り、必要になった瞬間に思い出せるようになります。

  • graphlibの使い方
  • 応用例: タスクの処理
  • 応用例: クラスの関係
Hayao Suzuki

Hayao Suzuki

プロフィール

電気通信大学大学院 情報理工学研究科 総合情報学専攻 博士前期課程修了、修士(工学)。 現在は東京ガス株式会社にてソフトウェアエンジニアとして勤務しつつ、東京ガス吹奏楽団でチューバを吹いたり、技術書の翻訳をしたりしている。 翻訳書に『ハイパーモダンPython』『Python Distilled』、監修書に『Pythonクイックリファレンス 第4版』、監訳書に『ロバストPython』『入門Python 3 第2版』(いずれもオライリー・ジャパン)、共著書に『Pythonプロフェッショナルプログラミング 第4版』(株式会社ビープラウド著、秀和システム)がある。