Спасибо за ответ. А про параметр w я бы еще порассуждал. Нет, вы в этот вопрос ясность не внесли. Задайте-ка w=1000 (почему бы и нет, раз он не нормирован?) и посмотрите, какой результат будет. Подозреваю, что стоимость продуктов вообще перестанет иметь значение.
Кстати, единицы измерения этого w - тоже любопытный вопрос. Вас вот не смущает, что в вашей целевой функции вы суммируете деньги с количеством кальция?
Хороша тема, но уж больно "эзоповым языком" описана. Зачем заставлять читателя удерживать в голове кучу переменных с верхними и нижними индексами?
ОК, у вас есть задача минимизации стоимости с пачкой линейных ограничений по каждому веществу. (Метод решения задачи хорошо известен.) У вас также есть неопределенность в одном из коэффициентов - содержании кальция в фасоли. Вы оставляете ограничение по кальцию только для наилучшего сценария, а для остальных сценариев вводите slack variable по кальцию. Потом вы добавляете к целевой функции penalty w на мат.ожидание slack variable. Я правильно изложил?
Как выбрать w?
Судя по последнему графику, вы не можете "выбрать" w, а вынуждены выполнить расчет для широкого диапазона w, а затем принимать решение уже вне описанной модели. Строго говоря, этот график надо бы перестроить в координатах ошибка-затраты, исключив из него w вообще. И я бы не называл w "весом" т.к. он может быть больше 1.
Хм. Почему это "иначе никак"? Есть немало видов деятельности (примеры приводить не буду, сами догадайтесь), которые весьма прибыльны, но объявлены незаконными. Потому что общество "почему-то" против.
Кроме того, во всех странах есть антимонопольное законодательство, т.к. хорошо известно, и математически обосновано, что интересы монополии и общества не совпадают.
В третьих, в инженерном деле уже 150 лет как используется стандартизация, и болты и гайки разных производителей подходят друг к другу. Что в некотором смысле тоже "протокол". Не говоря уже про interconnection телефонных сетей. Да что телефон! Вас же не удивляет, что все маршрутизаторы поддерживают TCP/IP v.4?
Резюме: Нет ничего невозможного в том, чтобы юридически обязать компании поддерживать открытые протоколы и обеспечивать connectivity с другими платформами.
Я не знаю, что такое время. Но могу измерить (часы).
Рассуждая таким образом, вы на самом деле вполне себе философствуете. Вы определяете время как то, что измеряют часы. Такой подход в философии именуется операционализмом.
Не буду тут судить, насколько этот подход верен, речь не об этом. А о том, что ваше объяснение тоже "с философских позиций", в ничуть не меньшей степени, чем у кого-то другого, кого вы собираетесь гнать шваброй.
Крайне интересная тема, но слов много, а подробностей мало...
Подходит любой решатель-оптимизатор
И какой же вы используете? CPLEX? Gurobi? Еще что-то? Свой собственный писать - задача весьма нетривиальная, и, исходя из моего опыта, у ИТ-подразделения промышленного предприятия на такое обычно ресурсов нет.
Я вижу, что вы определенно не понимаете моего вопроса. Я не прошу подробностей по каждому типу. Я спрашиваю о критериях классификации.
Видимо, придется высказаться более прямолинейно. Мое мнение о вашей статье - крайне негативное. Никакая это не типология. Вы просто перечислили 5 разных аналитических методологий. Система координат, что вы используете, возможно, что-то говорит о применимости этих методологий в тех или иных ситуациях. Но не о самих этих методологиях и особенностях их подходов к анализу.
Может быть, в этом тексте и есть здравые мысли, но написан он ужасно. И причина этого, вероятно в том, что прилагать усилия к ясному выражению мысли, искать формулировки - для вас это "графомания". Вы, видимо, не понимаете значения этого слова.
IMO, это не "типы анализа". Типологию следует строить по атрибутам, присущим тем объектам, которые вы подразделяете на типы. А вы, на мой взгляд, строите типологию не анализа, а сущностей, на которые анализ может быть направлен. Перефразируйте: если уж "анализ данных", то тогда и "анализ процессов\продуктов\систем".
Т.е., образно выражаясь, вы говорите, что классифицируете молотки, а на самом деле классифицируете гвозди. Хотя может быть верно, что для разных гвоздей действительно нужны разные молотки, логически правильно классифицировать молотки по весу, а не по длине забиваемых ими гвоздей.
Ну и еще. "Процессный анализ. На этом этапе" - Так это типы или этапы? Слово "этап" предполагает последовательность во времени (одно измерение), а у вас диаграмма в двух координатах. "нужно ли пройти по представленной спирали" - не вижу на диаграмме никакой спирали. И т.д.
Следовало упомянуть еще одну логическую ошибку. Она называется "тавтология" и ее пример - первая же фраза этого перевода. (В оригинале тавтологии нет.)
Тот, кто берется переводить статьи, не вникая в смысл текста, тоже совершает большую ошибку. Но еще большей ошибкой будет читать подобные переводы вместо того, чтобы взять учебник логики, изначально написанный по-русски.
Отказ от абстракций => увеличение размера программы
Не сразу понял, о чем вы. ОК, согласен, что иногда отказ от высокоуровневых абстракций эквивалентен copy-paste approach, который мы справедливо осуждаем. Но к увеличению числа багов это само по себе не ведет. И когда это увеличение размера в эпоху Big Data имело значение?
Согласен, что код, сгенерированный ИИ, может быть нечитабельным для человека. Но надо ли человеку его читать и изменять? Вы дизассемлируете скомпилированный код, чтобы убедиться в правильности работы компилятора? Вряд ли. Хотя это не значит, что в компиляторах не бывает багов.
Давайте различать повседневную работу и исключительные случаи. ОК, исключительные случаи с помощью одного лишь ИИ решены быть не могут. Но они на то и исключительные, что встречаются не слишком часто.
Как заставить ИИ использовать это открытие?
Видимо, сообщить ему, что способ решения данной подзадачи следует считать известным, и что интерфейс вызова для этого нового алгоритма <такой-то>.
для обучения ChatGPT <...> привлекались "разметчики" (labelers)
ОК, это уже сделано. Зачем этим заниматься еще раз? Только из-за того, что мы придумали еще один ЯП (который ничем не лучше старых, и будущая его востребованность под большим вопросом)?
научится сам себя обучать программированию
Еще раз, ему не будет нужно обучаться "программированию" в том смысле, какой вкладывают в это слово современные разработчики ПО. Более вероятно, что он будет создавать работающее ПО не путем подражания мыслительным процессам человека, а иными способами. И сама эта идея не нова, эксперименты на этот счет (напр. genetic programming) были и раньше. И если все тесты будут успешно проходить, то какая разница?
Простой ответ (и вполне серьезный): ИИ не нужно знать про эту новую фичу, т.к. он может сгенерировать вполне качественный код без ее использования.
Новые фичи в ЯП нужны для людей, а не для компьютеров и компиляторов. Фичи, т.е. новые абстракции - для того, чтобы было легче и удобнее мыслить. Если же человек исключается из процесса, то высокоуровневые ЯП становятся не нужны, и кодогенерацию можно делать сразу непосредственно в ассемблер (ну или в веб-ассемблер, или в коды Java-машины и т.п.)
Но даже если в процессе "компиляции русского языка в машинный код" и используются промежуточные языки, то степень их высоко- или низко-уровневости уже не будет иметь значения в большинстве случаев. Разве что для формальной верификации или дебага.
а потом долго будет думать "а каких двух чисел это произведение".
Ну и пусть подумает. Для толкового студента тут широкий простор для того, чтобы проявить свои таланты. Проверка на простоту, разложение на множители и пр. Для учебной программы, оперирующей числами, не большими сотни, нет в этом ничего сложного.
Спасибо за ответ. А про параметр w я бы еще порассуждал. Нет, вы в этот вопрос ясность не внесли. Задайте-ка w=1000 (почему бы и нет, раз он не нормирован?) и посмотрите, какой результат будет. Подозреваю, что стоимость продуктов вообще перестанет иметь значение.
Кстати, единицы измерения этого w - тоже любопытный вопрос. Вас вот не смущает, что в вашей целевой функции вы суммируете деньги с количеством кальция?
Хороша тема, но уж больно "эзоповым языком" описана. Зачем заставлять читателя удерживать в голове кучу переменных с верхними и нижними индексами?
ОК, у вас есть задача минимизации стоимости с пачкой линейных ограничений по каждому веществу. (Метод решения задачи хорошо известен.) У вас также есть неопределенность в одном из коэффициентов - содержании кальция в фасоли. Вы оставляете ограничение по кальцию только для наилучшего сценария, а для остальных сценариев вводите slack variable по кальцию. Потом вы добавляете к целевой функции penalty w на мат.ожидание slack variable. Я правильно изложил?
Судя по последнему графику, вы не можете "выбрать" w, а вынуждены выполнить расчет для широкого диапазона w, а затем принимать решение уже вне описанной модели. Строго говоря, этот график надо бы перестроить в координатах ошибка-затраты, исключив из него w вообще. И я бы не называл w "весом" т.к. он может быть больше 1.
Возражения принимаются.
Хм. Почему это "иначе никак"? Есть немало видов деятельности (примеры приводить не буду, сами догадайтесь), которые весьма прибыльны, но объявлены незаконными. Потому что общество "почему-то" против.
Кроме того, во всех странах есть антимонопольное законодательство, т.к. хорошо известно, и математически обосновано, что интересы монополии и общества не совпадают.
В третьих, в инженерном деле уже 150 лет как используется стандартизация, и болты и гайки разных производителей подходят друг к другу. Что в некотором смысле тоже "протокол". Не говоря уже про interconnection телефонных сетей. Да что телефон! Вас же не удивляет, что все маршрутизаторы поддерживают TCP/IP v.4?
Резюме: Нет ничего невозможного в том, чтобы юридически обязать компании поддерживать открытые протоколы и обеспечивать connectivity с другими платформами.
Рассуждая таким образом, вы на самом деле вполне себе философствуете. Вы определяете время как то, что измеряют часы. Такой подход в философии именуется операционализмом.
Не буду тут судить, насколько этот подход верен, речь не об этом. А о том, что ваше объяснение тоже "с философских позиций", в ничуть не меньшей степени, чем у кого-то другого, кого вы собираетесь гнать шваброй.
Крайне интересная тема, но слов много, а подробностей мало...
И какой же вы используете? CPLEX? Gurobi? Еще что-то? Свой собственный писать - задача весьма нетривиальная, и, исходя из моего опыта, у ИТ-подразделения промышленного предприятия на такое обычно ресурсов нет.
Я вижу, что вы определенно не понимаете моего вопроса. Я не прошу подробностей по каждому типу. Я спрашиваю о критериях классификации.
Видимо, придется высказаться более прямолинейно. Мое мнение о вашей статье - крайне негативное. Никакая это не типология. Вы просто перечислили 5 разных аналитических методологий. Система координат, что вы используете, возможно, что-то говорит о применимости этих методологий в тех или иных ситуациях. Но не о самих этих методологиях и особенностях их подходов к анализу.
Может быть, в этом тексте и есть здравые мысли, но написан он ужасно. И причина этого, вероятно в том, что прилагать усилия к ясному выражению мысли, искать формулировки - для вас это "графомания". Вы, видимо, не понимаете значения этого слова.
Ну дайте тогда ссылку на первоисточник, что ли.
IMO, это не "типы анализа". Типологию следует строить по атрибутам, присущим тем объектам, которые вы подразделяете на типы. А вы, на мой взгляд, строите типологию не анализа, а сущностей, на которые анализ может быть направлен. Перефразируйте: если уж "анализ данных", то тогда и "анализ процессов\продуктов\систем".
Т.е., образно выражаясь, вы говорите, что классифицируете молотки, а на самом деле классифицируете гвозди. Хотя может быть верно, что для разных гвоздей действительно нужны разные молотки, логически правильно классифицировать молотки по весу, а не по длине забиваемых ими гвоздей.
Ну и еще. "Процессный анализ. На этом этапе" - Так это типы или этапы? Слово "этап" предполагает последовательность во времени (одно измерение), а у вас диаграмма в двух координатах. "нужно ли пройти по представленной спирали" - не вижу на диаграмме никакой спирали. И т.д.
Следовало упомянуть еще одну логическую ошибку. Она называется "тавтология" и ее пример - первая же фраза этого перевода. (В оригинале тавтологии нет.)
Тот, кто берется переводить статьи, не вникая в смысл текста, тоже совершает большую ошибку. Но еще большей ошибкой будет читать подобные переводы вместо того, чтобы взять учебник логики, изначально написанный по-русски.
Мог бы кто-нибудь объяснить, откуда это следует? Ассоциативная бинарная операция в полугруппах уже имеется. Что мешает применить ее несколько раз?
Не сразу понял, о чем вы. ОК, согласен, что иногда отказ от высокоуровневых абстракций эквивалентен copy-paste approach, который мы справедливо осуждаем. Но к увеличению числа багов это само по себе не ведет. И когда это увеличение размера в эпоху Big Data имело значение?
Согласен, что код, сгенерированный ИИ, может быть нечитабельным для человека. Но надо ли человеку его читать и изменять? Вы дизассемлируете скомпилированный код, чтобы убедиться в правильности работы компилятора? Вряд ли. Хотя это не значит, что в компиляторах не бывает багов.
Давайте различать повседневную работу и исключительные случаи. ОК, исключительные случаи с помощью одного лишь ИИ решены быть не могут. Но они на то и исключительные, что встречаются не слишком часто.
Видимо, сообщить ему, что способ решения данной подзадачи следует считать известным, и что интерфейс вызова для этого нового алгоритма <такой-то>.
ОК, это уже сделано. Зачем этим заниматься еще раз? Только из-за того, что мы придумали еще один ЯП (который ничем не лучше старых, и будущая его востребованность под большим вопросом)?
Еще раз, ему не будет нужно обучаться "программированию" в том смысле, какой вкладывают в это слово современные разработчики ПО. Более вероятно, что он будет создавать работающее ПО не путем подражания мыслительным процессам человека, а иными способами. И сама эта идея не нова, эксперименты на этот счет (напр. genetic programming) были и раньше. И если все тесты будут успешно проходить, то какая разница?
Простой ответ (и вполне серьезный): ИИ не нужно знать про эту новую фичу, т.к. он может сгенерировать вполне качественный код без ее использования.
Новые фичи в ЯП нужны для людей, а не для компьютеров и компиляторов. Фичи, т.е. новые абстракции - для того, чтобы было легче и удобнее мыслить. Если же человек исключается из процесса, то высокоуровневые ЯП становятся не нужны, и кодогенерацию можно делать сразу непосредственно в ассемблер (ну или в веб-ассемблер, или в коды Java-машины и т.п.)
Но даже если в процессе "компиляции русского языка в машинный код" и используются промежуточные языки, то степень их высоко- или низко-уровневости уже не будет иметь значения в большинстве случаев. Разве что для формальной верификации или дебага.
Ну и пусть подумает. Для толкового студента тут широкий простор для того, чтобы проявить свои таланты. Проверка на простоту, разложение на множители и пр. Для учебной программы, оперирующей числами, не большими сотни, нет в этом ничего сложного.