OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 18:48

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Среда, 04 Март, 2020 22:47 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Peter Almazov писал(а):
Вообще, Илья, давно пора завязывать с этой ахинеей (базовые паттерны циклов, обожествление линейного поиска) и научиться уже писать циклы.
Инвариант там простой – в просмотренной части нет подходящего свободного куска.


Давно Вам пора прекратить зачем-то так реагировать на унификацию, которой поддаются 95% задач.

Что Вам мешает принять паттерн ЛП в режиме теоремы, которая позволяет не доказывать ничего расширенно, если ситуация свелась к ней?

90% программистов ни под каким соусом не будут использовать полный метод - и 90% студентов тут же его забудут.

И толку для общества и качества софта от Вашей принципиальности - 0.

Плюсы паттернов циклов - они относятся к той категории средств, которые так просты, что их уже НЕУДОБНО НЕ использовать, если знаешь.
А значит, достаточно им научить - и их будут использовать.

В случае же с общим методом - найдётся сто отговорок, чтобы написать цикл с for и двумя break-ами.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Март, 2020 12:12 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Тут надо смотреть на результаты.
Если у народа (включая Вас), такой простенький цикл вызывает затруднения, то может что-то в консерватории поправить?

Что касается 90% леммингов, то согласен. Я бы увеличил это число до 99%.
Но может кто-то посмотрит на удручающие результаты и задумается - доколе?!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Март, 2020 12:44 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Peter Almazov писал(а):
Тут надо смотреть на результаты.
Если у народа (включая Вас), такой простенький цикл вызывает затруднения, то может что-то в консерватории поправить?

Что касается 90% леммингов, то согласен. Я бы увеличил это число до 99%.
Но может кто-то посмотрит на удручающие результаты и задумается - доколе?!


Пётр, Вы знаете, для меня поучительным оказался опыт научного сотрудничества по одной военной тематике. Связано это было с методами принятия решений и позиционных оценок, скажем так.
Речь шла не о методах, закладываемых внутрь софта, а о методах-алгоритмах, которые требуют владения/применения человеком (штабными офицерами).

Так вот, там очень важное место занимал принцип - постараться свести методы к максимально алгебраическим и в идеале вообще линейным моделям. То, что выходило за эти рамки (любые дифференциальные модели), старались разбить/редуцировать до простых алгебраических схем. Ибо суровая армейская практика доказала: массово и пригодно для режима "применить даже не спя уже 32 часа" можно внедрять только доведённые до простых схем методы.

Есть теоретическое ядро, есть практические практики, до которых теоретики должны правильно редуцировать общие подходы. И так везде.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Март, 2020 13:16 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Не понял сути аргументации.
Что касается "только доведённые до простых схем методы" - разве мои решения не простые?

Если меряться проектами, то почитайте мою статью Замена MS Project в интегрированных системах.
Тоже неплохой опыт.
Вот, прикиньте: вы рассчитываете расписание (возможно, от финиша - назад) с выравниванием ресурсов, с неограниченным количеством календарей с исключениями, с неполной загрузкой ресурсов, ролями, включающими также мультиресурсы, несколькими командами, множественными связями операций (т. е. у каждой операции м. б. много связей), с задержками по времени и по объему, с жесткими связями, с ограничениями типа начало не раньше чем (НРЧ), окончание не позже чем (НПЧ). Расписание нужно оптимизировать, в этом и суть. И еще много чего.
В общем, "а теперь, со всей этой херней мы попробуем взлететь!"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Март, 2020 14:32 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Нет, Пётр, Вы не поняли, о чём я. Вообще речь не о меряньи.

А пример был том, что для тонко понимающего определённую предметку прикладного математика может быть очевидно, что какая-нибудь редукция модели к линейной - упрощение, для части случаев - с икажением связи "модель-реальность". И натура протестует. А практическая задача остаётся - вооружить для 90% задач массового бойца какой-то области (в том примере - массово военных, в стройке - массово проектировщиков, в ИТ - массово программистов...).

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Март, 2020 14:54 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Боюсь, что опять не до конца понял, но на всякий случай скажу, что "для тонко понимающего определённую предметку прикладного математика" - это точно не про меня.
Я такой же тупой в этой области, как и большинство. Просто "полуавтоматически" применяю другие вещи.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Март, 2020 14:58 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Peter Almazov писал(а):
Что касается "только доведённые до простых схем методы" - разве мои решения не простые?


Итоговый цикл у Вас вообще такой же, как у меня (разница с принятием точки отсчёта и расстояния между переменными).

Но я показываю, как любому "ночью в пургу задом" этот цикл получить.

А вот Вы сформулировали, действительно, очевидный инвариант, "в просмотренной части нет подходящего свободного куска".

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

Дальше, выбирая вектор переменных, решаем, как их увязать. Очевидно, что для понятия "свободный кусок" будет "базовый элемент последовательности" - и будет дальше рассматриваться либо предыдущий, либо последующий. Или, немного в другой формулировке, если вводим две границы просматриваемого куска, то решаем, чем инициализируем границы - либо 0 и ptroffs[0] - как у меня, либо какое-то отрицательное значение и ptroffs[0], и т.п. Естественным образом придём к оптимальному решению, что удобнее, если первая граница задана концом предыдущего указателя - и тогда получает значение 0, а вторая - началом очередного, и охрана цикла строится по второй границе.

Дальше можно составить формально постусловие и инвариант, относительно переменных. А можно ограничиться вашим неформальным "ищем подходящий кусок".

Дальше либо человек знает примеры (что такие ситуации на поиск "подходящего" путём "последовательного просмотра") и сразу пишет цикл с конъюнкцией условий, каждое из которых является отрицанием дизъюнктов целевого постусловия - вот и получается тот самый типовой "линейный поиск", который вас раздражает, либо не знает - и что? Изобретает эту же схему, проверяя, что она соответствует инварианту и обеспечивает постусловие. Сколько раз он её будет изобретать, прежде чем научится узнавать - и писать типовым образом? А дальше навесит на этот паттерн ярлык типа "линейный поиск"?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Март, 2020 15:01 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Peter Almazov писал(а):
Просто "полуавтоматически" применяю другие вещи.


Если Вы "полуавтоматически" узнаёте ситуацию с инвариантом "в просмотренной части нет искомого" - и знаете, что это будет цикл с конъюнкцией условий, каждое из которых является отрицаем дизъюнктов постусловия - то Вы уже имеете в голове паттерн "линейный поиск". У вас голова работает по схеме, а не "творчески с нуля".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Март, 2020 16:03 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Илья Ермаков писал(а):
Но я показываю, как любому "ночью в пургу задом" этот цикл получить.
Неправильно показываете.
Чтобы показать "любому", нужно самому уметь, как минимум. С этого, собственно, я и начал.

Далее я умолкаю до следующего примера. Примеры мне интересны.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB