Oビッグ表記と社会的相互作用の複雑さ

2人が問題について話し合い、他の全員が聴衆である、耐え難い退屈な会議に出席しなければならなかった場合、この相互作用の方法は効果的ではないという考えを受け入れる準備ができています。 代替案も考えたかもしれません。 会議の主催者の間違いは、彼らがそのタスクにふさわしくない相互作用の形式を選択し、それによって多くの人々が時間を浪費する運命にあったということでした。



少し前に、私は社会的相互作用の複雑さを評価する際に、アルゴリズムの複雑さを評価する場合と同じアプローチを適用できることに気付きました。つまり、彼らの長所、短所、アプリケーションを見ることができます。 以下は、私が扱った最も一般的なオプションの短いリストです。



O(n 2 ):平等な参加者の会議。 n人が問題について話し合い、相互理解を実現するには、各参加者が全員とコミュニケーションをとる必要があります。 合計で、 n *(n-1)/ 2の社会的相互作用が実行されます( n人のグループのハンドシェイクの数を数えるタスクに相当)、つまりO(n 2アルゴリズムの複雑さ。 n / 2組の人々が同時に通信できるという事実により、時間スコアはO(n)ですが、実際の会議では一度に1人だけが発言するため、最悪の場合のスコアはO(n 2 インタラクション時間が5分であり、グループで完全に理解するために2回の反復が必要な場合、3人の会議は30分、4-1時間、5は1時間40分かかり、共通の解決策を見つけます(これは疑わしいと思われます)。 反復回数が参加者の数に依存する場合、さらに悲しい推定値が得られます。



しかし、すべてがそれほど悪いわけではありません!



-まず、会議のすべての参加者が独立して平等であるわけではなく、関心グループ(たとえば、上司と彼の2つの部下)を形成できます。その後、個々の参加者間ではなく、グループの代表者が常に1人であるグループ間で議論が行われます。 代表者は議論中に変更される可能性がありますが、彼は常に一人です。 この場合、社会的相互作用の複雑さはO((n / m) 2 )です 。ここで、 mは会議に出席する各グループの平均参加者数です。



-次に、 O(n 2が最悪の評価です。 それぞれの側が順番に自分の立場を表明し、各次が以前に聞いたすべてを考慮して声明を作成することが判明するかもしれません。 最後の参加者は問題の解決策を提供します-ディスカッションのすべての参加者は彼に同意するか、マイナーな変更を行います。 この場合、決定を下すには2nアクションだけで十分です。 道徳:準備されたプレゼンテーションとディスカッションの順序を設定するモデレーターは、多くの時間を節約できます。



O(n * log(n)):デリゲートを通じてチームの決定を行います。 多くの場合、意思決定には多くの人々を引き付ける必要があります。 ソリューションは技術的に複雑な分野をカバーする場合もあれば、実装には多数の人々の努力が必要になる場合もあります。 タスクが設定された後、各参加者は、デリゲート(たとえば、彼の部署の長)に向けて、自分のタスクの一部に対する解決策を提案します。 デリゲートは、受け取った提案を要約し、第1レベルのデリゲートから選択された第2レベルのデリゲートに提示します。第2レベルのデリゲートは、受け取った提案を要約し、第3レベルのデリゲートに提示します。 アルゴリズムを再帰的に継続し、最終決定を下す人に連絡することで、ある程度、各参加者の意見を考慮に入れるオプションが得られます。 さらに、デリゲートとの通信が完全に並行しているという事実により、 O(m * log m (n))の答えが得られます 。ここで、 mはグループ内の特徴的な人数です。



O(n):調整チェーン。 多くの場合、すでに解決策がありますが、承認のために標準化された手順を実行するだけです。 たとえば、シェルフへの新製品の追加を調整するため。 ここで、1回の試行の複雑さはnに等しくなります。ここで、 nは渡す必要があるインスタンスの数です。 はい、試行回数に制限はありませんが、 要件は事前にわかっており、通常は小規模です。



O(n):アラート。 一部の情報を変更せずに多くの人に届ける必要がある状況に最適です。 各グループは時間をかけて慣れるので、人件費はn人の社会的相互作用になります。 悪い場合には、メソッドは「注文に慣れて、実行のためにそれを受け入れるようにお願いします」という形式を取ります。良い場合は、コードに記述されたデータの正確さをチェックするだけです。 これらのケースの違いは、実際にアラートに遭遇する人の数(2番目-はるかに少ない)、およびアーティストの記憶の要件の違い(2番目-制限が機能するまで少なくとも何かを覚える必要はありません)です。 しかし、個人的には、送信者に間に合うようにO(1)であるというこのアプローチが気に入っています。メッセージを受信する人の数に関係なく、人件費は変化しません。 同じルールの暗い側面は、コピーに何十人もの人々がいる手紙です。



About(log(n)):デリゲートを介した通知。 1人だけに通知する必要があるが、正確に誰が知られていない場合に使用されます。 例としては、管理者に任せられ、部門の責任者に転送された後、直接実行者に転送されるタスクがあります。 別の方法は、すべてのタスク/注文/希望を受け入れる「単一のウィンドウ」を作成することです。 タスクを設定するこの方法は、送信者にとっては依然として複雑さは一定ですが、受信側にとっては労力がはるかに少ないため、原則として、「通知」から「デリゲートによる通知」への交換方法の変更を開始するのは受信側です。



O(1):標準インターフェースを介して問題を解決します。 私の意見では、努力しなければならない理想的な状況です。 問題は、それを解決する方法として知られています。つまり、人が他の人と接触することなく自分の問題を解決するのに役立つインターフェースを作成できることを意味し、問題を解決する速度は、問題に遭遇した人の数に依存しません。 これは同じ「アラート」であると言えますが、送信者の観点から見ると、ユーザーからの実際のコストはまだO(n)です。 これはそうですが、数学的な同等性にもかかわらず、問題の新しい見方を与えるため、この方法を選び出すことにしました。



O(n 2よりも複雑な外部世界とやり取りする方法はありますか? 間違いなく- 湿地の選別との類推により非常に非現実的なオプションを思いつくことができます。 私は、実際の問題はすべて、労働集約性の低いアルゴリズムによって解決されているため、実際には見られないと考えています。

問題を一定時間で解決するアプローチがある場合、他のすべての方法が必要なのはなぜですか? 主な理由は意思決定の自由だと思います。 漸近的挙動の改善とともに、自由は次第に去っていきます。 平等な参加者の会議では、決定の範囲は会議に参加している人々の力によってのみ制限されます。 このツールは、重要な独自の決定を行うのに適しています。 標準インターフェイスを使用すると、ソリューションの範囲が大幅に狭まります。



実用的な意味:



-平等な参加者の会議のために5人以上に電話しないでください。 人と人との間の1つの対話の時間が5分である場合、1時間の議論に間に合わない可能性があります。

-不平等な参加者の会議のために15人以上に電話しないでください(5人の上司と各側に2人の部下)-再び、1時間では十分ではありません

-会議に「OK」だけを必要とする人に電話しないでください-会議の議事録を書き、彼に調整を依頼してください

-注文、指示、情報メッセージ(および、おそらく、その後の投票)-数十人以上の関係者がいる場合に通信する唯一の効果的な方法

-部門に10人以上の人がいる場合-標準的な要件/要望/要求が来る「単一のウィンドウ」を作成します。

-あなたまたはあなたの従業員が彼らに来るタスクを完了する時間がない場合-あなたが外の世界と相互作用する方法を変えることによって漸近的な行動を改善できるかどうか考えてください。



残念ながら、人々の間の相互作用の速度は2年ごとに2倍になるわけではありません。

コミュニケーションを最適化し、幸せになりましょう。



All Articles