【学習メモ】グラフ理論入門の入門

0.はじめに 大学でグラフ理論を勉強する機会があったので学んだことを書きなぐっていきます。グラフ理論は情報工学界隈に限らず、広く一般的に使われている学問領域です。また今回取り上げる内容は表題のとおり、入門中の入門ということで聞いたことがあるという方もいらっしゃることかもしれません。とはいえ、グラフ理論を勉強していくうちにその魅力にとりつかれ、しっかり学んで血となり肉としたいと思い、自分のために勉強したことを書き残していきます。 cf. 帝京大学理工学部(通信教育課程)の社会人大学生1年目をふりかえる | gkzz.dev 1.前提 グラフ理論を勉強する難しさをあげるとしたら、書籍やウェブサイトなど資料によって、「同じことを言っているが、使っている用語が異なる」、さらには「用語のスコープが異なる」こと e.g. ノードと同じ意味:節点、頂点、点 e.g. エッジと同じ意味:枝、辺、線 そこで、本ページではいわゆる用語の定義は参考資料を掲載する程度としたい 本書の位置づけは、「グラフ理論を勉強するとどういった用語を目にすることになるのか?」という、グラフ理論入門の入門とする 2.「グラフ理論」でいわれている「グラフ」とは? ノードの集合とエッジの集合を用いて様々な現象をモデル化したもの ノードは節点、頂点、点ともいう エッジは枝、辺、線ともいう 株価チャートのようなものではない 数字が連続的ではなく、「飛び飛び(離散的)」 2-1.「グラフ」を使って抽象化された一例 電車の乗換案内アプリ 電車の乗換案内アプリを使う目的は、現在地から目的地までの最短経路を知ること ただし、「コスト(グラフ理論的には『重み』)」をキョリ、交通費、交通機関の乗り換え回数などどれにするか? によって答えは変わる! 2-2.グラフの構成要素であるノードやエッジは電車の乗換案内アプリでは、どれに該当するか ノード:駅 エッジ:線路や駅と駅を結ぶ道路 重み:移動コスト(キョリ、交通費、交通機関の乗り換え回数など) 参考: 例題で学ぶグラフ理論 | 安藤 清, 土屋 守正, 松井 泰子 |本 | 通販 | Amazon グラフ (離散数学) - Wikipedia 離散数学とは - コトバンク 3.「グラフ理論」を勉強するとなにがうれしいか 検討対象が膨れ上がってしまうような 「組み合わせ爆発」が起きてしまう問題に対する「向き合い方」 をおさえておくことができる! 後述するオイラーグラフ、ハミルトングラフなど典型的なグラフ構造は、離散的アプローチをするうえでの武器となる いわゆる「一筆書きできるかどうか」の判断も、ルートをしらみつぶしに調べ上げることなくできる 4.「グラフ」の基本的な考え方 ※ 用語説明は以下の書籍と動画に譲りたい。ここではグラフに対する基本的な考え方、見方を挙げていく。 離散数学入門#6: オイラーグラフと郵便配達員問題 - 00:06:41 歩道(walk)、 小道(trail)、道(path)、閉路(cycle)の類似点と相違点について図を用いて分かりやすく解説されていて、おすすめ 例題で学ぶグラフ理論 | 安藤 清, 土屋 守正, 松井 泰子 |本 | 通販 | Amazon 上記の講義動画シリーズで推薦されていた書籍の一つ。他の書籍より自分にはこれが合っていた。 離散数学入門#0: グラフ理論へのイントロダクション,授業ガイダンス・基本的な用語の準備 * 歩道(walk): 頂点から始まり、頂点と辺が交互に結び、頂点で終わる列(頂点や辺の重複があってもよい) * 小道(trail): 辺の重複がない歩道(頂点の重複があってもよい) * 道(path): 辺の重複がない歩道のうち、頂点の重複がないもの * 閉路(cycle): 辺の重複がない歩道のうち、「始点と終点以外」頂点の重複がないもの(始点と終点は重複している) * 回路(circuit): 閉じた小道。辺の重複がない歩道のうち「始点と終点が重複」しているもの ※ 図は離散数学入門#6: オイラーグラフと郵便配達員問題 - 00:06:41を参考に筆者作成...

October 15, 2021 · 1 min · gkzz

noshで美味しかったメニューを淡々と挙げていく【2021/10版】

はじめに noshという宅食サービス。聞いたことがありますか? こんにちは😊 noshは温めてそのまま食べていただくと、洗い物が省けて時短になりますが、盛り付けると豪華な食卓に早変わり〜🍁🌰✨ ぜひチャレンジしてみてくださいね!#いただきナッシュ pic.twitter.com/8cXHRDYRfO — 『nosh(ナッシュ)』美味しく栄養管理ができる😋 (@nosh_fresh) October 9, 2021 ホームページにはnoshの特徴としてこのように紹介されています。 ヘルシー 糖質が控えめ 塩分も控えめ シェフと管理栄養士がつくっている 片付けも簡単便利 容器は燃えるゴミ 容器が小さく折り畳められる!!!! ちょっとリッチなスーパーでもヘルシー弁当はあるけどnoshの容器と違い、ゴミとして捨てる際、かさばってしまうので、容器が折り畳める点はうれしい!! 今月からはじめているのですが、予想以上においしく、もう届けてもらった10食分全て食べてしまい、2回目の発送を急遽お願いしているところです。 そんなnoshですがメニューも多いので自分の備忘録として頼んだメニューのなかで「特に美味しかった」メニューを書いていこうと思います。 ※ ここで取り上げているメニューは2021年10月中に注文したものです。noshではメニューの入れ替わりがあるので、食べようと思ったときにはメニューにないかもしれません。ご注意ください。 noshで美味しかったメニュー【2021/10版】 【1位】ロールキャベツのチーズデミ ロールキャベツの上にとろとろチーズがたっぷり! 他にも美味しいメニューばかりだけどロールキャベツが好きというのもあり、余計美味しく感じた 【2位】旨だれペッパーチキン 鶏肉料理ではぶっちぎりといってもいい。ご飯が欲しくなる。 【3位】豚の生姜焼き おいしくないわけがない! 【4位】チリハンバーグステーキ 「おいしい」とブログやTwitterはじめ、あちこちで聞くだけあっておいしい。 【5位】牛肉の麻婆ごまだれ 鶏肉、豚肉を中心に選ぶことが多いなかで貴重な牛肉を使ったメニュー! 【6位】クリームコロッケグラタン クリームコロッケの周りを囲むグラタン?、チーズ?がおいしい 【7位】タンドリーチキン チキンと一緒に添えてあるオムレツ?もおいしい 【8位】焼鳥の柚子胡椒 ゆずが効いていてサッパリ! ※ 随時更新していきます。 合計¥6,000OFFクーポン(申し込んだあなたとわたしで3,000円ずつクーポンが発行されます!) 最後にヘルシーな宅食サービスnosh(ナッシュ)のクーポンのリンクを貼っておきます。 ※個人情報は双方伝わらないのでぜひご賞味あれ。 ※広告で流れてくるクーポンは300円程度しか割り引かれないのでオトクのはず、、! https://nosh.jp/share/friend-202103/x56oj

October 13, 2021 · 1 min · gkzz

(見つけることが難しい)自分の強みを見つけることができた話

自分の強みを見つける。 カンタンなようで難しくないですか?それとなく考えて「ワタシの強みはこれだ!」などと決めつけてしまうこともあるのではないでしょうか? 今日はそんな見つけることが難しいとされる自分の強みをふとしたことで見つけたので、どうやって見つけたか?書き残そうと思います。 さて、僕が見つけることができた方法をお話する前に、下記の任天堂の岩田社長のインタビュー記事についてご紹介したいと思います。読んだ方もいらっしゃるかもしれません。 任天堂・岩田氏をゲストに送る「ゲーマーはもっと経営者を目指すべき!」最終回――経営とは「コトとヒト」の両方について考える「最適化ゲーム」 自分の強みを見つけることは難しい 岩田社長は、自分の強みを見つける難しさについてこのようにお話しています。 岩田氏: 自分の労力の割に周りの人がすごくありがたがってくれたり,喜んでくれたりすることってあるじゃないですか。要するにね,「それがその人の得意な仕事なんだ」って話で。逆に,自分的にはすごい努力して,達成感もたっぷりあるのに,周りからは「はあ?」みたいに思われるこ> ともあって。それはね,本人が好きだったとしても,実は不得意なことかもしれないんですよ。 4Gamer: なるほど。 岩田氏: この話はですね,私は毎年,会社説明会で学生さんにお話しているんです。よく「自分の強みを見つけろ!」みたいな話を学校で言われると> 思うんですけど,普通は,学生時代に「何が自分の強みなのか」なんて,なかなか簡単には分かんないわけじゃないですか。 出所:任天堂・岩田氏をゲストに送る「ゲーマーはもっと経営者を目指すべき!」最終回――経営とは「コトとヒト」の両方について考える「最適化ゲーム」 では、どうやって見つければいいのか?岩田社長は次のように説明します。 岩田氏: だから,「 “労力の割に周りが認めてくれること” が,きっとあなたに向いてること。それが“自分の強み”を見つける分かりやすい方法だ よ!」って,いつも学生さんに喋ってるんですね。「さっさと得意なことが分かった方が,人生はいいぞ!」って話なんですが(笑) 出所:同上 自分は周りが思っているほど苦労しているとは思えないことを見つければいい。岩田社長のアドバイスを頼りに、自分の得意なことを探したけど見つけることができませんでした。では、どうやって見つけることができたのでしょうか?いよいよ本丸です。 (余談:ところでどうして見つけることができなかったのでしょうか?それは 「これはたいしたことではない。できてあたりまえだ」と目にもくれないからではないか? と考えています。つまり、探そうにも目に入らないので取りこぼしている のではないかと。。) じゃあ、どうやって見つけたの? 友人の一言が決め手でした。(なんでこう言われたのか忘れましたが。すみません。) 気軽に質問できる姿勢はマジで見習いたい 聞いたときは言わんとしていることが分かりませんでしたが、前述した岩田社長の記事を共有していただいて腑に落ちました。岩田社長の記事を友人から紹介される以前から、“労力の割に周りが認めてくれること” を探すことが自分の得意なことを見つける方法だということを知っていましたが、それでも友人の考えを理解することが難しく感じてしまいました。 自分の強みについて考える 質問する姿勢 せっかくなのでなんで質問しようと思うのか?考えてみました。自分では大したことではないと思ってしまっているのでなかなかその行動の動機を導き出せなかったのですが、ふたつ答えが出てきました。 自分が知らないことは知りたいから 自分ができないことをできるようになるために質問することが必要だから ※ もちろん、質問に答えていただく方の手間や時間には気をつけて、「質問内容やそれを質問しようと思った背景、自分の質問に対する答えとそれに対して抱く疑問点や懸念点」など質問に対してどう回答すればよいか?考えやすいように配慮はしているつもりです。 結論 友達や家族は大切にしよう。 自分の価値に自分で気がつくことは難しい。 Tさん、ありがとうございました。これからもよろしくおねがいします。 p.s. 飲み会がもたらした効果は偉大なのかもしれない。ずいぶんご無沙汰だけど。 2021/12/02更新 貴重な他己評価をいただいたので読み返せるようにしておく。よこちさん、いつもありがとうございます。 お疲れさまでした! 探究心がすごかったり、質問力があったり、AP Tech Talk ってイベントの企画によく乗ってくれたり、同じチームになったことないけどお世話になる場面がよくありました。新天地でもご活躍されることを祈っています! https://t.co/2VOgB4kvq4 — よこち (@akira6592) December 1, 2021

September 25, 2021 · 1 min · gkzz

「絵で見てわかるシステムパフォーマンスの仕組み」の読書メモ

1.この記事で達成したいこと 以下の本を読んだので感想や学びを書き残す 「絵で見てわかるシステムパフォーマンスの仕組み | 小田 圭二, 榑松 谷仁, 平山 毅, 岡田 憲昌」 また、そのような感想を抱くことになった自分の担当業務内容や役割も書いたほうが改めて本書を手に取る際にて助けになるだろうと思い、書いていく 2.本書を読んだ当時の担当業務や役割 主な担当業務はtoBのWebサービスの運用兼開発と問い合わせ対応 そのなかで「xxx機能がうまくできないんだけど〜」というお問い合わせを受けてログを追うことがある ここで肝となるのが、問い合わせの背後に見え隠れする「見るべきログのアタリ」をどれだけ早く見つけることが出来るか?また、そこから何を読み取り、次の一手を決めるか? (回答する?さらなる調査をする?機能改修?etc…) ※ いわゆる「パフォーマンスチューニング」はやっていないが、興味はある(技術検証の一環で見様見真似でパフォーマンス測定なるものはやったことはあるけど。。) アルゴリズムやネットワーク、データベースといった大学の学部レベルでのコンピュータ・サイエンスを勉強する社会人学生でもある 本書はいわゆるパフォーマンス測定でご飯を食べるインフラエンジニアだけではなく、僕のような学生やWebアプリケーション開発エンジニアも学びがある一冊だと思う 名著とされる「詳解 システム・パフォーマンス | Brendan Gregg, 西脇 靖紘, 長尾 高弘」は読み進めることが難しく感じた 一方で、本書は文字どおり多くの図やイラストを用いて、システムパフォーマンスについて解説されていると感じた。 3.感想や学び 本書は、「情報科学を学ぶことの大事さ」 というコラムを設けて情報科学を学ぶことの重要性について説いており、大学での勉強をがんばろうと思えた パフォーマンス測定の基本について、"はさみうち" という言葉で表現していたことが印象的 そもそも"はさみうち"とは はさみうちの原理 - Wikipedia パフォーマンス測定について端的に表していると感じたが、大学の極限の授業で"はさみうち"について学んでいたという点も印象に残った理由かなと e.g. サーバーAのログの該当箇所のタイムスタンプとサーバーBの該当箇所のタイムスタンプだけずいぶん開きがあるようにみえるな、、、。 <クライアントPC> <--> <サーバーA> <- ??? -> <サーバーB> <--> <サーバーC> パフォーマンスを取得するコマンドが出力する情報にはいくつか種類がある サマリ形式 一定期間の情報を合計もしくは平均で表示 「調査の最初に概況を押さえたい」ときに効果的 e.g. sarやvmstat イベント形式 個々のイベントを表示 「いつ、どこで何が起きたか?詳細に知りたい」ときに効果的 e.g. パケットキャプチャやシステムコール ※ データが莫大になり、負荷も大きいため、本番環境で常に取得するようなツールではない。サマリ形式のコマンドでアタリを付けた後、使うのがよさそう。 スナップショット形式 その瞬間瞬間の状況を記録する。 e.g. psやtop 4....

