Консультація онлайн #185939 потрібно на c# запрограмувати алгоритм forel (форель) та дослідити

Створення програм на програмній платформі .NET Framework та мовами С# та Java.

Найкращі експерти в цьому розділі

Коцюрбенко Олексій ВолодимировичСтатус: Модератор Рейтинг:468Зенченко Костянтин МиколайовичСтатус: Старший модератор Рейтинг:450Лисков Ігор ВіталійовичСтатус: Старший модератор Рейтинг:142
Перейти до консультації №:

Привіт шановні експерти! Потрібно на C# запрограмувати алгоритм FOREL (Форель) та дослідити властивості цього алгоритму N = φ (r) де r це параметр алгоритму форель.

Ось послідовність алгоритму:

1) Випадково вибираємо поточний об'єкт з вибірки 2) Позначаємо об'єкти вибірки, що знаходяться на відстані менше, ніж R від поточного 3) Обчислюємо їх центр тяжкості, позначаємо цей центр як новий поточний об'єкт 4) Повторюємо кроки 2-3, поки новий поточний об'єкт не збігатиметься з колишнім 5) Помічаємо об'єкти всередині сфери радіуса R навколо поточного об'єкта як кластеризовані, викидаємо їх з вибірки 6) Повторюємо кроки 1-5, поки не буде кластеризована вся вибірка

Стан: Консультація закрита

0

Надсилати повідомлення модераторам можуть тільки учасники порталу. УВІЙТИ НА ПОРТАЛ » реєстрація »

Я прикрутив цей алгоритм до свого простенького симулятора вивчення точок. Можна зберегти або завантажити точки з файлу, а встановивши прапорець – додавати нові точки.

Сам алгоритм знаходиться у файлі FOREL.cs

Алгоритм дуже простий. Шукає концентровані згустки крапок на полі. Починає від випадкової точки і потихеньку повзе так, щоб захопити якомога щільнішу хмару крапок. Вирізавши кластер, починаєвсе заново, поки крапки не закінчаться. Пошук локальний, тому глобальна оптимальність не гарантується. Але в згустках щільність точок вище і при випадковому виборі точки ми отримуємо підвищену ймовірність, що вона вже буде у добрій області.

Недоліки: фіксований радіус для кластера та фіксована форма межі кластера (коло). При надто великому радіусі в кластер потраплять точки, які до нього не повинні належати. При надто маленькому або якщо поле майже рівномірно заповнене - ми отримуємо не кластери, а просто купу кружечків та ошметків від кружечків, що позбавляє сенсу кластеризацію. Крім того, алгоритм не так легко розпаралелити. Архів програми я виклав на сайті: завантажити файл WpfFOREL.rar [10.7 кб]

Текст FOREL.cs додатково виставляю тут:

0

Надсилати повідомлення модераторам можуть тільки учасники порталу. УВІЙТИ НА ПОРТАЛ » реєстрація »