タグ

*algorithmとsystemに関するsh19910711のブックマーク (3)

  • 動的計画法の実例: QRコードの最適なエンコードを求める - Qiita

    はじめに 最近、実生活で競技プログラミングが役に立ちました。 趣味の一環で長方形のQRコードであるrMQRコードを生成するPythonパッケージを作成しています。その中で「ビット列が最も短くなるようにデータをエンコードする」という処理に動的計画法を用いました。大学時代に競技プログラミングをやっていた身としては「競プロが役に立った!」と嬉しかったので、実例として共有したくてこの記事を書いています。動的計画法のDPテーブルの定義から遷移のしかた、解の復元までを図や実装とともに説明しています。動的計画法自体は説明していません。実装の全体はこちらでご覧いただけます。 この記事に出てくるrMQRコードの仕様に関する記述はISO規格1に基づいています。最適なエンコードを求めるアルゴリズム自体は仕様に含まれるものではなく、オリジナルのものになります。 ※QRコードは(株)デンソーウェーブの登録商標です。

    動的計画法の実例: QRコードの最適なエンコードを求める - Qiita
    sh19910711
    sh19910711 2022/08/28
    "実生活で競技プログラミングが役に立ちました / 趣味の一環で長方形のQRコードであるrMQRコードを生成 / 大学時代の競技プログラミングの経験を現実世界の問題に適用できた"
  • 分散深層学習における耐故障性と可塑性 - Preferred Networks Research & Development

    ImageNetを15分で学習して以来 [1]、Chainerと沢山のGPUを使って深層学習を並列化し、一回の学習に必要な時間を大きく短縮することができるようになりました。その後、ImageNetの学習は深層学習における並列化 ・高速化のデファクト標準ベンチマークとなりました [2]。それと同時に、深層学習の並列化および大規模化は進み、複数GPUどころか複数ノードで学習することは当たり前のこととなりました。深層学習の計算が大規模化し所要時間はどんどん短くなりましたが、一般的にはノードが増えれば増えただけ部分故障の確率は高くなります。また、大規模なクラスタでは個々の分散ジョブをスケールアウトしたりスケールダウンする機能、つまり可塑性をもとにした計算資源のやりくりが運用上重要になってきます。そこでChainerを拡張し、分散深層学習に耐故障性だけでなく可塑性を導入する実験を行いましたので、ここ

    分散深層学習における耐故障性と可塑性 - Preferred Networks Research & Development
    sh19910711
    sh19910711 2021/11/03
    "可塑性(Elasticity) > 動的に計算資源と追加したり減らしたりできること / 分散深層学習の先駆けであるDistBeliefはもともとGoogleの大規模分散システム上で耐障害性を持って動作 / この系譜を受け継ぐ TensorFlow"
  • Multi PaxosをJavaで実装してみた - As a Futurist...

    Java の練習と分散システムの理解のために、Multi Paxos の実装をしてみてた。16 ファイルで 970 行程度で一応正常系は動くものはできたと思う。そろそろ疲れたので切り上げ。コードはださないけど、やったことをまとめ。 実装方針 この記事を何度も読んで、この通りに実装した。それに尽きる。 Understanding Paxos もちろんPaxos Made Simpleも読んだけど、実装するにあたっては上の記事がきれいにまとまってて必要十分だったので助かった。特に Multi Paxos について丁寧に説明があるのでありがたかった。 まずは Paxos を実装 Paxos は単一の値の合意をとるためのプロトコルで、まずはここを実装した。上の記事通りに、Proposer/Voter/Arbiter の 3 Role を class で実装。一応分けたけど、Peer としてはどれも

    Multi PaxosをJavaで実装してみた - As a Futurist...
  • 1