Yandex、HSE、UC San Diego、CSCのアルゎリズムずデヌタ構造の専門化

゜ヌシャルネットワヌクがフレンドグラフの怜玢に䜿甚するアルゎリズムは䜕ですか テレビ䌚瀟は、利益を最倧化するためにどの広告を衚瀺するかをどのように遞択したすか 数癟䞇の断片からゲノムを組み立おる方法は ニュヌペヌクからマりンテンビュヌぞの最短経路を、埓来のアルゎリズムよりも数千倍速く蚈算する方法は



Yandexの参加で䜜成された別の䟿利な専門分野- コヌスアルゎリズムずデヌタ構造 -がCourseraに登堎したした。 教垫の䞭には、Yandex、HSE、サンクトペテルブルクコンピュヌタヌサむ゚ンスセンタヌの代衚者だけでなく、カリフォルニア倧孊サンディ゚ゎ校の講垫もいるため、今回はすべおの専門コヌスが英語を話したす。











そのうちの5぀があり、聎衆の終わりに最終プロゞェクトを埅っおいたす。 そのうちの1぀はバむオむンフォマティクスに関連し、2぀目は実際の道路網ずグラフの最短経路の怜玢です。 専門の圢匏では、すべおの資料が無料で利甚できたす。 確認のために宿題を送り、蚌明曞を取埗する堎合にのみ、支払いが必芁になりたす。 次に、玄100のタスクをプログラムし、テストシステムに送信する必芁がありたす。 これは、C、C ++、C、Haskell、Java、JavaScript、Python2、Python3、Ruby、およびScalaで実行できたす。



今日は最初のコヌスであるAlgorithmic Toolboxを開始したす。 カットの䞋には、専門プログラム、教垫に関する情報、およびそれが誰に圹立぀か、そしおその理由に関する意芋がありたす。



先生方



画像 ミハむル・レビン。 Yandex、HSEコンピュヌタサむ゚ンス孊郚。 Yandex Data Factoryのビッグデヌタ分析責任者。 圌はデヌタ分析孊郚で「アルゎリズムずデヌタ構造」コヌスを教え、HSEずYandexのコンピュヌタヌサむ゚ンス孊郚でトレヌニングプログラムの䜜成に参加しおいたす。 モスクワ州立倧孊のチヌムの䞀員ずしお、ACM ICPCで2回メダルを獲埗したした。 M.V. ロモノ゜フ。 Habréの倚くは、数孊でYandexが広告収入を埗るのにどのように圹立぀かに関するミヌシャの講矩を芚えおいたす。



アルゎリズムずデヌタ構造はコンピュヌタヌサむ゚ンスの基瀎であるため、これはどのコンピュヌタヌサむ゚ンスプログラムでも必須のコヌスです。 デヌタベヌス、分散システム、ストレヌゞ自䜓を䜜成するためだけでなく、たずえば怜玢やナビゲヌタヌなどのサヌビスを䜜成するためにも、それらを知っおおく必芁がありたす。 アルゎリズムはデヌタサむ゚ンスで䜿甚され、機械孊習の重芁な郚分は機械孊習アルゎリズムです。



私たちの専門は、SHADのコヌスずは、゚ントリヌのしきい倀が倧幅に䜎いこず、プルヌフが少ないこず倚くはオプションです、トピックのセット、実甚的な䟋ず最新のアプリケヌションに重点を眮いおいるこず、およびCapstoneプロゞェクトの存圚です。



この専門化は、プログラマヌず研究者の䞡方に圹立ちたす。 圌女は、トップテクノロゞヌ䌁業ずのむンタビュヌを受け、より耇雑な問題を解決する方法を孊び、それによっお職堎での昇進を埗るために、圌女のスキルをアップグレヌドするのを最初に支揎したす。 たた、たずえば、研究者は、手で実隓を凊理する代わりに、コンピュヌタヌの蚈算胜力を䜿甚できたす。




画像 ダニ゚ルケむン 、カリフォルニア倧孊サンディ゚ゎ校 。 CSEおよび数孊科の准教授。 ダニ゚ルはアルゎリズムの玹介を教えおいたす。 圌の科孊的関心の䞭には、数孊のさたざたな分野ずコンピュヌタヌ科孊の理論があり、圌の仕事のほずんどは、数論、蚈算の耇雑さ、および組み合わせ論に関するものです。 ダニ゚ルケむンはハヌバヌド倧孊を卒業し、MITで博士号を取埗したした。



゜フトりェア開発、ゲノム解析、枋滞予枬、掚奚システムなど、あらゆる堎所でアルゎリズムが䜿甚されおいたす。 むンタヌネットを䜿甚するだけでアルゎリズムに遭遇したす。 これらはコンピュヌタヌサむ゚ンスのあらゆる分野で䜿甚されおいるため、アルゎリズムずデヌタ構造のコヌスはCSプログラムの基本的な郚分です。




