Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сложные задачи

414
05 июля 2013 года
CassandraDied
763 / / 24.05.2012
Собственно, мне интересно: а сталкивался ли кто-нибудь на работе с таким заданием, которое невозможно было бы выполнить? Если да, то в чём заключалась задача и почему её выполнить было невозможно?
Думаю, такие вещи случаются, но я искренне не могу представить, какая задача может быть невыполнима.
Исключая те задачи, конечно, которые просто безумны и не могут быть выполнены чисто физически на имеющемся оборудовнии.

Мне бывало пару раз лень делать что-то сложное, потому что я примерно прикидывал, сколько (много) придётся затратить времени на выполнение поисков или разработки решения, в таких ситуациях было проще и, как мне кажется, рациональнее, поставить иную задачу, к чему я и старался всё свести, но достигнуть одной и той же цели.
86K
05 июля 2013 года
MadridianFox
11 / / 03.07.2013
Была у заказчика идея на грани безумия - средствами PHP сравнивать на идентичность один файл с тысячей (.doc). Однако в ходе совещания было сказано что это непостижимо да и по сути ненужно.
360
06 июля 2013 года
P*t*
474 / / 15.02.2007
Цитата: MadridianFox
Была у заказчика идея на грани безумия - средствами PHP сравнивать на идентичность один файл с тысячей (.doc). Однако в ходе совещания было сказано что это непостижимо да и по сути ненужно.



У каждого файла должен быть заранее посчитанный хеш (например, MD5). Хеши хранятся в сортированном списке. Хеш нового файла ищется там бинпоиском. Если есть совпадения, то скорее всего файлы идентичны (для гарантии можно побайтово сравнить с нужным файлом). Работает (не считая вычисления хеша) за O(log N) количества файлов, реализуется за полчаса.

Аналогичным образом можно искать дубликаты в любом множестве файлов -- нужно будет отсортировать список хешей и найти все повторы.

360
06 июля 2013 года
P*t*
474 / / 15.02.2007
Цитата:

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



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

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

414
06 июля 2013 года
CassandraDied
763 / / 24.05.2012
Цитата:
Вот скажут -- разработай искусственный интеллект


А я им такой — а что такое искусственный интеллект и чем он отличается от естественного? :) И на этом всё закончится, потому что ответ не будет найден, а занчит и задача не будет сформулирована.

Цитата:
Имеется полным полно задач, которые не решены, но отсутствие решения в них не доказано.


Но позвольте, Сэр, программисты не должны заниматься доказательством существования решения каких-то задач. Особенно в тех случаях, если задачи несильно относятся к компетенции программиста.
Вот с ИИ как раз такая ситуация. Разрабатывать модель интеллекта — это не задача программиста. Да и вообще, я бы гнал в шею заказчиков, которые ТЗ заменяют на общие фразы.

Цитата:
Вполне может быть, что ИИ (если его придумать) сможет работать даже на персоналках


Последние тенденции говорят о том, что так и будет. Только вычислительная часть ИИ будет находиться в облаке, а вот управляющий интерфейс — у клиента. Но это я так, к слову.

360
06 июля 2013 года
P*t*
474 / / 15.02.2007
Цитата: CassandraDied

А я им такой — а что такое искусственный интеллект и чем он отличается от естественного? :) И на этом всё закончится, потому что ответ не будет найден, а занчит и задача не будет сформулирована.



При желании можно строго сформулировать.
К примеру программа, которая пройдет тест Тьюринга, организованный заказчиком.

Цитата: CassandraDied

Цитата:
Имеется полным полно задач, которые не решены, но отсутствие решения в них не доказано.


Но позвольте, Сэр, программисты не должны заниматься доказательством существования решения каких-то задач. Особенно в тех случаях, если задачи несильно относятся к компетенции программиста.



Этим вы принижаете программистов до исполнителей, выполняющих почти механическую работу по комбинированию ранее придуманных шаблонов. В таком случае, конечно, любая корректно поставленная задача выполнима за конечное время.

414
06 июля 2013 года
CassandraDied
763 / / 24.05.2012
Цитата:
При желании можно строго сформулировать.


Что ж ни у кого такого желания не появилось? Ох, если бы это можно было однозначно сформулировать, то не было бы нескольких течений, которые понимают ИИ и интеллект в частности по-разному.

Цитата:
К примеру программа, которая пройдет тест Тьюринга, организованный заказчиком.


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

Цитата:
Этим вы принижаете программистов до исполнителей, выполняющих почти механическую работу по комбинированию ранее придуманных шаблонов.


Вовсе нет, Сэр. Вот смотрите: если заказчик ставит задачей разработать ИИ, то он должен сначала обращаться не к программисту, а к математику, который хорошо владеет теорией нечётких множеств, теорией кибернетики, теорией экспертных систем и так далее, чтобы разработать конкретную модель интеллекта.
Далее, когда разработана модель, оформляется техническое задание. При этом в техническом задании, если не указана конкретные методы его реализации, то очень хорошо расписаны функции, которые программа должна выполнять, очень подробно.
И вот тут уже необходимы навыки программиста, который разбирается, как программно реализовать функции, знает, где могут быть ошибки в реализации, знает, какие технологии применить, чтобы получить максимальную производительность.
Математику, который разрабатывал теоретическую модель и выбирал группу методов, которыми будет решаться задача, это знать ни к чему.

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


Есть вид задач, которые считаются вообще невыполнимыми. В прямом смысле этого слова. Такие задачи называются трансцедентальными. Они требуют такой объём вычислительной мощности, которого просто нет на земле и никогда не будет. Но, однако, эти задачи могут быть очень просты со стороны понимания.

86K
07 июля 2013 года
MadridianFox
11 / / 03.07.2013
Цитата: P*t*
Цитата: MadridianFox
Была у заказчика идея на грани безумия - средствами PHP сравнивать на идентичность один файл с тысячей (.doc). Однако в ходе совещания было сказано что это непостижимо да и по сути ненужно.



У каждого файла должен быть заранее посчитанный хеш (например, MD5). Хеши хранятся в сортированном списке. Хеш нового файла ищется там бинпоиском. Если есть совпадения, то скорее всего файлы идентичны (для гарантии можно побайтово сравнить с нужным файлом). Работает (не считая вычисления хеша) за O(log N) количества файлов, реализуется за полчаса.

Аналогичным образом можно искать дубликаты в любом множестве файлов -- нужно будет отсортировать список хешей и найти все повторы.


За идею спасибо - может пригодится) Однако я допустил ошибку в описании задачи - нужна скорее семантическая идентичность.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог