
2025.03.28
AIにUIデザインの大半を任せる時代が来たら──先駆者が語る、人間ならではの「コミュニケーション」の価値
リンクをコピー
記事をブックマーク
高橋直大氏:みなさん、こんにちは。Day Oneを楽しんでいますでしょうか。AtCoder株式会社の高橋直大と申します。通称「chokudai」で通っているので、もしかしたらこの名前で知っている方もいるかもしれませんが、アルゴリズムのことをけっこうやっている人間です。
今回は「アルゴリズム人材の活かし方」というふわっとしたタイトルで話そうと思います。CTO協会のイベントなのにCTOではなくCEOですが、やらせてもらいます。
自己紹介をします。AtCoder株式会社の代表取締役をしている高橋直大と申します。名前を音読みにして「chokudai」と名乗っています。競技プログラミングの会社の社長をしていて、本を書いたり、Twitter活動で広報したりするのがメインです。フォロワーは5.5万人です。
プログラミングコンテストを真剣にやっています。スライドを見てもらえればわかるとおり、世界トップクラスと言ってもいい実力を持っていると思っています。
今日のトークテーマの「アルゴリズム人材の活かし方」について。
「今後入社するアルゴリズム人材ってどういう人? どう扱えばいい?」という、競技プログラミングやプログラミングコンテストの人たちがどういうものなのかという話です。また、そのアルゴリズムを用いて課題を解決するにはどうしたらいいのかについて話します。
今日はエンジニア、経営者、人事担当、誰が来るのか読めなかったのでアレですが、業務系の話をしようと思っています。Twitterのみなさん、コメントありがとうございます。けっこう見てくれているのがわかってうれしいです。
まずはプログラミングコンテストについて。プログラミングコンテストとは何か。問題がたくさん与えられて、プログラムを書いて、それがコンピューターによって採点される。正解なら点数を獲得して、不正解ならやり直し。点数や解くまでの時間によって参加者全員に順位をつけます。最後の機能はコンテストによってあったりなかったりしますが、すべての戦績からランクを計算します。
スライドの写真でイメージしてもらおうと思います。今はほとんどオンラインでやっていますが、コロナ前のオンサイトでやった時の写真です。これは学生選手権と呼ばれるもので、今年もやる予定です。コンテストの会場にこのように人がたくさん集まって、コードをガーッと書くということをやっています。
何人いるんだというくらいたくさんいますが、こういうことをメチャクチャやっていて、プログラミングで問題を解くことを楽しんでいる学生がたくさんいます。これだけいますが、写真は予選を通った決勝の人だけなので、予選を含めたらもっといるわけです。
主なプログラミングコンテストについて。僕の会社では「AtCoder」というサービスをやっています。海外にも、このようなサービスがたくさんあります。「Topcoder」というアメリカのサイト、「Codeforces」というロシアのサイトはサービスと言うべきかな。また「LeetCode」はどこなのか難しいんですが、採用試験に特化したサイトです。有名どころでは「Google Code Jam」や「Facebook Hacker Cup」、GAFAがやっているコンテストもあります。
これらは各社が採用のためにやっているものですが、ほかに高校生向けに「情報オリンピック」というものもあります。「Kaggleは?」と思う人がいるかもしれませんが、Kaggleは機械学習メインなので今回は外れるかなと思います。
プレイヤー人口もメチャクチャ増えています。5~6年前、2016~2017年には日本でリアルタイムでやる人は300人くらいしかいなかった。それが、(スライドを指して)少しデータが古いですが、2020年の時点では、5000人以上の日本人が毎週やっているコンテストに参加している。1回のコンテストに参加する人がこれくらいいる。2021年はコロナでメチャクチャ上がって、2022年は少し下がっていますが、リアルタイムで参加する人も1万人くらいいて、バンバン増えています。
プログラミングコンテスト人口については、一番出しやすいAtCoderのデータを出します。AtCoderの登録者数は約40万人。正確に言うと、今38万人かな。公開されるかたちで、所属を東京大学と書いている人が1,100人くらい、京大が500人くらい、東工大が400人と、高学歴の日本人の学生プレイヤーが非常に多いんです。
AtCoderやCodeforcesに特別スポンサードしなくても、今後入社してくるエンジニアは、プログラミングコンテスト経験者である可能性が非常に高いわけです。それこそ東大のエンジニアが入ってきたら、かなりの確率でAtCoderをやっているし、競技プログラミングを嗜んでいる人たちだということです。
では、どんなことをやっているのか。例えば、一番簡単な問題はどんなもので、どういうことをするのか。(スライドを指して)問題はこのように与えられます。
台形の要素が与えられていて、それに対して面積を求める問題です。プログラムをやっていない方はたぶんいないと思いますが、これを書くのは簡単で、例えばCで書くと、a、b、hを受け取って計算式を書いて出力します。
これが合っているか間違っているかの判断は難しいのですが、コンピューターが自動的に判定してくれます。テスト駆動開発のような仕組みを使ってコーナーケースをあらかじめ用意しておくことで、すべてのケースで正解するかをコンピューター上で採点して、リアルタイムで合っているか間違っているかが数十秒で出るシステムです。スライドのように順位表が出て、たくさん点数を取った人が勝ちとなります。
先ほどからプログラミングコンテストの説明ばかりでアルゴリズムの話をしていませんね。そもそもアルゴリズムとは何か。
アルゴリズムとは基本的に、計算をどうやるかという手段、やり方のことなんです。悪いアルゴリズムだと計算が遅かったり不正確だったりするし、良いアルゴリズムだと計算が速かったり正確だったりする。
スライドの図は国立情報学研究所の方が描いたものです。1本のニンジンから星形のニンジンを20個作りたい時、輪切りを作ったあとに1つずつ星形に切ると221回切らないといけません。しかし、サイドを切ったあとに全体を星形にしてから輪切りにすると31回で済みます。このようにやり方によって大幅に手間が変わることがあります。
コンピューターの世界だともう少しいろいろあります。例えば、スライドのAからBに行くのにどれだけ時間がかかるでしょうか? さあ、コメントの早い者勝ちです。間の線の数字は何分かかるかです。AからBに行くのに何分かかるでしょうか?コメントが殺到すると信じて先に行きます。
(スライドを指して)Aからここをたどって4に行って、右上に行って3に行って、上に行って2に行くと、4、3、2、1の合計コスト10で行けるんです。
コメント1つも来てない(笑)。まあいいや。
10で行けるんですが、これくらいなら人間の手でできると思っても(次のスライドを指して)「これできる?」って言われると、もうやりたくないですよね。AからBまでいくらって考えたくないですよね。コンピューターにやってもらいたいし、コンピューターにできることに価値がある。パッと見ればわかるとおり、6個だと簡単だったのに今は20個弱かな。
この丸のことを頂点と言いますが、頂点が20個くらいになった時点で、もうやる気をなくすんですよ。コンピューターでやっても当然同じことが起こって、やることが大きくなれば大きくなるほど処理は大変になる。
アルゴリズムの重要性として、インターネットの世界でデータを扱う数がメチャクチャ増えているんです。データが増えるとそれよりもはるかに多く計算時間が増えます。
例えば100人いればペアは4,500通りしかないけれど、1万人からAさんとBさんを選ぶパターンが何通りかというと4,500万くらいの組み合わせがあるわけです。つまり、データは線形に増えていったとしても、計算しないといけない量はそれ以上の勢いで増えていくんです。計算を工夫しないと高度な処理ができない。
今はかなり低レベル。レベルが低いというわけではなくレイヤーが低いという話をしています。(コメントを見て)この答えは19なんですね、コメントありがとうございます。僕は知らないんですけれど。
では、どんなことができるのか。(スライドを指して)これはALGO ARTISのページから持ってきました。液化天然ガス基地の運用効率化とか、なにかを効率化する。石炭火力発電所の燃料運用を効率化や最適化する時に……これだとスケジューリングかな? スケジューリングを1分刻みに正確に最適化するのは、人間ではできないけど、コンピューターならできる。だからすごいんです。
(スライドを指して)こちらは見た目がおもしろい例として、鹿島建設のホームページから持ってきました。鹿島建設は「クワッドアクセル」という自動運転をやっていて、工事現場を無人にするべく全部のマシンを人が乗っていない状態で動かしています。
これのなにがいいかというと、安全性を考慮する必要性が少し減るんです。人間だと車同士がぶつかったら死にますが、機械同士だと死ぬ人はいないから大丈夫。完全に制御されているから危ないこともできるし、そもそもぶつからないわけです。こういうすごいものがあります。
(次回へつづく)
2025.03.21
マネージャーの「自分でやったほうが早い」という行動で失うもの 効率・スピード重視の職場に足りていない考え方
2025.03.25
減点を恐れてモチベ低下、果ては離職も… あらゆる“会社の害虫”を大繁殖させる「ラスボス」の正体
2025.03.24
最悪の場合、組織を死に至らせる“会社の害虫”とは 誤った意思決定や品質不祥事を招く要因
2025.03.19
組織をダメにする“害虫”の正体は間違った思い込み AIやDXなど手段のみにこだわるダメ上司の見極め方
2025.03.25
ムダな仕事がなくならない“マッチョな職場”を変えるには 近年の過度な「KPI主義」が組織に与えた影響
2025.03.24
気づけばモラル崩壊……人材育成に無頓着な企業の末路 業績アップや採用にもつながる“人への投資”の重要性
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.03.24
AIの進化が行き着く先は「イノベーター」へ ChatGPT開発者サム・アルトマン氏 × 孫正義氏が語る、人工知能変革期の未来
2025.03.21
査定時期に上司から1年前の失敗を指摘される理不尽 変えられない過去を議論する「成果主義」の弊害
2025.03.19
フェデラー氏が語る「ただの1ポイント」の哲学 ウィンブルドン敗北から学んだ失敗からの立ち直り方
2025.03.21
マネージャーの「自分でやったほうが早い」という行動で失うもの 効率・スピード重視の職場に足りていない考え方
2025.03.25
減点を恐れてモチベ低下、果ては離職も… あらゆる“会社の害虫”を大繁殖させる「ラスボス」の正体
2025.03.24
最悪の場合、組織を死に至らせる“会社の害虫”とは 誤った意思決定や品質不祥事を招く要因
2025.03.19
組織をダメにする“害虫”の正体は間違った思い込み AIやDXなど手段のみにこだわるダメ上司の見極め方
2025.03.25
ムダな仕事がなくならない“マッチョな職場”を変えるには 近年の過度な「KPI主義」が組織に与えた影響
2025.03.24
気づけばモラル崩壊……人材育成に無頓着な企業の末路 業績アップや採用にもつながる“人への投資”の重要性
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.03.24
AIの進化が行き着く先は「イノベーター」へ ChatGPT開発者サム・アルトマン氏 × 孫正義氏が語る、人工知能変革期の未来
2025.03.21
査定時期に上司から1年前の失敗を指摘される理不尽 変えられない過去を議論する「成果主義」の弊害
2025.03.19
フェデラー氏が語る「ただの1ポイント」の哲学 ウィンブルドン敗北から学んだ失敗からの立ち直り方
【仕事に直結】頭がいいとは?|知見の幅と高さで決まる。【東大卒 ベンチャー企業社長が語る】
2025.01.18 - 2025.01.18
退職をチャンスに捉える企業文化のつくり方
2025.03.10 - 2025.03.10
青木耕平さんとザッソウ(#156〜158)
2025.02.05 - 2025.03.19
片付けパパ対談【特別編】豊かな人生を過ごすための「投資」&「交渉術」 ~チャンスを逃さず信頼関係も育むコツ~
2025.02.10 - 2025.02.10
グローバルの経営理論に学ぶ、企業アルムナイ成功への示唆〜中央大学ビジネススクール 犬飼知徳教授
2025.02.18 - 2025.02.18