Консультація онлайн #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
Надсилати повідомлення модераторам можуть тільки учасники порталу. УВІЙТИ НА ПОРТАЛ » реєстрація »