Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 26.03.2015
Сообщений: 12
1

Восстановление положения цепочки по известным внутренним контактам

26.03.2015, 07:45. Показов 1208. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На листе в клетку последовательно (от A до Z) выложена цепочка букв алфавита. Каждая буква в отдельной клетке, каждая последующая буква рядом с предыдущей (слева, справа, выше или ниже). Цепочка нигде не пересекает себя, но может касаться.

На примере ниже цепочка A..K касается сама себя в буквами C и J.

...K
ABCJI
..D.H
..EFG

Известны пары букв, для которых происходит касание. Восстановить возможные положения цепочки. Нужно предложить алгоритм или идею эффективного решения.

Задача имеет приложения в биоинформатике, связанное с восстановлением структуры хроматина. Оптимальное решение неизвестно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2015, 07:45
Ответы с готовыми решениями:

Hexedit восстановление символов и словосочетаний по известным кодам
вот эту строчку нужно декодировать EF E5 E4 E0 E3 EE E3 E8 F7 F1 EA E8 E9 F3 ED E8 E2 F0 F1 E8 F2...

Восстановление начального положения PictureBox-ов
Допустим есть форма, на форме кнопка1 и некоторое количество других элементов (panel, pictureBox и...

Восстановление положения выделенной записи после обновления
Вот такую задачу нарезали: Выделяется запись, редактируется, форма обновляется, фокус возвращается...

Циклы с известным и не известным числом повторений
Я вот тут на начальном уровне знания паскаля, а такие задачки задали.....:( Напишите программу...

24
0 / 0 / 0
Регистрация: 26.03.2015
Сообщений: 12
29.03.2015, 07:26  [ТС] 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от wingblack Посмотреть сообщение
Следовательно, на операции работы с связями долно накладываться какое-то довольно существенное ограничение, которое не было описано ранее.
Вот и зашли в тупик. Природу такого ограничения понять можно, если использовать геометрию объекта (к одному состоянию объекта относятся все геометрические и, в меньшей мере, топологические формы объекта, которые в 3D пространстве дают доступ к тем петлям хроматина, с которых транскрибируются заданные совокупности белков). Но формализовать такое ограничение без использования геометрической картины [практически] невозможно.
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
29.03.2015, 12:50 22
Попробуйте описать правило геометрически, тогда можно будет попытаться вывести правило для топологии.
0
0 / 0 / 0
Регистрация: 26.03.2015
Сообщений: 12
30.03.2015, 13:24  [ТС] 23
Цитата Сообщение от wingblack Посмотреть сообщение
Попробуйте описать правило геометрически, тогда можно будет попытаться вывести правило для топологии.
Если попытаться формализовать условие "к одному состоянию объекта относятся все геометрические .. формы объекта, которые в 3D пространстве дают доступ к тем петлям хроматина, с которых транскрибируются заданные совокупности белков", то получается следующее:

1) выполняем генерацию ансамбля геометрических структур цепочки, удовлетворяющих ограничениям по контактам (оставляя за рамками эффективность такой генерации)
2) для каждой полученной структуры определяем совокупность "шаров", которые открыты (не окружены со всех сторон соседями), то есть каждая структура отображается в последовательность типа A..DEFG..JK..NOPQRS.....YZ (где буквами отмечены открытые "шары"). Как результат, имеем совокупность последовательностей, типа: ...DE..HIJ.........TUVWXYZ | A.CD..GHI......PQRSTUV..YZ | ..CDE..HIJ....OPQ..TUVWX.. | A...EFGHIJKLMNOPQRS...WXYZ
3) выполняем кластеризацию полученной совокупностей последовательностей, тем самым геометрические структуры, в которых открыты одни и те же петли для транскрипции, попадают в одну и ту же группу.
Итого, имеем отображение совокупности ограничений по контактам в группы геометрических последовательностей с одинаковыми открытыми участками.

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

Добавлено через 5 часов 51 минуту
Почему то никто не предложил в качестве идеи увеличения эффективности генерации конфигурация снижение точности (переход к более крупной сетке). Во всей последовательности любые два соседа объединяются в новый "шар", вводится новая нумерация. Если в паре есть "шар" с контактом, то эта пара объявляется объектом, имеющим контакт. И решается та же задача, но с уменьшенным числом "шаров" в цепочке.