September 12, 2021 · 1 min · gkzz

帝京大学理工学部(通信教育課程)の社会人大学生1年目をふりかえる

1.この記事で達成したいこと 以下 4 点の内容を書き留め、次年度の履修登録の参考にしたい 単位取得状況 授業を受講してから自分に起きた変化 今年度の履修戦略と次年度に向けて 授業のひとこと感想 また、学割ネタも箇条書き程度だけど書いておきたい 公開後に出てきたネタ 2.前提 2021 年 4 月に大学 2 年生に編入学 今年度はコロナ情勢を踏まえて リモート環境での受講 となっている。次年度以降もこの体制が続くか不透明。 そもそも通信制といえども全ての授業をフルリモート、オンラインで完結できるわけではない。スクーリングというキャンパスに足を運んで受講する授業もある。 cf. スクーリング - Wikipedia 働き方もほぼフルリモート、在宅勤務とスキマ時間を大学の勉強に充てることができている。これは仕事と学業の両立にかなり大きく貢献しているはず。 また授業ではどんなことを扱うのか?教科書は何を使っているのか?といったことは以下のページにシラバスとしてあがっている Web Syllabus(講義概要) 2021 年度 理工学部 情報科学科(通信課程) | 帝京大学 宇都宮キャンパス なぜ大学で勉強しようと思ったか? なぜ大学で勉強しようと思ったか?それは以下の 2 点が大きい。 腰を据えて体系的に学びたい 好きな「学ぶこと」で名をあげたい cf. いろいろ悩んで帝京大学理工学部(通信教育課程)の社会人大学生になった もちろん、勉強しようと思った理由として、「CS の学位を取ることで求職活動においてグッと選択肢が広がるから」というのもあるが、これは卒業してしまえば誰にでも言えることであり、僕個人に限った話ではなかったので省いた。僕にとって進学するという決断をするうえで決定的な要因となったのは上記の 2 点だと思っている。 また、外資への転職が進学のモチベーションだということもいらっしゃると思うので参考文献だけ紹介しておきたい。 エンジニアとして世界の最前線で働く選択肢 ~渡米・面接・転職・キャリアアップ・レイオフ対策までの実践ガイド | 竜 盛博 |本 | 通販 | Amazon 3.単位取得状況 サマリー 総取得単位数は62 内、2022 年度の編入時に認定された単位数は 32 授業と試験やレポートを突破して取得した単位数は 30 なお、落とした単位は 4 であり、履修単位数は 30+4=34 科目別(受講した時期) 単位取得確定 物理学 1(1Q) 基礎数学(1Q) 幾何学(1Q) プログラミング 1(1Q) プログラミング 2(1Q) Web 技術基礎(2Q) 技術者倫理(2Q) プログラミング 3(2Q) プログラミング 4(2Q) 情報技術基礎(3Q) コンピュータネットワーク(3Q) データ構造とアルゴリズム(3Q) グラフ理論(3Q) 離散数学(4Q) データベース論(4Q) 落単 論理数学(2Q) 数理統計学(4Q) 補足 僕が今年度履修している授業の数は 17 個であり、また今回履修した授業は全て取得できる単位は 2 単位 1Qあたりに履修している授業の数は4個程度 また試験は 1Q は 7 月頭、2Q は 9 月頭、3Q は 12 月頭、4Q は 2 月頭となっており、試験のおよそひと月前程度までに授業ごとに課せられているレポートや中間試験、ミニテスト(以後、事前課題とする)などをこなす必要がある。そのため、1Qだけ他の期より時間に余裕があることになる。 4....

September 12, 2021 · 3 min · gkzz