teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

読みやすさを考慮

2017/01/25 04:02

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -47,6 +47,6 @@
47
47
  //List<Node> deepestNodes = new List<Node>{deepNode1,deepNode2};
48
48
  //deepestNodes.Select(node=>types.Select(type=>node.calcScore(type)));
49
49
  ```
50
- このとき、この処理をtypeごと,末端nodeごとに並列化したいのですがこれらの並列化にはDictionary scoreの排他制御。をしなければいけないと思うのですが。Dictionaryごとロックする方法は出てくるのですが、Dictionaryインスタンスすべてをロックするのは効率が悪いのでDictionaryのkeyの参照先のオブジェクトの書き込みの排他制御を行いたいと思っています。(つまり、要約すると**stypeごとの実行はほかのstypeと競合しないので並列化,stypeの中ではノードの分岐点までは並列化分岐点では排他制御がしたい**ということです。)このようなことは可能なのでしょうか?よろしくお願いいたします。
50
+ このとき、この処理をtypeごと,末端nodeごとに並列化したいのですがこれらの並列化にはDictionary scoreの排他制御。をしなければいけないと思うのですが。Dictionaryごとロックする方法は出てくるのですが、Dictionaryインスタンスすべてをロックするのは効率が悪いのでDictionaryのkeyの参照先のオブジェクトの書き込みの排他制御を行いたいと思っています。(つまり、要約すると**stypeごとの実行はほかのstypeと競合しないので並列化,stypeの中ではノードの分岐点までは並列化分岐点では排他制御がしたい**ということです。)このようなことは可能なのでしょうか?よろしくお願いいたします。
51
51
 
52
52
  必要があれば、子から親までのパスはノードを作るときに作成できます。

1

型指定ミス

2017/01/25 04:02

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  お世話になっております。
2
2
 
3
3
  C#で既存プログラムの実装の高速化をしたいと思っています。
4
- 以下のような木構造があり、それぞれのノードにはDictionaryでenum型に応じたkeyとint型のスコア値をvalueとして格納しています。
4
+ 以下のような木構造があり、それぞれのノードにはDictionaryでenum型に応じたkeyとdouble型のスコア値をvalueとして格納しています。
5
5
  それぞれのエッジのスコアをrootから順に合計し、それぞれの枝について一番深いノードのスコア(図の赤色のスコア)を合計して出したいと思っています。
6
6
 
7
7
  ![イメージ説明](c259e101c025594f43b9d5e66438e06b.png)