Американский психолог Джой Пол Гилфорд, известный исследователь проблем интеллекта, в свое время предложил понятие дивергентного мышления. Сам Гилфорд определял его, как тип мышления идущий в различных направлениях. Ищем все возможные способы решения одной проблемы. Выходим за рамки стереотипов и, как результат, находим неожиданные и суперэффективные методы. Дивергентное мышление ассоциируется с креативностью. Яркий пример такого мышления можно увидеть в хорошо известной истории про Нильса Бора и барометр.
До появления генеративных языковых моделей было распространено мнение, что искусственный интеллект, когда и если будет создан, будет уступать человеку в креативности. Будет действовать скрупулезно, последовательно, без ошибок, но шаблонно. Оказалось — наоборот. Как это выглядит в реальности, при решении «скучных» учетных задач в 1С, смотрите ниже.
Привожу задачу в том виде, как она была сформулирована.
Как определить день, когда в отеле было максимальное количество постояльцев?
В общем, есть задача, её суть:
Учет приезда клиентов ведется со дня старта работы отеля (к примеру день приезда 3, означает что клиент приехал в третий день работы отеля, а уехал на 8 день работы отеля т.д.).
Нужно написать программу, которая сама бы определила этот день (при этом нельзя использовать сторонние объекты в виде регистров, справочников и т.д.). Есть документ с расписанием отъездов и выездов, нужно отталкиваться только от него.
Если таких дней несколько — вывести первый.
Ну… пользователи так примерно и говорят. А мы не будем сейчас заниматься критикой этого текста, а просто «скормим» его копилоту как есть, даже не прописывая схему базы данных.
Ответ:
SELECT day
FROM (
SELECT arrival_day AS day
FROM bookings
UNION ALL
SELECT departure_day + 1
FROM bookings
) AS days
GROUP BY day
ORDER BY COUNT(*) DESC, day
LIMIT 1
Сложим все события в кучу и посчитаем. Нет, это, конечно не работает. «Причешем» текст, уберем из него лишнее и путанное. А заодно добавим схему.
Текст вопроса:
Это отель. Вычислить день, когда было больше всего живущих в отеле
Схема:
MySQL #
Размещение(постоялец, день_заезда, день_отъезда) #
Ответ:
SELECT DATE, COUNT(*) AS NumberOfGuests
FROM
(
SELECT a.Date
FROM
(
SELECT день_заезда AS Date
FROM Размещение
UNION ALL
SELECT день_отъезда
FROM Размещение
) a
WHERE a.Date BETWEEN (SELECT MIN(день_заезда) FROM Размещение) AND (SELECT MAX(день_отъезда) FROM Размещение)
) b
LEFT JOIN Размещение c ON b.Date BETWEEN c.день_заезда AND c.день_отъезда
GROUP BY DATE
ORDER BY NumberOfGuests DESC
LIMIT 1
Не помогло. Оно упорно пытается действовать через UNION. Видно, что идет поиск решения через усложнение, но… нет. Ну что ж, еще одна попытка. Просто чуть конкретизируем вопрос.
Текст вопроса:
Это отель. Постоялец считается живущим в отеле в определенный день, если этот день больше либо равен дню заезда постояльца и меньше либо равен дню отъезда. Надо получить день, когда было больше всего живущих в отеле
Ответ:
SELECT MAX(day_count) AS max_guests, day
FROM (
SELECT COUNT(*) AS day_count, day
FROM (
SELECT a.day
FROM (
SELECT ADDDATE('1970-01-01', t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) day
FROM
(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0,
(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1,
(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t2,
(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t3,
(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t4
) a
JOIN Размещение b
ON a.day >= b.день_заезда AND a.day <= b.день_отъезда
) c
GROUP BY day
) d
ORDER BY day_count DESC
LIMIT 1
И вот оно! Работающее решение, использующее генератор дней.
Поясню, что я вижу в этом заслуживающего вашего внимания. Я много лет обучал взрослых и детей программированию. И я знаю, что если человек встал на какие-то «рельсы», то снять его с них зачастую очень и очень сложно. А оно (я имею ввиду большую языковую модель) хоть и тупенькое, но креативное! Заставить его найти другое решение совсем не сложно. И это очень важный момент.
Кстати, в том же обсуждении, где была поставлена эта задача, человеком было предложено следующее решение:
Соединяем в запросе выборки из табличных частей.
1 Дата (ДатаПриезда)
Объединить
-1 Дата(ДатаОтъезда)
Группируем по дате.
Полученную таблицу соединяем саму с собой по условию Дата<=Дата, делаем группировку по дате.
Как видите, решение через UNION тоже существует. Надо только складывать приезды и вычитать отъезды. Но метод предложенный большой языковой моделью лучше, потому что он универсальный. Можно не только определить день максимальной загрузки отеля, но и период, когда эта загрузка сохранялась. Можно получить все периоды с максимальной нагрузкой. Вычислить процент
Что из всего этого следует. На мой взгляд, очень хорошие новости. Сейчас много разговоров о том, что искусственный интеллект лишит работы тех или этих. Лишит или нет, это мы еще посмотрим. Лично я считаю, что тут опасения сильно преувеличены. Гораздо меньше разговоров со знаком «плюс». Разговоров о том, что нам даст искусственный интеллект. А даст он нам то, что, как я вижу, мы все станем более креативными. Дивергентный и конвергентный типы мышления не антагонисты. Напротив, они естественным образом дополняют друг друга. Обратите внимание на мои действия в описанном мною примере. Я действую вполне конвергентно. Просто улучшаю шаг за шагом свой вопрос. А мой второй пилот дополняет меня. Ищет и находит всевозможные варианты решения. И это, как я считаю, самое важное свойство генеративных моделей искусственного интеллекта.
Ну а про классическое решение задач 1С вы можете узнать в рамках практических онлайн-курсов. Подробнее о курсах по ссылке.
Комментарии (12)
jimquery
14.04.2024 15:37Регулярно сталкиваюсь с задачами в интернете, условия которых понятны только автору текста. Прочитайте Вашу первую задачу и попытайтесь понять, что же всё-таки имеется в виду под "этот день".
itmind
14.04.2024 15:37+3при использовании 1С
Где в статье хоть один текст запроса на языке запросов 1с?
Где ответы copilot именно текстом для 1с? В статье MySQL.
Статья должна называться "Пример дивергентного мышления ИИ при использовании MySQL запрос copilot"
Gleidan
14.04.2024 15:37+1Абсолютно не согласен насчёт утверждения, что в статье представлен пример «дивергентного мышления».
1. Все описание не соответствует критериям дивергентного мышления.
В статье представлен элементарный пример решения с обратной связью. Вы каждый раз давали ИИ обратную связь, то есть уточняли свой запрос. А вот если бы вы единожды четко сформулировали вопрос, получили бы ряд решений (хотя бы одно из которых даже в голову вам не пришло бы) и одно из которых ИИ признал бы лучшим - это уже дивергентное мышление
Дивергентное мышление основано на рефлексии. Но вместо ИИ вы рефлексировали все решения. Так что вы лишь привели пример своего дивергентного мышления
MaximRV
1С тут явно притянуто. Что задача, что решение безотносительно 1С. С таким же успехом можно было упомянуть QuickBooks.
exwill Автор
Вы где-нибудь видели QuickBooks copilot или QuickBooks запрос copilot?
MaximRV
пытаюсь понять ваш ответ, но никак не осилю, Расшифруйте пожалуйста, где вы встречали указанные вами сочетания copilot с упомянутой вами 1С. В вашей же статье лишь mySQL Не прослеживается прикладное назначение к 1С.
Я же имел ввиду. Что многие предприятия в задачах своей автоматизации на какой-бы то ни было платформе автоматизации сталкиваются с описанными вами задачами про поиск каких-бы то ни было данных, в т.ч. дней.
exwill Автор
Набираете в Google или в Яндекс "1С запрос copilot"
MaximRV
ну нормально чо. на инфостарте ваши же решенич за 5-10 стартмани. А здесь получается - статья "затравочка", чтобы привлечь. Ну тогда надо чётче в статье излагать суть и чаще упоминать 1с, да и запросы транслировать из mySQL в 1С более явно - ну примерно как у вас там на инфостарте.
Вы не переживайте у меня там тоже есть аккаунт, и разработки я там тоже размещаю.
Если что, минусить я не могу, не хватает, да и не собирался.
Извините.
MaximRV
впрочем и в яндексе поиск ведёт только к вам.