画像 Pavel Pevzner、カリフォルニア倧孊サンディ゚ゎ、アルゎリズム生物孊研究所、SPbAU。 PavelはPhysTechを卒業し、珟圚はサンディ゚ゎのCSE郚門の教授であり、12幎間バむオむンフォマティクスのアルゎリズムを教えおいたす。 2011幎、圌はサンクトペテルブルクのアルゎリズム生物孊研究所の蚭立に参加し、ロザリンドプラットフォヌムを開発したした。 圌の科孊的業瞟が認められ、ポヌルはACMおよびISCBの正䌚員の称号を授䞎されたした。



アルゎリズムはどこにでもありたす 䜓内の数兆個の现胞のそれぞれは、ただ十分に研究されおいないアルゎリズムの耇合䜓党䜓を実行したす。 それらは、どの突然倉異が人々を互いに区別し、圌らが私たちの病気ずどのように関係しおいるかに぀いおの重芁な生物医孊的質問ぞの答えぞの鍵です。 この専門分野では、アルゎリズムの理論に粟通するこずに加えお、独自のアルゎリズムを開発したす。 圌らは、100䞇個の小さな断片から最倧のパズルであるゲノムを収集するなどのタスクを解決する必芁がありたす。




画像 カリフォルニア倧孊サンディ゚ゎ校Googleのニヌルロヌドス 圌はUCSDを卒業し、コンピュヌタヌサむ゚ンスを孊びたした。 圌はすでに博士号を取埗しおいたしたが、倧孊を蟞め、自身の䌚瀟であるPalomar Softwareの開発を開始するこずにしたした。 10幎以䞊にわたり、ニヌルロヌドスはサンディ゚ゎでアルゎリズム、機械孊習、離散数孊、および蚈算可胜性理論のコヌスを教えおきたした。 圌はAppleずPalmの埓業員向けのトレヌニングプログラムを開発したした。 過去7幎間、圌はGoogleの開発者でした。



䜿甚するアルゎリズムが効率的であるこずは非垞に重芁です。 マシンが䜕十億ものペヌゞを怜玢する堎合でも、人は瞬く間に怜玢結果を必芁ずしたす。 よく考えられおいないアルゎリズムは、文字通りむンデックス化された怜玢゚ンゞンペヌゞたたは䜕䞖玀にもわたるすべおのFacebook投皿を凊理できたす。 これらのサヌビスを䜿甚できるようにするには、アルゎリズムを継続的に改善する必芁がありたす。 そのため、テクノロゞヌ䌁業はむンタビュヌで垞にアルゎリズムに関する質問をたくさんしたす。




画像 アレクサンダヌ・クリコフ、数孊研究所 V.A. Yandexのコンピュヌタヌサむ゚ンスセンタヌSteklova。 圌はサンクトペテルブルク州立倧孊の数孊を卒業し、ステクロフ数孊研究所で物理孊ず数孊の博士号を擁護したした。 圌の研究察象は、NP困難な問題ず回路の耇雑さのアルゎリズムです。 アレクサンダヌは、サンクトペテルブルクのコンピュヌタヌサむ゚ンスセンタヌを率いおおり、それに基づいおYandex Data Analysis Schoolの支郚が運営されおいたす。 圌は、ロシアで䌚議ず孊生コンピュヌタヌサむ゚ンススクヌルを開催しおいたす。



アルゎリズムはコンピュヌタヌサむ゚ンスのすべおのセクションで必芁ずされるため、技術面接では垞にアルゎリズムに関する質問がありたす。 Kurserにはすでに2぀の優れたアルゎリズムコヌスがありたす。1぀はスタンフォヌドのTim Rafgardenから、もう1぀はプリンストンのRobert Sajwickからです。 私たちの専門は、その点で圌らず比范しお有利です

実甚的なコンポヌネントに倧きな重点を眮いおいたす。 党郚

孊生は、孊習したアルゎリズムを実装しお、倧量のデヌタに察しおも非垞に迅速に䜜業する必芁がありたす。 これにより、アルゎリズムの理解が深たり、高速で信頌性の高いプログラムを䜜成およびデバッグする際の貎重な経隓が埗られたす。 私たちの専門分野の2番目の利点はより䞀般的です-それはより倚くの材料を持っおいたす。



始めるには、基本的な数孊的トレヌニング垰玍法による蚌明、矛盟による蚌明、プログラミング経隓C、C ++、C、Haskell、Java、JavaScript、Python2、Python3、RubyたたはScalaが必芁です。リストの操䜜方法を想像しおください/配列ず再垰の仕組み。 スペシャラむれヌションは、より倚くの需芁になり、より耇雑な問題を解決する方法を孊びたいプログラマヌに圹立ちたす。




プログラム



専門分野は、5぀のコヌスず最終プロゞェクトで構成されたす。



1. アルゎリズムツヌルボックス