А возвращаться к исходной точности можно только для отфильтрованных конфигураций.
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
30.03.2015, 14:31 24
Цитата Сообщение от Kpoxal Посмотреть сообщение
Почему то никто не предложил в качестве идеи увеличения эффективности генерации конфигурация снижение точности (переход к более крупной сетке)
Наверное потому что это не настолько очевидно и удобно. Если вместо 2-х шаров брать один, то тогда будет неоднозначность какой из шаров (или же оба)склеивать если есть склейка. К тому же, новые склейки будут появляться только между такими парами, что уменьшит количество получаемых вариантов также вдвое, а вдруг это существенно отразится на результатах исследования?

Цитата Сообщение от Kpoxal Посмотреть сообщение
1) выполняем генерацию ансамбля геометрических структур цепочки, удовлетворяющих ограничениям по контактам (оставляя за рамками эффективность такой генерации)
Можно вывести это самое ограничение по контактам? Если хотите - в упрощенном виде.

С остальными пунктами пока проще, в (2) выбираем шары без склеек, в (3) вводим одну или несколько функций определения расстояния между состояниями и кластеризируем. Кстати, вот это место возможно тоже требует уменьшение вычислений, т.к. прямое сравнение потребует порядка N2 тяжелых операций.
0
0 / 0 / 0
Регистрация: 26.03.2015
Сообщений: 12
31.03.2015, 09:06  [ТС] 25
Цитата Сообщение от Kpoxal Посмотреть сообщение
1) выполняем генерацию ансамбля геометрических структур цепочки, удовлетворяющих ограничениям по контактам (оставляя за рамками эффективность такой генерации)
Я выразился неточно. Нужно "удовлетворяющих требованиям[а не ограничениям] по контактам". Требования задаются во входных данных.

Цитата Сообщение от wingblack Посмотреть сообщение
С остальными пунктами пока проще, в (2) выбираем шары без склеек
Не так. Назовем склейкой известный и заданный во входных данных контакт. Неизвестные контакты (а они всяко будут при генерации цепи) назовем просто контактами. Итого в (2) выбираются шары, имеющие малое число контактов (у которых в локальной окрестности есть пустые клетки).
Здесь опять неточность. Наличие пустых клеток годится как некоторое приближение. Более точно нужно проанализировать эти пустые места. Имеют ли они выход за пределы нашей цепи? Если нет, то это пустое место - некоторая пустая область внутри нашей цепи. Если она не имеет выхода наружу, то к ней нет доступа. То есть, ее нужно игнорировать.

Цитата Сообщение от wingblack Посмотреть сообщение
т.к. прямое сравнение потребует порядка N2 тяжелых операций
да, прямое сравнение имеет N^2 операций. Но это ничтожно мало по сравнению с числом операций генерации хотя бы одной конфигурации 3^N.

Добавлено через 5 часов 27 минут
Цитата Сообщение от Kpoxal Посмотреть сообщение
да, прямое сравнение имеет N^2 операций. Но это ничтожно мало по сравнению с числом операций генерации хотя бы одной конфигурации 3^N.
Глупость я написал, перепутал N - число конфигураций и длину цепи L.

Добавлено через 12 часов 40 минут
Цитата Сообщение от wingblack Посмотреть сообщение
сравнение потребует порядка N2 тяжелых операций
Если данные хорошо кластеризуются, то кластеризация может быть выполнена за N операций. Первый объект формирует первый класс и является его представителем. Далее вводится некоторым образом расстояние между объектами. Вычисляется расстояние между вторым объектом и представителем первого класса. Если расстояние меньше заданного, то второй объект помещается в первый класс. Если больше, то формируется второй класс, и второй объект является его представителем. И так далее. Все сравнения для любого нового объекта производятся не со всем объектами имеющихся классов, а с их представителями. Итого, число операций линейно.
0
31.03.2015, 09:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2015, 09:06
Помогаю со студенческими работами здесь

STL: найти все максимальные цепочки подряд идущих положительных чисел с указанием длины каждой цепочки
Создать массив длины N (число N вводится с клавиатуры). Заполнить массив рандомно. Найти все...

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

Доступ к контактам Windows 8
Есть примеры как получить доступ и вытянуть данные из социальных контактов (фича "люди"). А как...

Оправка писем по старым контактам
Добрый день! Нужно реализовать что-то вроде автоответчика по старым контактам на почте яндекс,...

SMS рассылка контактам с базы SQLite
Всем доброго времени суток. Помогите пожалуйста вытащить номера с таблицы и создать цикл для...

CreateDispatch не работает при доступе к контактам Outlooka
Вообще, я пытаюсь получить доступ к контактам outlook'a. Нашел код в Интернете: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru