Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите выбрать тип данных [D7, XP]


Страницы:   1 2

Xandr001 ©   (2010-07-20 18:47:00) 

В общем есть такая формальная модель:
Датчики -> "нейронная" сеть -> Исполнительное устройство.
Система работает тактами (100 в секунду). Все компоненты системы тактируются от одного часового устройства.

Датчик выдает импульсы, распределенные в течении секунды в зависимости от измеряемого параметра.

"Нейрон" представляет собой некий черный ящик. Имеет неограниченное чило входов и выходов. Каждый "нейрон" имеет порог срабатывания. Порог срабатывания это число импульсов, пришедшее за один такт на входы. При достижении этого числа, отдает импульс на выходы. Входы бывают двух видов:
1) нормальный - при появлении в течении такта импульса на этом входе, к переменной хранящей число импульсов прибавляется 1, пришедшее за такт.
2) блокирующий - при появлении в течении такта импульса на этом входе, в независимости от достижения или недостижения порога срабатывания, на выходы импульс не подается.
импульсы отдаются только в конце такта (считается, что передача и обработка импульса занимет меньшее время чем длится такт).
Чтобы было понятно как работают "нейроны", приведу схему небольшой сети:
-> обозначает нормальный вход
-о обозначает блокирующий вход
цифра в скобках обозначает "нейрон" и порог его срабоатывания.

Сеть номер 1:
(датчик)->(1)->(исполнительное устройство)
Организует задержку в 1 такт, т.е: 1й такт - в конце такта датчик отдает импульс,  2й такт - нейрон принял его, в конце такта отдал импульс на выход, 3й такт - исполнительное устройство приняло импульс, выполнило операцию.

Сеть номер 2:
                    >(2)  
                  /    ^  \
                /      |    о
(датчик)->(1)->(1)->(1)->(исполнительное устройство)
Выделяет из серии импульсов идущих с датчика - один последний, если импульсы разделены хотябы одним тактом, работает просто как задержка.
ЧТобы было понятно приведу табличку (0 соответствует отсутствию импульса в течении такта, 1 - импульс, одна цифра - один такт):
Выход датчика  | Вход исполнителя
============+==============
01010101         | 00010101
11100101         | 00000101
11111111         | 00000000
============+==============

Исполнительное устройство - имеет неограниченное количество входов. При появлении импульса хотябы на одном из входов, выполняет к.л. атомарную операцию.

Суть задачи - симуляция действия таких систем на Delphi 7.
Суть проблемы - непонятно как это все организовать. Т.е. именно как представить все это хозяйство, а уже организовать действие такой системы я смогу сам. Как поступить? Динамические массивы? Графы? ООП?
Подскажите пожалуйста, хотя бы примерную структуру данных, сижу в ступоре уже довольно долго.


sniknik   (2010-07-20 23:04:00) [21]

> "список объектов на самих себя"
список это TObjectList, но раз  "Ведь не бывает не присоединенных звеньев."
type
 TCell = class;

 TCell = class
   pIn, pOut: TCell;
 end;

> так зачем разделять входы и выходы, и утяжелять модель?
в условии ([0]) сам задал "неограниченное число", а это список. здесь про твою задачу кроме твоего условия/того что озвучил, никто ничего не знает, т.что...


Xandr001   (2010-07-20 22:46:00) [22]

а вообще мне кажется (не прав? - поправьте), что для такой структуры моделировать входы и выходы избыточно. Ведь не бывает не присоединенных звеньев. выход одного - есть вход другого, сигнал идет только в 1 сторону, так зачем разделять входы и выходы, и утяжелять модель?


Xandr001   (2010-07-20 22:41:00) [23]


> sniknik ©   (20.07.10 22:33) [9]
ну и собирай после из переменных этого класса свою "сеть".


Все выглядит довольно просто, только вот смысл фразы "список объектов на самих себя" мне не понятен. Не подскажете, где можно посмотреть про это?


Xandr001   (2010-07-20 22:37:00) [24]

Ага. Интересно.
А как моделируется поведение компонентов схемы?


sniknik   (2010-07-20 22:33:00) [25]

> Делай 2 рекорда:
делай 1 класс... в нем реализуешь описанное в [0] поведение, входы выходы ("неограниченное число") - список объектов на самих себя, + проходящие данные, + методы типа  "такт", и т.д.

ну и собирай после из переменных этого класса свою "сеть".


Игорь Шевченко   (2010-07-20 22:20:00) [26]


> Суть проблемы - непонятно как это все организовать. Т.е.
>  именно как представить все это хозяйство, а уже организовать
> действие такой системы я смогу сам. Как поступить? Динамические
> массивы? Графы? ООП?


Например, такой тупой подход, без анализа:

Электрическую схему обычно списком соединений моделируют. То есть, есть N выводов (входы, выходы, земля, питание) и есть массив их соединений между собой. ООП здесь вполне пригодно.Так как распространение мгновенное, вполне можно за одну итерацию цикла просчитывать состояние всех входов и выходов. Ну или две итерации - первая меняет состояние входов, вторая - выходов.


Xandr001   (2010-07-20 21:54:00) [27]


> А с каких пор delphimaster стал биржей бесплатных решений?


Я не прошу решения. Я прошу помощи в отыскании  этого решения.

Поверьте, это не курсовая/лаба/диплом, не платная программа, и вобщем то не моя ни чья либо чужая жизнь не изменится, если эта программа не увидит свет. Если увидит - будет еще один повод открыть IDE и совершенствовать код программы, которая в общем-то никому кроме меня не интересна, не более того. И заметьте - я не кричу что мне очень срочно, помогите пожалуйста, итп.
Если бы мне нужно было что-то срочно, я бы обратился к людям, которые зарабатывают этим деньги.


Jeer   (2010-07-20 21:46:00) [28]

А с каких пор delphimaster стал биржей бесплатных решений ?


Xandr001   (2010-07-20 21:41:00) [29]


> Даже не озвучена сумма за нормальное ТЗ.

С каких пор delphimasterстал биржей удаленной работы?


Xandr001   (2010-07-20 21:40:00) [30]


> Сумма за разработку техпроекта не озвучена


:)
мне не нужен техпроект.
Мне нужны Ваши мнения, по поводу того как это лучше/удобнее реализовать.

Вот для примера, что я был бы рад получить в качестве ответа:
Делай 2 рекорда:
связь
нейрон
в типе связь 2 поля: тип связи, адресат.
в типе нейрон 4 поля: Counter, стек сообщений за такт, стек выходящих связей, visited.
В каждый такт времени рекурсивно обходи все нейроны, обрабатывай сообщения, посылай импульсы.
датчики и исполняющие устройства - суть те же нейроны, но работющие только в одну сторону.

PS
это вот то до чего я пока додумался. Может есть какие-то другие, более быстродействующие и легкие варианты?


Jeer   (2010-07-20 21:38:00) [31]


> Плохиш ©   (20.07.10 21:25) [2]
>
> Сумма за разработку техпроекта не озвучена.


Даже не озвучена сумма за нормальное ТЗ.


Плохиш   (2010-07-20 21:25:00) [32]

Сумма за разработку техпроекта не озвучена.


Xandr001   (2010-07-20 21:04:00) [33]

Не тот форум, не та ветка, дурацкий вопрос, или надо просто подождать?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо