Changeset 2524


Ignore:
Timestamp:
Jan 29, 2011, 10:29:03 PM (10 years ago)
Author:
Sven Rech
Message:

fixed IntegrateResultsIntoParent in Distributed KeySearcher.
Untestet, but you shouldn't use it anyway at the moment.

Location:
trunk/CrypPlugins/KeySearcher
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KeySearcher/Helper/KeyQualityHelper.cs

    r2289 r2524  
    1 using Cryptool.PluginBase.Control;
     1using System.Collections.Generic;
     2using Cryptool.PluginBase.Control;
     3using KeySearcher.Properties;
    24
    35namespace KeySearcher.Helper
     
    2426        }
    2527
     28        public void FillListWithDummies(int maxInList, LinkedList<KeySearcher.ValueKey> costList)
     29        {
     30            KeySearcher.ValueKey valueKey = new KeySearcher.ValueKey();
     31            valueKey.value = WorstValue();
     32            valueKey.key = Resources.dummykey;
     33            valueKey.decryption = new byte[0];
     34            LinkedListNode<KeySearcher.ValueKey> node = costList.AddFirst(valueKey);
     35            for (int i = 1; i < maxInList; i++)
     36            {
     37                node = costList.AddAfter(node, valueKey);
     38            }
     39        }
     40
    2641        public bool IsBetter(double value, double threshold)
    2742        {
  • trunk/CrypPlugins/KeySearcher/KeySearcher.cs

    r2506 r2524  
    757757            int maxInList = 10;
    758758            costList = new LinkedList<ValueKey>();
    759             fillListWithDummies(maxInList, costList);
     759            FillListWithDummies(maxInList, costList);
    760760            valuequeue = Queue.Synchronized(new Queue());
    761761
     
    12871287        #region For TopList
    12881288
    1289         private void fillListWithDummies(int maxInList, LinkedList<ValueKey> costList)
     1289        private void FillListWithDummies(int maxInList, LinkedList<ValueKey> costList)
    12901290        {
    12911291            ValueKey valueKey = new ValueKey();
  • trunk/CrypPlugins/KeySearcher/P2P/Tree/NodeBase.cs

    r2495 r2524  
    4141            LastUpdate = DateTime.MinValue;
    4242            Result = new LinkedList<KeySearcher.ValueKey>();
     43            KeyQualityHelper.FillListWithDummies(10, Result);
     44
    4345            Activity = new Dictionary<string, Dictionary<long, Information>>();
    4446            integrated = false;
     
    8991        private void IntegrateResultsIntoParent()
    9092        {
    91             var bestValue = KeyQualityHelper.WorstValue();
    92             if (ParentNode.Result.Count > 0)
    93             {
    94                 bestValue = ParentNode.Result.First.Value.value;
    95             }
    96 
    97             var revertedResults = new LinkedList<KeySearcher.ValueKey>();
    9893            foreach (var valueKey in Result)
    9994            {
    100                 revertedResults.AddFirst(valueKey);
    101             }
     95                if (ParentNode.Result.Contains(valueKey))
     96                    continue;
    10297
    103             foreach (var valueKey in revertedResults)
    104             {
    105                 if (!KeyQualityHelper.IsBetter(valueKey.value, bestValue)) continue;
    106 
    107                 if (ParentNode.Result.Contains(valueKey)) continue;
    108 
    109                 ParentNode.Result.AddFirst(valueKey);
    110                 bestValue = valueKey.value;
    111 
    112                 if (ParentNode.Result.Count > 10)
     98                var node = ParentNode.Result.First;
     99                while (node != null)
    113100                {
    114                     ParentNode.Result.RemoveLast();
    115                 }
     101                    if (KeyQualityHelper.IsBetter(valueKey.value, node.Value.value))
     102                    {
     103                        ParentNode.Result.AddBefore(node, valueKey);
     104                        if (ParentNode.Result.Count > 10)
     105                            ParentNode.Result.RemoveLast();
     106                        break;
     107                    }
     108                    node = node.Next;
     109                }//end while
    116110            }
    117111
Note: See TracChangeset for help on using the changeset viewer.