問題タブ [topology]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - Simplified province generation
I need some clever and rather simple solution to my problem - province shape generation. Suppose that map is matrix NxM. Each cell is represented by natural number. 0 means that tile does not belong to any province. numbers 1 means that it belongs to province nr 1, nr 2 means that cell belongs to province nr 2... etc.
Consider this map, which is 4x4:
This map represents 16 tiles that do not belong to any province.
This is map containing 1 province:
this is province of size 5, and id = 1. It has no neighbours.
Consider 3 provinces:
So province 1 is neighbour of 2 and 3. Province 3 is only neighbour of 1 and province 2 is only neighbour of 1. There are also 7 not associated tiles.
My problem is: I want to generate k provinces on map NxN. There are also few simple rules:
- there is max size of province and min size of province (for example min = 2, max = 10)
- all tiles of province should be connected (by vertical or horizontal, but not corners)
Example of invalid province (it's not connected):
- there should not be enclaves (province inside province)
- shapes should be random
I was trying to implement it by flood fill modification but it has some disadvantages. I'll be glad to hear some ideas or any help. Map's can be 300x300 with 200 provinces or more so it should be also some clever algorithm.
objective-c - ネットワーク トポロジ情報
いくつかのスイッチとエンド デバイスがあり、ルーターは 1 つしかないスモール ビジネス ネットワークがあります。グラフのようにネットワーク トポロジを表示したい (ルーターを上にして)。
私はネットワーク層アドレスにしかアクセスできないので、ネットワーク上のすべてのデバイスについて、そのデバイスが持つすべてのインターフェイスの IP アドレスと IP ネットワーク、つまり 192.168.2.9 と 192.168.2.0 (マスク 255.255.255.0) を取得できました。
私の推測では、データを分析して、ネットワークの論理接続を構築できたはずです。だから、私が聞きたいのは、ネットワークトポロジを知るための正しい道を進んでいるかどうかです(少なくともその論理接続については)。
これはすべてプログラムで行われ (c および object-c)、学校のプロジェクト用です。
プラス:(この情報があれば)トポロジを描画するライブラリを知っている人はいますか?
topology - JTSを使用して、外側の点からポリゴンの境界上の最も近い点を見つける方法は?
JTSを使用して、外側の点からポリゴンの境界上の最も近い点を見つける方法は?
geometry - 線が 2 次元空間でそれ自体にループバックするかどうかを判断する方法と、そのループに囲まれた点を見つける方法
これは、頭では簡単に捉えられますが、言葉で説明するのが難しい問題です。以下の説明が明確でない場合はお知らせください。
ユーザーが 2D サーフェスに描画しているとしましょう。マウスやスタイラスなどで曲線を描いています。定義を明確にするために、曲線は始点 (スタイラスが最初に置かれた点)、中間点 (スタイラスがドラッグされた点)、および終点 (ユーザーがスタイラスを表面から持ち上げる最終ポイント)。
ユーザー曲線が閉じた形状を作成しているかどうかを検出するにはどうすればよいですか? たとえば、目をぼかして下の図を見ると (「.」は曲線上の点を示し、「0」は曲線上にない点を示します)、最初の図は閉じた空間を作成しますが、2 番目の図は作成しません。 .
さらに、ある点 (x1,y1) が与えられた場合、その点が囲まれた空間の内側にあるか外側にあるかをどのように判断できますか?
network-programming - このネットワーク トポロジに名前を付けてください。まばらに葉でつながれた複数の星のネットワーク
私の同僚が取り組んでいるネットワーク構造の既存の例 (または名前) を見つけようとしています。ネットワークは、それぞれが独自のリーフ ノードを持つ多数の中央ハブのように見えますが、いくつかのリーフは 2 つのハブに接続されています。ハブは互いに接続されていません。
java - ネットワークトポロジを描画するためのオープンソースのJavaグラフ描画フレームワーク(JUNGとPrefuse)の比較
次の要件を持つネットワーク図に使用するオープンソースのJavaグラフ描画フレームワークはどれですか?グラフのノード数は1000未満になります。
1)平行なエッジがある
2)単一のグラフ内に有向および無向のエッジ
3)画像で表されるノード
4)ノードとエッジとのユーザーインタラクション
5)ノードとエッジの動的な追加/削除
6)ノードとエッジの複数のラベル付けラベル付けは、ユーザーがオフ/オンにすることができます。(レイヤーでの描画やレイヤーのオフ/オンなど)
7)スター、リング、メッシュトポロジを表示するためのさまざまなレイアウトアルゴリズム
JUNGとPrefuseを評価しました。これは、私の要件ごとに私が見つけたものです。
1)JUNGがサポートしている間、Prefuseは平行エッジを表示できません。プリフューズコードを操作して、平行なエッジを表示できますか?これには基本的なデータレベルの変更が含まれるため、通常のカスタマイズされたレンダリングの変更よりも難しいと思います。
2)prefuseとJUNGの両方で、結合されたグラフ(有向エッジと無向エッジの両方)への参照が見つかりませんでした。誰かが他のことを知っていますか?
3)これはPrefuseとJUNGの両方で簡単に思えます
4)ここでも、prefuseとJUNGの両方がユーザーインタラクションのサポートを提供します。
5)prefuseとJUNGの両方がそれをサポートします。グラフを再描画している間、各フレームワークはどのように機能しますか?別の投稿で、動的更新ではプリヒューズがうまく機能しないことがわかりました(Prefuse Toolkit:ノードとエッジを動的に追加します)
6)これは、グラフを変更して再描画することになります。したがって、質問は5)と同じになります。
7)JUNGとprefuseの両方に複数のレイアウトアルゴリズムがあります。しかし、JUNGとPrefuseの両方でFruchtermanReingoldLayoutを使用して同じデータセットを表示しようとすると、異なる表示が表示されます。なぜアイデアはありますか?PrefuseのレイアウトアルゴリズムのほとんどはJUNGの実装に基づいていますが、どういうわけか、PrefuseのレイアウトアルゴリズムはJUNGよりも優れたレイアウトを表示しているようです(レンダリングも優れていると思います)。ForceDirectedLayout / FruchtermanReingoldLayoutやCircleLayoutなどのプリフューズレイアウトは、スター、サークル、メッシュトポロジに直接マップされます。
これらの要件以外では、prefuseは式とクエリ言語を適切にサポートしていますが、JUNGとは異なり積極的に開発されていないようです。どちらがより良い視覚化を持っていますか?どれが適切であり、どのように欠点を克服するかについての提案はありますか?
私が使用できる他のフレームワークはありますか?
algorithm - 一連のピア ノードを自己組織化するためのベスト プラクティス ソリューションはありますか?
次のプロパティに従うノードのネットワークがあります。
- グローバル セットには N 個のノードが含まれます。
- 各ノードは、X << N である X 個の近隣ノードを検出できます。
- ネイバーの検出は一方向の操作です (つまり、ネイバーは検出されたことを必ずしも認識しておらず、元のノードを検出しない場合もあります)。
私が達成する必要があるのは、これらのノードが効率的なネットワーク トポロジを自己構築して、すべてのノードが最小限のホップ数で通信できるようにすることです余分な複雑さを伴います)。これはすでに一般的に解決された問題ですか?つまり、標準的なベスト プラクティス ソリューションはありますか?
ノードを手動で組み立てるとしたら、他のノード グループ間のゲートウェイとして機能するいくつかのノードを含む階層を作成することになるでしょう。ただし、このノードを自己集合させるための最善のアプローチが何であるかはよくわかりません。グループ/階層トポロジーは要件ではなく、単なる直感的な例です。
トポロジーが整ったら、効率的なメッセージルーティングアルゴリズムを探しているわけではないことに注意してください(ただし、トポロジーをできるだけ効率的にし、各ノードができるだけX通信チャネルに近いものを使用することを望んでいます)。
mysql - スター トポロジの MySQL
MySQL 5.1-lastest-stable のすべてのデータを含む 1 つの中央データベースがあります。
複数のクライアントを主従関係で接続したい。
質問
中央に 1 つの中央サーバーがあり、複数のクライアント データベースがあるスター トポロジをセットアップして、1 つのクライアントの変更が最初に中央サーバーに伝播され、そこから他のすべてのクライアント データベースに伝播されるようにするにはどうすればよいですか?
データベース情報
すべてのテーブルに inno-db を使用しており、バイナリ ログを有効にしています。
それ以外に、データベース間でマスター - マスターを行う方法を学びました。
すべてのテーブルには主キーがありますprimary integer autoincrement
。自動インクリメントのオフセットと開始が異なるクライアント データベースに合わせて調整されている場合、主キーの競合は発生しません。
なぜ私はこれが欲しいのですか
ラップトップのローカル MySQL データベースに接続するクライアント ソフトウェア (Web サイトや PHP ではない) があります。これは中央データベースと同期する必要があるため、ラップトップでプログラムを使用しているすべての人が、他の人が行った他のすべての変更を確認できます。 .
ラップトップと中央データベースの間でインターネット接続が切断されると、アプリケーションが停止するため、中央データベースに直接接続したくありません。
このセットアップでは、アプリケーションは継続します。ラップトップは、中央データベースへの接続が再確立されるまで、他のユーザーから更新を取得しません。
matlab - 円の幾何学的なランダムグラフ
半径Rのボール内にランダムに均一に分布する座標のセットを生成したかったのです。行列のような形式で、forループなしでMatlabでこれを行う方法はありますか?
ありがとう
更新:混乱してすみません。球ではなく、半径Rの円上でランダムにn点を均一に生成する必要があるだけです。
deployment - NServiceBusのメッセージタイプごとに1つのディストリビューターのベストプラクティスの背後にある理由は何ですか?
メッセージタイプごとに1つのディストリビュータープロセスを構成する必要があるというベストプラクティスとして何度か言及されていますが、その理由についての説明はありません。ディストリビューターの数を増やすと展開が複雑になるので、その背後にある理由を知りたいと思います。私の推測では、特定のメッセージタイプで利用可能なすべてのサブスクライバーがビジー状態の場合、ディストリビューターは1つが解放されるのを待ってスタックし、無料のサブスクライバーを持つ可能性のある他のタイプのメッセージはディストリビューターのワークキューに積み上げられます。これは正確ですか?他の理由はありますか?