Здравствуйте, Evgeny.Panasyuk, Вы писали:
BFE>>>>Зачем графы? Можно всю жизнь проработать программистом и ни разу не использовать граф в явном виде.
EP>>>Так математика как раз и делает неявные структуры явными,
BFE>>Но это ничего не даёт на практике.
EP>Именно что даёт.
Что именно?
EP>>>что упрощает коммуникацию и аккумулирование знаний.
BFE>>Да, разумеется, только вот я не помню, что бы кто-то говорил нечто вроде:
BFE>>"образование цикла внутри графа построенного на смарт указателях привёло к утечке памяти".
EP>Именно так и говорят — пруфАвтор: T4r4sB
Дата: 02.06.16
:
Ладно, здесь я не прав. Раз графы преподают, значит они такие слова будут использоваться.
BFE>>Единственное, что приходит на ум, это граф переходов конечного автомата.
EP>А как же например вездесущие деревья? 
Деревья — это частный случай, который намного проще.
EP>Или например односвязные списки
А список проще дерева.
EP>и генератор псевдослучайных чисел?
Причём тут генератор псевдослучайных чисел?
EP>Да даже сложность кода меряют через характеристику графа https://en.wikipedia.org/wiki/Cyclomatic_complexity
И что это даёт на практике?
EP>Например сортировка часто используется? А там те самые графыАвтор: Evgeny.Panasyuk
Дата: 20.10.14
.
И такая реализация где-то используется?
BFE>>Но и этот граф, опять же, присутствует в неявном виде.
EP>Да не важно в каком виде он выражен в коде.
Чаще всего тот граф, о котором идёт речь, воображаемый и явно никак не присутствует в коде.
EP>Это не лишает его математических свойств, применимости алгоритмов и их характеристик.
Математические свойства, конечно, остаётся, а вот насчёт алгоритмов есть большие сомнения.
EP> И чем раньше ты распознаешь этот неявный граф, тем раньше расширишь понимание задачи и получишь дополнительный инструментарий.
Что это такое — неявный граф?
EP>>>Естественно можно использовать что-то неявно, не подозревая об опыте и знаниях накопленных столетиями. Но зачем заново пытаться переоткрыть то, что давно изучено? NIH?
BFE>>Я не о том, чтобы что-то переоткрывать, а о том, что графы вообще не используются в подавляющем большинстве задач.
EP>Да например те же вездесущие социальные сети, там графы в полный рост.
Да неужели? Никогда не слышал ни о каких реальных графах в социальных сетях. Эти графы почти всегда воображаемые. Исключение — это когда какие-нибудь студенты проводят аналитическую работу, а на практике работа с такими графами сводится к работе со списком друзей.
BFE>>>>В стандартной библиотеке даже ни одного алгоритма, ни одного класса для графа нет, насколько я помню.
EP>>>Это вообще ни разу не аргумент и не оправдание. В стандартной библиотеке очень много чего нет, но это означает что нужно знать только то что в неё включено, очевидно же
BFE>>Как и любое теоретическое знание, знание графов пользу принести может. Однако, на практике знание графов нужно только если этого требует задача.
EP>Так не зная графов, не умея их распознавать, не получится и понять требует ли их задача или нет 
Граф — это довольно простое построение и не распознать его не получится.
EP>Или тебе приходят разжёванные задачи вида "вот тут примени вектор, вот тут граф, вот тот обход в ширину" 
Последние десять лет все задачи сводились примерно к таким: вот тут у нас есть несколько потоком изображений с камер, надо надо в реальном времени убрать с них все искажения вносимые оптикой. Или. Вот мы тут девайс с моторчиками спаяли, надо обеспечить плавность и согласованность их работы, написать графический интерфейс, удалённое управление, мониторинг, обеспечить нескольких режимов ассистирования, какие нужны — спросишь у операторов.
BFE>>Количество задач в которых используются графы существенно меньше, чем, скажем, задач, где используется массив.
EP>И что с того что реже чем массив? Массив например используется реже чем целые числа 
Ага. А целое число — это такой вырожденный граф состоящий из одной вершины.
EP>Да даже если допустить что графы встречаются хотя бы в 2% задач — этого уже с головой достаточно для того чтобы их изучить хотя бы на базовом уровне, так как рано или поздно такая задача обязательно попадётся.
У меня такое впечатление, что как человек взявший в руки молоток во всём видит гвозди, так и человеку изучившему теорию графов во всем мерещатся графы.
Собственно единственное реальное применение графа, которое вы указали — это GC. Вероятно графы ещё используются в навигаторах и, быть может, в моделировании электрических схем. В остальных областях графы используются разве что для рисования красивых картинок под грифом "аналитика".