アルゴリズムの複雑さを分析するためのバロメーターとみなされます。しかし、モバイル機器にGPUが搭載されている今日では、モバイルデバイス上で複雑なアルゴリズムを実行するためにその高性能を使用できる数多くのアプリケーションがあります。たとえば、iOSのメタルフレームワークをGPGPU操作に使用できます。しかし、言うまでもなく、それは多くの力を消費する。だから私の質問は、私が開発/実装している、たとえば、モバイルデバイス上のグラフ検索アルゴリズムで、私はまた、時空とともに、私のアルゴリズムの "パワー"の複雑さを考慮してはいけないということですか?今、私は議論が、アルゴリズムが直接消費しないパワーであり、それに完全に同意するということができるということを知っています。だから、私の文法は、アルゴリズムの効率を測定するもう一つの次元であると言っても間違いです。しかし、アルゴリズムの性能指標として見えるべきではありませんか?アルゴリズムの複雑さ:パラメータとして「消費電力」を見分ける方法は?
答えて
これを可能にするには、アルゴリズムのアトミック操作に関連するエネルギー消費モデルが必要です。
「複数のエネルギーを消費します」、「メモリスロットは単位時間あたり2つのエネルギーを消費します」などのように多分、Energy = Time x Spaceという関係が理にかなっているかもしれません。
とにかく、このような「ナイーブな」モデルは、時間の複雑さのモデルと同じ現象に悩まされる可能性があります。現代のアーキテクチャーの動作とはまったく似ておらず、桁違いに間違っている可能性があります。
より正確なモデルを使用すると、解析的に扱いにくいものになります。
エネルギー=時間x空間は最初の良い亀裂です。より洗練されたモデル*は、扱いやすく現実的である可能性があります - Aggarwal他のI/O複雑性モデルの成功を見てください。 2つの別個のレベルのメモリを有するシステムをモデル化する。 –
@j_random_hacker:洗練されたモデルは扱いにくく、現実的ではないと思っていますが、これは単なる意見です:) –
No. 複雑さは、アルゴリズムが時間/メモリでどのように比例するかを説明します。パワーは時間とメモリの関数になります。
アルゴリズムA - O(N^2)とB - O(N^3)があり、両方とも同じ問題を解決したとします。 n = 1000の場合、Bは1単位の電力を使用しますが、Aは20を使用します。今度は、n = 10kまで拡張するとBには1000単位の電力が必要ですが、Aには2000のみが必要です。n = 100kでBは、 Aは200,000を必要とします。等々。 これは、エネルギー消費がアルゴリズムの実行に対して一定であることを前提としています。
ところで、同じことが時間とともに起こります。たとえば、短い配列の場合、線形検索に勝るものはありません。
特定のケース(固定解像度のUIをレンダリングする)では、消費電力を測定して最適化することが理にかなっています。しかし、今日の決議のために働くのは、必ずしも明日には正しいことではありません。
"これは、エネルギー消費量がアルゴリズムの実行に一定であることを前提としています。 - 典型的な現代のCPUではおそらく合理的な仮定ですが、総電力コストには、ライブ状態のメモリのバイト数に比例する項がなければなりません。例えば。 O(1)バイトのメモリを使用するO(n)アルゴリズムは、O(n)バイトのメモリを使用するO(n)アルゴリズムより漸進的に少ない電力を使用する必要があります。 –
- 1. アルゴリズムのBig O/Timeの複雑さを見つける方法
- 2. Androidアプリの消費電力を見積もる方法は?リニアですか?
- 3. Androidアプリの消費電力
- 4. 消費電力の削減
- 5. iOSアプリケーションの電力消費
- 6. 最大のパリンドローム部分文字列を見つけるアルゴリズムの複雑さ
- 7. cpuの消費電力とセットビット
- 8. Androidプラグイン時のアプリの消費電力をテストする方法
- 9. Nvidia Shield Tabletの消費電力をプロファイルする方法K1
- 10. Nexus 6pの消費電力(mWh)の測定方法は?
- 11. 再帰アルゴリズムの複雑さを見つける
- 12. リンクリストのアルゴリズム複雑さの分析
- 13. アルゴリズムの複雑さの分析
- 14. アルゴリズムの複雑さ - 競合分析
- 15. 再帰アルゴリズムの空間複雑性を見つける一般的な方法は何ですか?時間の複雑さを見つけるために
- 16. オフラインモードでJProfilerを使用してメモリリーク/消費を見つける方法は?
- 17. iMacの消費電力を取得
- 18. Apache Kafka:トピックの消費者グループを見つける方法
- 19. 計算Androidのセンサーの消費電力
- 20. NodeMCUは低消費電力モードをサポートしていますか?
- 21. 消費電力認識アプリケーションの開発
- 22. Androidアプリの消費電力測定
- 23. 低消費電力Bluetoothのカスタムプロファイル/サービス
- 24. アルゴリズムの複雑さ
- 25. Android用の瞬時消費電力を得る方法はありますか?
- 26. 3Sum.javaの漸近的複雑さを見つける方法
- 27. 低消費電力プロセッサ用の高速検索 - 挿入 - 削除アルゴリズム
- 28. 複雑なポリゴンを分解するアルゴリズム
- 29. gpsサービスで消費されるバッテリ電力をandroidで節約
- 30. 複雑なksoap2メーリングエンベロープを使用してWebサービスを正しく消費する方法は?
私はエネルギー消費の正式化については気づいていませんが、時間とスペースはおそらくエネルギーにとってはいくらか有用なプロキシです。少ないCPUサイクルでより少ないエネルギーで済み、メモリアクセスも少なくなります。特定のタスクを達成するためのエネルギー消費を最小限に抑えるように設計されたアルゴリズムの概要については、例えば、 [ここに](http://cacm.acm.org/magazines/2010/5/87271-energy-efficient-algorithms/fulltext)、[この他の調査](http://people.cs.pitt.edu /~kirk/cs3150spring2010/sigactreview.pdf)を締結しました。 –
興味深い考え。 Big-Oの意味では、消費電力は時間の経過とともにメモリ使用量の積分として測定でき、CPUを稼働させ続けるためには、メモリ(少なくとも命令ポインタレジスタ)のゼロでない量が必要であることを覚えておいてくださいdo-nothingループ。多くのアルゴリズムでは、最悪の場合の時間とメモリの要件が増えますが、このフレームワークでは、メモリを大量に使用して短時間を費やすアルゴリズムには報いることができますが、 –
あなたの返信ありがとうございます。あなたの答えに基づいて、メモリアクセスの数は消費される電力に比例すると考えられます。実際、この事実が議論の前提とみなされるならば、空間の複雑さは私にもっと細かく見なければならない。これは、使用されているネットスペースだけを考えることはできませんが、メモリが割り当てられ解放された回数を考慮する必要があります。 –