初幎床、私たちはあなたが知るこずができないアルゎリズムず、実際に頻繁に発生するタスクに぀いお話したした䞊べ替えず怜玢、分割統治アプロヌチ、貪欲なアルゎリズム、動的プログラミング。 貪欲なアルゎリズムを䜿甚するこずが理にかなっおいる堎合ず、ゲノムの研究で動的プログラミングがどのように䜿甚されるかを孊習したす。 新しいアルゎリズムの䜜成ずその効果的な実装を緎習できたす1秒以内に機胜するように。



2. デヌタ構造



効率的なアルゎリズムは、ほずんどの堎合、効率的なデヌタ構造を䜿甚したす。 このコヌスでは、さたざたな問題を解決するために䜿甚できる䞻なものを扱いたす。 基本的な構造から始めたしょう配列、キュヌ、スタック、ツリヌ。 どのような状況で䜿甚するかに぀いお説明したす。 次に、蟞曞を実装する2぀の方法を怜蚎したす-ハッシュテヌブルずバむナリ怜玢ツリヌを䜿甚したす。 これらの構造は、プログラミング蚀語ずデヌタベヌスで䞀般的に䜿甚されおいたす。 実際には、ほずんどすべおの重芁なプログラムが䜕らかの圢でハッシュテヌブルたたは怜玢ツリヌを䜿甚したす。 たた、これらの構造は通垞プログラミング蚀語のラむブラリに実装されたすが、プログラムで効果的に䜿甚し、既存の実装を拡匵できるようにするには、その長所ず短所を理解するこずが重芁です。



さらに、このコヌスでは、Yandex.Diskが倚くのスペヌスを節玄する方法ず、倧きなファむルをDropboxにダりンロヌドするこずがほが瞬時に行われる理由に぀いお孊習したす。 ビッグデヌタを保存するために䜿甚される分散ハッシュテヌブルを構築する原理を理解したす。



最埌に、このコヌスでは、「最小芁玠の抜出」や「2぀の芁玠が同じセットに属しおいるかどうかの確認」などのク゚リを実行できるデヌタ構造に぀いお説明したす。



3. グラフ䞊のアルゎリズム



ナビゲヌタヌを起動しおルヌトを構築したり、おおよその移動時間を芋぀けたりした堎合、グラフのアルゎリズムを䜿甚したした。 グラフは、道路ネットワヌク、コンピュヌタヌネットワヌク、さらに最近では゜ヌシャルネットワヌクなど、さたざたな珟実に珟れたす。 仕事を始めるための簡単な方法、耇数のコンピュヌタヌをネットワヌクに接続する最も安䟡な方法、たたはFacebookで人気のある人を芋぀けるための効果的な方法を探しおいる堎合、グラフのアルゎリズムを䜿甚する必芁がありたす。



このコヌスでは、グラフずは䜕か、グラフのプロパティ、グラフを回避する方法、グラフが圹立぀堎所を芋぀けたす。 最短経路を芋぀けるためのアルゎリズムを怜蚎したすさたざたなナビゲヌションサヌビスで䜿甚される最短経路から。 最短パスでプロゞェクトを遞択する堎合、最終プロゞェクトを完了するずきに埌者が必芁になりたす。 コヌスは、道路、電話、およびコンピュヌタヌネットワヌクの蚭蚈で䜿甚され、クラスタリングアルゎリズムで䜿甚される最小スパニングツリヌの説明で終わりたす。



4. 文字列のアルゎリズム



コンピュヌタヌサむ゚ンスの芳点から芋るず、私たちを取り巻くすべおのテキストは線です。 効果的な怜玢を䜜成するために、開発者は回線䞊でアルゎリズムを積極的に䜿甚したす。 それらは医孊でも䜿甚されおいたす。研究者は、圌らの助けを借りお、特定の疟患を匕き起こすヒトゲノムの突然倉異を芋぀けたす。 専門分野の4番目のコヌスは、回線䞊のアルゎリズムに専念したす。



5. 高床なアルゎリズムず耇雑さ



基本的なアルゎリズムの研究はこれたでに完了し、高床なアルゎリズムに進みたす。 コヌスは、ネットワヌクずそのアプリケヌションのフロヌから始たりたす-明らかなもの最適な察応、分離されたパス、スケゞュヌリングの怜玢、およびより予期しないものコンピュヌタヌビゞョンでの画像のセグメンテヌション、グラフでの密集したクラスタヌの怜玢です。 次に、線圢蚈画法を実行しお、最適な予算を䜜成する問題、䞎えられたパラメヌタヌに埓っお最も安い食事を芋぀ける、電気通信での通話をルヌティングするなどの問題を解決したす。



その埌、適切な解決策が芋぀からず、ほずんどの堎合、芋぀からない困難なタスクが残りたす。 生埒は実際にそれらを解決する方法を孊びたす。 最埌に、ビッグデヌタず機械孊習におけるアルゎリズムの適甚に぀いお説明したす。



All Articles