GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.4 (5)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Иерархическая кластеризация
daner
Сообщений: 4593
На: Иерархическая кластеризация
Добавлено: 22 май 08 1:46
Цитата:
Автор: Алхимик
Но Данер прав, незачем их столько раз писать

спасибо конечно... но я про это не говорил . Про цикл я о другом говорил. Я говорил о распечатки кластера... но может и прогнал, там в коде черт ногу сломит (прошу прощения).

А вообще, то что Корвин послал -- это работает. во-всяком случае у меня работало и это исправленный код варвары. думаю с тех. стороны, можно считать тему закрытой (ну как минимум сам обход).

П.С.
а в дельфи большие и маленькие буквы различаются?
[Ответ][Цитата]
varvara
Сообщений: 29
На: Иерархическая кластеризация
Добавлено: 22 май 08 17:50
Спасибо всем огрооооооомное!!! Вы мои спасители. Все работает. Я добавила в программу вычисление функции, правда пока она вычисляется неправильно: http://ifolder.ru/6673283
Еще раз спасибо!!!

P.S. В Дельфи большие буквы и маленькие не различаются.
[Ответ][Цитата]
varvara
Сообщений: 29
На: Иерархическая кластеризация
Добавлено: 26 май 08 17:59
Извините, что опять вас беспокою. Помогите, пожалуйста, разобраться с проверкой функции. Нужно увеличивать n в 2 раза до тех пор, пока последующее значение не станет больше предыдущего. Тогда предыдущее значение и будет искомой функцией. http://ifolder.ru/6725983
Спасибо большое за помощь.
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Иерархическая кластеризация
Добавлено: 26 май 08 18:26
Опять ничего не понятно....
У Вас же в коде оно вроде и работает.
Правда вместо exit нужно break поставить:
if d<mF then
mF:=d
else break;
[Ответ][Цитата]
daner
Сообщений: 4593
На: Иерархическая кластеризация
Добавлено: 26 май 08 18:28
Цитата:
Автор: varvara
Извините, что опять вас беспокою. Помогите, пожалуйста, разобраться с проверкой функции. Нужно увеличивать n в 2 раза до тех пор, пока последующее значение не станет больше предыдущего. Тогда предыдущее значение и будет искомой функцией.


n=2
prev=MAX
done = false
result = 0
while not done do
F := function(n)
if prev<F then
result = prev
done = true
end_if
prev := F
n := 2*n
done
[Ответ][Цитата]
varvara
Сообщений: 29
На: Иерархическая кластеризация
Добавлено: 27 май 08 19:03
У меня выводится в результате последнее увеличившееся значение функции и полученные при этом кластеры, а как сделать, чтобы выдавалось предыдущее значение и соответствующие ему кластеры. http://ifolder.ru/6740938
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Иерархическая кластеризация
Добавлено: 27 май 08 19:22
Ну так всех проблем то что при "удачном" проходе сохранять текст из memF в строковую переменную (если значение увеличилось то не перезаписывать эту переменную), а потом эту переменную записывать в файл.
[Ответ][Цитата]
daner
Сообщений: 4593
На: Иерархическая кластеризация
Добавлено: 27 май 08 19:33
Цитата:
Автор: varvara

У меня выводится в результате последнее увеличившееся значение функции и полученные при этом кластеры, а как сделать, чтобы выдавалось предыдущее значение и соответствующие ему кластеры. http://ifolder.ru/6740938


их придется сохранять отдельно.
Т.е. вам надо будет держать два варианта : (1) текущий и (2) предыдущий. От этого не убежишь.
А чередовать их можно двумя вариантами (ну я вижу 2):
1) после каждого "круга" сравнивать текущих с предыдущим и если условие не удовлетворилось, то просто копировать все текущие данные, затирая предыдущие.
типа: если х1 это предыдущее значение, а х2 текущее, то просто делаем х1=х2. и дальше вновь заполняем х2 уже новыми значениями.

2) вместо копирования использовать псевдонимы (т.е. индексы массивов или указатели).
типа: если хх2 -- это указатель на тот же тип что и х1,х2 и он указывает на переменную с текущим значением, а хх1 -- указатель на предыдущее, тогда можно сделать так...
if xx1=address_of(x1) then begin xx1:=address_of(x2);xx2:=address_of(x1);end
else begin xx1:=address_of(x1);xx2:=address_of(x2);end

Можно так же использовать массив. скажем х -- это массив размером 2. тогда
i2 -- это текущее значение, а i1 -- это предыдущее.
после проверки на остановку, делаем так
i1 = 1-i1;
i2 = 1-i2;
а значения получаем так х[i1] или x[i2]


Первый способ нагляднее, но второй намного экономичнее.
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Иерархическая кластеризация
Добавлено: 27 май 08 20:00
Насколько я могу судить программа на выход дает только скриншот окна размещения точек и список кластеров в текстовом виде (отчет). Т.е. достаточно просто хранить текстовый отчет, а не весь список кластеров как объектов.
[Ответ][Цитата]
daner
Сообщений: 4593
На: Иерархическая кластеризация
Добавлено: 27 май 08 20:03
Цитата:
Автор: Corwin

Насколько я могу судить программа на выход дает только скриншот окна размещения точек и список кластеров в текстовом виде (отчет). Т.е. достаточно просто хранить текстовый отчет, а не весь список кластеров как объектов.


смотря какая цель... если цель просто вывести текстовый отчет -- то вы абсолютна правы (кстати, значение функции все-равно надо хранить отдельно, для сравнения).
[Ответ][Цитата]
varvara
Сообщений: 29
На: Иерархическая кластеризация
Добавлено: 28 май 08 17:50
Посмотрите, пожалуйста. Я вывела кластеры и количество точек, не теперь не выводится конечное значение функции http://ifolder.ru/6755982
[Ответ][Цитата]
varvara
Сообщений: 29
На: Иерархическая кластеризация
Добавлено: 30 май 08 17:07
У меня получилось вывести результат. У меня толко не сохраняется сетка и цвета точек кластеров в файле. Помогите, пожалуйста http://ifolder.ru/6785154.
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Иерархическая кластеризация
Добавлено: 30 май 08 18:43
Мне не совсем понятно почему Вы берете скриншот всей формы вместо сохранения самой картинки с точками.
Тем не менее перед тем как брать скриншот нужно вставить frmMain.Repaint; и в изображении отчета появятся сетка и цветные точки.
[Ответ][Цитата]
varvara
Сообщений: 29
На: Иерархическая кластеризация
Добавлено: 02 июн 08 11:00
Спасибо за скриншот! Мне нужно брать его со всей формы. Пожалуйста, посмотрите еще раз на проверку минимума функции. Если взять точки (40;113),(74;74),(127;48),(111;221),(147;202),(165;163), то должны получится 2 кластера, и функция должна принять значение 54353, но этого не происходит. Вычисления останавливаются раньше, и получается значение 247101.
Помогите, пожалуйста. Спасибо за все.
[Ответ][Цитата]
varvara
Сообщений: 29
На: Иерархическая кластеризация
Добавлено: 07 июн 08 15:33
Я сделала проверку функции. При большом количестве точек кластеры разделяются правильно, но при выборе 2 или 3 точек значение функции доходит до нуля, и сетка уже не строится? http://ifolder.ru/6885687
[Ответ][Цитата]
 Стр.4 (5)1  2  3  [4]  5<< < Пред. | След. > >>