Онлайн консултация #185939 трябва да програмирате forel алгоритъма на c# и да изследвате

Създаване на програми на софтуерната платформа .NET Framework и езиците C# и Java.

Най-добрите експерти в този раздел

Алексей КоцюрбенкоСтатус: Модератор Оценка:468Зенченко Константин НиколаевичСтатус: Старши модератор Рейтинг:450Игор ЛисковСтатус: Старши модератор Рейтинг:142
Отидете на консултация №:

Здравейте скъпи експерти! Необходимо е да се програмира алгоритъмът FOREL (Trout) в C# и да се изследват свойствата на този алгоритъм N=φ(r), където r е параметър на алгоритъма trout.

Ето последователността на алгоритъма:

1) Произволно изберете текущия обект от селекцията 2) Маркирайте обектите в селекцията, които са на разстояние по-малко от R от текущия 3) Изчислете техния център на тежестта, маркирайте този център като новия текущ обект 4) Повторете стъпки 2-3, докато новият текущ обект съвпадне с предишния 5) Маркирайте обектите вътре в сферата с радиус R около текущия обект като групирани, изхвърлете ги от селекцията 6 ) Повторете стъпки 1 -5, докато цялата селекция бъде групирана

Статус: Консултацията приключи

0

Изпращайте съобщения на модератори само членове на портала. ВЛЕЗТЕ В ПОРТАЛА » регистрирайте се »

Вкарах този алгоритъм в моя прост симулатор за обучение на точки. Можете да запишете или заредите точки от файл, а като поставите отметка - да добавите нови точки.

Самият алгоритъм е във файла FOREL.cs

Алгоритъмът е много прост. Търси концентрирани групи от точки на полето. Започва от произволна точка и бавно обхожда, за да улови възможно най-плътния облак от точки. След като изрежете клъстера, започвавсичко отначало, докато точките свършат. Търсенето е локално, така че глобалната оптималност не е гарантирана. Но в клъстерите плътността на точките е по-висока и при произволен избор на точка получаваме повишена вероятност тя вече да е в добра зона.

Недостатъци: фиксиран радиус за клъстера и фиксирана форма на границата на клъстера (окръжност). Ако радиусът е твърде голям, клъстерът ще съдържа точки, които не трябва да му принадлежат. Ако е твърде малко или ако полето е почти равномерно запълнено, не получаваме клъстери, а просто куп кръгове и бучки от кръгове, което обезсмисля клъстерирането. Освен това алгоритъмът не е лесен за паралелизиране. Публикувах архива на програмата на сайта: изтеглете файла WpfFOREL.rar [10,7 kb]

Текстът на FOREL.cs е публикуван допълнително тук:

0

Изпращайте съобщения на модератори само членове на портала. ВЛЕЗТЕ В ПОРТАЛА » регистрирайте се »