+7(499)495-49-41

Теория 6 рукопожатий: как проверить?

Содержание

Правило и теория 6 рукопожатий

Теория 6 рукопожатий: как проверить?

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

Правда ли, что мир тесен?

Наверное, никто не сможет сказать точно, когда появилось это присловье.

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

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

“Звенья цепи”

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

Как уже было сказано, впервые идея, оформившаяся позднее как теория 6 рукопожатий, стала достоянием общественности в 1929 году благодаря книге венгерского писателя Фридеша Каринти “Звенья цепи”.

В ней он активно продвигал мысль, что благодаря таким средствам коммуникации, как телефон и телеграф, а также авиации, жители Земли стали “гораздо ближе друг к другу, чем когда-либо прежде”.

Надо сказать, что на тот момент население планеты составляло “всего” полтора миллиарда человек. Однако идея о том, что любой из них, зная не более 5 человек, каждый из которых являлся бы приятелем предыдущего, сможет связаться со случайным жителем планеты, показалась читателям шуткой, и никто не стал проверять ее истинность.

Теория 6 рукопожатий

Проблемы общения и социальных связей во все времена были в центре внимания психологов.

В 1969 году двое из них, Джеффри Трэверс и Стэнли Милгрэм, выдвинули гипотезу, впоследствии получившую название “правило 6 рукопожатий”.

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

Экспериментальная основа

Первый вопрос, возникший после того, как была предложена теория 6 рукопожатий — как проверить ее истинность. Надо сказать, что еще за два года до опубликования своей работы Стэнли Милгрэм провел исследование, имевшее целью определить длину цепочки, соединяющей жителей нашей планеты.

Оно получило название “Мир тесен”, и в качестве математической модели была выбрана сильно-связная сеть, характеризуемая короткими путями между двумя случайными вершинами графа. Для численной реализации эксперимента Милгрэм разработал специальный алгоритм для подсчета количества связей между двумя объектами.

Кроме того, по ходу исследования его авторами постоянно фиксировалась длина пути от одного человека до другого.

Ход эксперимента

В качестве стартовых площадок для исследования ученые выбрали города Омаха и Уичито, расположенные в штатах Небраска и Канзас, а в качестве адресата — одного из жителей Бостона. Такое решение было обосновано тем, что эти населенные пункты не только были удалены друг от друга географически: между ними была настоящая пропасть в плане уровня жизни и образования.

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

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

Результат

Главным препятствием к получению точной информации в результате данного эксперимента стало то, что многие из тех, к кому приходили письма на различных этапах его проведения, не соглашались передавать их дальше. Всего ученые отправили 296 конвертов с просьбой об участии, из которых до бостонца дошли только 64.

При этом средняя длина каждой цепочки, достигшей цели, составила 5,5-6 человек. Был установлен и еще один интересный факт: некоторые участники выбирали “промежуточное” звено данной цепи, руководствуясь тем, кто из их знакомых живет ближе других к Бостону. Причем именно в таких случаях письма и не достигали до цели.

На основе полученных данных спустя два года была сформулирована теория 6 рукопожатий, которая с развитием Интернета получила новый смысл.

Шесть электронных писем

В 2003 году группа ученых решила провести эксперимент в стиле “Мир тесен”, но с учетом современных реалий.

Поэтому вместо обычных были использованы 24163 электронных письма, значительно расширен круг участников и число конечных адресатов.

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

Теорема 6 рукопожатий: прикладное значение

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

Граф “Мир тесен”

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

Иначе говоря, граф “Мир тесен” представляет собой сеть, в которой типичное расстояние между двумя любыми вершинами или количество шагов, которые необходимы, чтобы достичь одну из другой, увеличивается пропорционально натуральному логарифму от числа вершин в сети. Причем доказано, что социальные сети, вики-сайты, связность сети Интернет, генные сети и др.

довольно хорошо описываются графом “Мир тесен”.

Подтверждение правила 6 рукопожатий в социальных сетях

В 2011 году к экспериментам, призванным подтвердить теорию 6 рукопожатий, подключилась знаменитая социальная сеть сети , которая провела совместное исследование с Миланским университетом.

Согласно его результатам количество “звеньев цепи” в среде пользователей виртуального мира, созданного Марком Цукербергом, даже меньше 6-ти и в среднем равно 4,74.

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

Нашлись энтузиасты, которые проверили, действует ли теория “6 рукопожатий” ВКонтакте. По их данным, между двумя случайными пользователями этой российской сети в среднем всего 5,65 звеньев, или 6,65 “рукопожатий”. Таким образом, идеи Стэнли Милгрэма оказались верны и в данном случае.

Нетворкинг

Принцип “6 рукопожатий” лег в основу нового понятия. Речь идет о нетворкинге, который определяется как профессиональная или общественная деятельность, имеющая целью максимально эффективно решать поставленные задачи, пользуясь помощью друзей и знакомых.

Критика

Теория “6 рукопожатий” не раз становилась мишенью для критики. Во-первых, потому, что, как уже было сказано, многие цепочки прерывались, так как очередное “звено” эксперимента не хотело ее продолжать. Во-вторых, если речь идет о проведении опыта в социальных сетях, неизвестно, насколько корректно называть знакомыми всех людей, которые внесены в список друзей.

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

Источник: https://1skidka.com/page.php?id=7520

Правило шести рукопожатий: миф или реальность?

Теория 6 рукопожатий: как проверить?

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

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

В чем суть теории и ее открытие

Каждому из нас известна поговорка «как тесен мир», которая гласит о том, что в самых отдаленных местах можно встретить своего бывшего коллегу, одноклассника и просто знакомого.

А ведь, на первый взгляд это обычное совпадение, и не больше.

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

Сначала эта теория получила известность в начале 20-го века, после выхода в свет рассказа «Звенья цепи», написанного венгерским писателем Ф. Каринти. В нем он в игровой форме продемонстрировал, что каждый из нас может быть знаком с абсолютно любым другим человеком, невзирая на то, является ли он известной персоной или же обычным индивидуумом.

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

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

Подтверждение правила «6 рукопожатий» современными технологиями

Дальше – больше: с развитием технологий ученые смогли высчитать данный алгоритм математическим путем. Одно из масштабных исследований было с размахом проведено в 2006-м году сотрудниками компании Microsoft. Они обработали миллиарды сообщений, отправленных пользователями в течение месяца. Оказалось, что показатель среднего расстояния между 2-мя пользователями составил величину 6,6.

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

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

Как проверить гипотезу в соцсетях

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

  1. Выбираем в поиске людей любого незнакомого Вам человека (для этого введите имя и фамилию, которые придут в голову)
  2. Из выпавшего списка кандидатов можно, не колеблясь, выбрать того, который живет в другом городе, а еще лучше в другой стране
  3. Заходим на его страницу, в его список друзей и выбираем первого по списку
  4. Теперь посещаем страницу этого первого по списку и смотрим его друзей, и снова выбираем самого первого
  5. Повторяем эту операцию до 5-6 раз. Но лично я уже на 3-м человеке обнаружил своих знакомых

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

За против идеи 6 рукопожатий

Существуют ли какие-либо ограничения у этой, на первый взгляд, безгрешной теории? Конечно, поскольку несколько столетий назад человечество не было так монолитно и не обладало такими возможностями для перемещения.

На самом деле, правило 6 пожатий не означает автоматически, что каждый из нас может быть знаком с английской королевой или султаном Брунея. Люди склонны формировать сообщества по каким-либо ограниченными признакам, например, по возрасту, по тематическим интересам и так далее. Границы каждого круга знакомств обнаруживаются уже через 2-3 уровня.

Идею, которая подобна гипотезе 6 рукопожатий, раскрывает добрый и трогательный фильм «Елки». В нем действие происходит в различных российских городах, каждый из которых находится в своем собственном часовом поясе. Люди по цепочке передают просьбу ребенка, помочь которому может лично президент, но никто не знаком с ним лично.

Вот с таким интересным правилом, друзья, мы познакомились сегодня, и сопровождающий нас прогресс только подтверждает его. Люди становятся все более коммуникабельными благодаря социальным сетям, онлайн конференциям и другим способам и механизмам общения. блога, и мы с Вами будем и дальше обсуждать полезные и увлекательные события. Пока!

Источник: http://capitalgains.ru/stati/pravilo-shesti-rukopozhatij.html

Как я теорию 6-ти рукопожатий проверял. Часть 1

Теория 6 рукопожатий: как проверить?

Чтобы получить более менее репрезентативную выборку я взял несколько человек из разных категорий. В первую я поместил своих знакомых по школе. Во вторую знакомых по универститету.

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

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

Итого, у меня было 9 исходных человек:

  • 2-е школьных знакомых(по одному на каждую школу, в которых я учился);
  • 2-е знакомых по университету(по одному на каждый университет, в которых я учился/работал);
  • 5 студентов. 4 из университета моего профиля и один по смежному (я математик, а он – физик из другого университета).

Далее я собирался взять данные по друзьям и друзьям друзей этих людей. Записать все в БД, построить граф отношений, а дальше уже пытаться анализировать.

Готовим БД

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

Непосредственно под пользователей:

create table users ( id serial not null constraint users_pkey primary key, _id integer, data jsonb, );

и под отношения:

create table friends ( user1_id integer constraint friends_users__id_fk references users (_id), user2_id integer constraint friends_users2__id_fk references users (_id), id serial not null constraint friends_pkey primary key );

А вот схема:

Поля в таблице friends ссылаются на _id поле таблицы users.

Стягиваем данные

Для стягивания данных я выбрал scrapy, для хранения быстрых данных взял монгу, ну и для непосредственного заполнения БД — peewee. Для доступа к данным вконтакте дергал .api напрямую.

Вот что у меня получилось:

# file: .//db.py import peewee from playhouse.postgres_ext import PostgresqlExtDatabase, BinaryJSONField from .settings import DATABASE_CONNECTION # настройки подключения к БД db = PostgresqlExtDatabase( register_hstore=False, **DATABASE_CONNECTION ) # базовая модель class BaseModel(peewee.Model): id = peewee.PrimaryKeyField() class Meta: database = db # пользователи class Users(BaseModel): _id = peewee.IntegerField(index=True) meta = BinaryJSONField() depth = peewee.IntegerField() # связи между пользователями class Friends(BaseModel): user1_id = peewee.IntegerField(index=True) user2_id = peewee.IntegerField(index=True) # чтоб вручную таблички не создавать, можно будет просто запустить скрипт if __name__ == '__main__': db.create_tables([Users, Friends])

Описание pipeline:

# file: .//pipelines.py from .db import Users, Friends class Pipeline(object): CHUNK = 1000 # для оптимизации, будем писать в БД по 100 записей за раз def open_spider(self, spider): self.users = set([i._id for i in Users.select(Users._id)]) # чтобы не задваивались пользователи friends = list(Friends.select()) # чтобы не задваивались отношения self.friends = set([(i.user1_id, i.user2_id) for i in friends] + [(i.user2_id, i.user1_id) for i in friends]) self.users_to_go = [] # чанк на запись пользователей в БД self.friends_to_go = [] # чанк на запись отношений в БД def insert(self, lst, Model, force=False): # метод для записи чанка в БД if lst and (force or len(lst) % self.CHUNK == 0): Model.insert_many(lst).execute() del lst[:] def close_spider(self, spider): # по завершению работы спайдера дописываем в БД незаполненые полностью чанки self.insert(self.users_to_go, Users, force=True) self.insert(self.friends_to_go, Friends, force=True) def process_item(self, item, spider): # собственно подготовка данных на запись if item['id'] not in self.users: if item['first_name'] != 'DELETED': self.users_to_go.append({'_id': item['id'], 'meta': item, 'depth': item['depth']}) self.users.add(item['id']) if 'parent_id' in item: pair = (item['parent_id'], item['id']) if pair not in self.friends: self.friends.add((item['parent_id'], item['id'])) self.friends.add((item['id'], item['parent_id'])) self.friends_to_go.append({'user1_id': item['parent_id'], 'user2_id': item['id']}) self.insert(self.users_to_go, Users) self.insert(self.friends_to_go, Friends) return item

Сам скрапер:

# file: .//spider/friends.py import json import scrapy class FriendsSpider(scrapy.Spider): name = '_friends' allowed_domains = ['.com'] start_urls = ['http://.com/'] def get_url(self, id): return 'https://api..com/method/friends.get' \ '?user_id={id}&v=5.52&count=10000&fields=nickname,bdate,photo_200,education,city,sex'.format(id=id) def start_requests(self): urls = [(“https://api..com/method/users.get” \ “?user_id={id}&v=5.52&fields=nickname,bdate,photo_200,education,city,sex”.format(id=_id), _id) for _id in self.crawler.settings.get('START_IDS')] for url, _id in urls: yield scrapy.Request(url, callback=self.parse, meta={ 'user_id': _id, 'depth': 1, 'proxy': self.crawler.settings.get('PROXY_URL') }, cookies={'remixlang': 0}) def parse(self, response): data = json.loads(response.text) items = data['response']['items'] if 'items' in data['response'] else data['response'] for item in items: item['depth'] = response.meta['depth'] if 'parent_id' in response.meta: item['parent_id'] = response.meta['parent_id'] yield item url = self.get_url(item['id']) # контроль глубины if response.meta['depth'] < self.crawler.settings.get('DEPTH'): yield scrapy.Request(url, callback=self.parse, meta={ 'parent_id': item['id'], 'depth': response.meta['depth'] + 1, 'proxy': self.crawler.settings.get('PROXY_URL') }, cookies={'remixlang': 0})

Файл настроек:

# file: .//settings.py ITEM_PIPELINES = { '.pipelines.Pipeline': 100, } DOWNLOADER_MIDDLEWARES = { “scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware”: 100, } START_IDS = [ 123, # идентификаторы пользователей вконтакте, по которым будет строится база 124, ] DEPTH = 3 # глубина поиска друзей PROXY_URL = “http://188.40.141.216:3128” # прокся, подставьте какую-нибудь работающую DATABASE_CONNECTION = { 'database': '_parse', 'user': “user”, 'password': “12345”, }

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

Вникаем в рекурсивные запросы

Рассмотрим теперь, что это за запросы такие.

Сами рекурсивные запросы строятся с использованием конструкции WITH и добавлением магического слова RECURSIVE.

Я сначала построю простой cte запрос, который выведет третий уровень дерева отношения для пользователя с _id = 123, а потом переделаю его в рекурсивный запрос.

Чтобы просто вывести третий уровень, можно использовать такой запрос:

WITH level1 AS ( — первый уровень (все друзья 123) SELECT DISTINCT unnest(ARRAY [user1_id, user2_id]) AS id FROM friends WHERE user2_id = 123 OR user1_id = 123 ), level2 AS ( — второй уровень (все друзья друзей 123) SELECT DISTINCT unnest(ARRAY [user1_id, user2_id]) AS id FROM friends f JOIN level1 l ON l.id = f.user1_id OR l.id = f.user2_id ), level3 AS ( — третий уровень (все друзья друзей друзей 123) SELECT DISTINCT unnest(ARRAY [user1_id, user2_id]) AS id FROM friends f JOIN level2 l ON l.id = f.user1_id OR l.id = f.user2_id ) SELECT * FROM level3

Графически данный запрос выдает все узлы, помеченные зеленым:

Но нас сами уровни не очень интересуют, интереснее построить цепочки отношений. C цепочками сложнее. Если пробовать строить все возможные цепочки, их количество будет очень быстро возрастать.

Сам запрос будет выглядеть следующим образом (тут я добавляю ARRAY поле chain в котором храню цепочки, и на каждом следующем уровне добавляю элементы):

WITH level1 AS ( — первый уровень (все друзья 123) SELECT DISTINCT CASE WHEN user2_id = 123 THEN user1_id ELSE user1_id END AS id, ARRAY[123, CASE WHEN user2_id = 123 THEN user1_id ELSE user2_id END] as chain FROM friends WHERE user2_id = 123 OR user1_id = 123 ), level2 AS ( — второй уровень (все друзья друзей 123) SELECT DISTINCT CASE WHEN l.id = f.user2_id THEN user1_id ELSE user1_id END AS id, l.chain || CASE WHEN l.id = f.user2_id THEN user1_id ELSE user2_id END as chain FROM friends f JOIN level1 l ON l.id = f.user1_id OR l.id = f.user2_id WHERE CASE WHEN l.id = f.user2_id THEN user1_id ELSE user2_id END != ALL(l.chain) ), level3 AS ( — третий уровень (все друзья друзей друзей 123) SELECT DISTINCT CASE WHEN l.id = f.user2_id THEN user1_id ELSE user1_id END AS id, l.chain || CASE WHEN l.id = f.user2_id THEN user1_id ELSE user2_id END as chain FROM friends f JOIN level2 l ON l.id = f.user1_id OR l.id = f.user2_id WHERE CASE WHEN l.id = f.user2_id THEN user1_id ELSE user2_id END != ALL(l.chain) ) SELECT * FROM level3

На третьем уровне мой 4-х ядерный ноутбук начинал тарахтеть, но через пару секунд раздумй все же выдавал результат, содержащий ~650тыс строк.

Ради интереса попробовал построить 4-ый уровень (цепочки длиной в 5 звеньев). На его постройку ушло почти 5 минут сложных и упорных расчетов. Результат содержал 56 миллионов различных вариантов.

Очень хотелось взглянуть на 5-ый уровень, но времени не было и я пошел дальше.

Графически запрос выдает все возможные комбинации цепочек из 4 узлов. Например, такую:

Если внимательно посмотреть на запрос, используемый для постройки 2-го и 3-го уровней, можно увидеть, что они отличаются только таблицей, используемой в JOIN; для 2-го уровня это таблица 1-го уровня; для 3-го уровня –таблица 2-го уровня.

В общем, тут наблюдаем индукцию в чистом виде. Где level1 опеределяет базу индукции, а level2 и level3, стало быть, определяют 1-ый и 2-ой индукционные шаги.

Вот и перепишем данный запрос, с использованием рекурсивного запроса. Получится вот что:

WITH RECURSIVE chains(id, chain, depth) AS ( — основа индукции SELECT 123, ARRAY[123] AS chain, 0 AS depth UNION — индукционный шаг SELECT DISTINCT CASE WHEN l.id = f.user2_id THEN user1_id ELSE user2_id END AS id, l.chain || CASE WHEN l.id = f.user2_id THEN user1_id ELSE user2_id END as chain, depth + 1 as depth — увеличиваем уровень на 1 FROM friends f JOIN chains l ON l.id = f.user1_id OR l.id = f.user2_id WHERE CASE WHEN l.id = f.user2_id THEN user1_id ELSE user2_id END != ALL(l.chain) AND depth < 3 -- условие остановки ) SELECT * FROM chains

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

Рекурсивный запрос останавливается, когда результат текущего индукционного шага не содержит строк. То есть пуст.

Чтобы гарантировать остановку, мы добавляем поле depth, в котором храним текущий уровень дерева. Благодаря условию l.depth < 3, когда мы достигаем 3-го уровня, рекурсивный запрос гарантированно прекращает работу.

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

То есть у нас будут встречаться неполные цепочки, которые могут заканчиваться, например, на втором уровне:

Чтобы исправить такое поведение, достаточно в основном запросе добавить условие на глубину дерева. В нашем случае достаточно заменить:

SELECT * FROM chains

на:

SELECT * FROM chains WHERE depth = 3

В принципе, с этим запросом можно попробовать попроверять “теорию” 3-х рукопожатий. Что, тоже задачка, но не такая интересная для нас.

Как вы догадались, строить цепочки длиной 5 и более, а потом анализировать их – очень накладно (количество растет быстро и обыкновенная десктопная конфигурация, как правило, с такими объемами уже не справляется).

Решаем задачу

Однако, наша изначальная задача – это не поиск цепочек, а проверка теории 6 рукопожатий. Поэтому, второй моей идеей было – разбить множество пользователей на классы эквивалентности по отношению “друг моего друга – мой друг”. Для этого я выбрал произвольного пользователя и построил следующий запрос:

WITH RECURSIVE level(id, depth) AS ( SELECT 123 as id, 0 as depth UNION ALL — SELECT DISTINCT CASE WHEN l.id = f.user2_id THEN user1_id ELSE user2_id END AS id, l.depth + 1 as depth FROM level l JOIN friends f ON l.id = f.user1_id OR l.id = f.user2_id WHERE l.depth < 6 ) SELECT count(DISTINCT id) FROM level

Неожиданно получилось очень похожее на количество пользователей число. Я тут же запустил для сравнения следующий запрос:

SELECT count(*) FROM users

Бинго! Размеры-то совпали. Что означало, что все пользователи в моей выборке связаны между собой не более, чем через 6 рукопожатий. Таким образом, формально, для данной выборки я утверждение доказал. Честно говоря, до последнего момента я не был уверен в положительном исходе.

Я также дополнительно проверил запрос с WHERE l.depth

Источник: http://smyt.ru/blog/kak-ya-teoriyu-6-ti-rukopozhatij-proveryal-chast-1/

Теория шести рукопожатий

Теория 6 рукопожатий: как проверить?

Если честно не особенно то я верю во все это, но такая теория есть.

Впервые идею о том, что любые два человека в мире могут быть соединены последовательностью личных контактов и что эта цепочка в большинстве случаев будет составлена из определенного числа (а именно — из пяти) звеньев, сформулировал венгерский писатель Фридеш Каринти.

Его рассказ, написанный в 1929 году, так и назывался: «Звенья цепи». В рассказе шла речь о некой игре, мысленном эксперименте, имевшем целью доказать, что население Земли куда ближе друг к другу, чем принято считать.

Выглядело это так: называли любого человека, знаменитого или неизвестного, из числа 1,5 млрд жителей Земли начала XX века, — и нужно было построить цепочку не более чем из пяти человек, соединяющих игрока с этим человеком.

Вот характерный отрывок из рассказа: «Хорошо, Сельма Лагерлеф, — сказал один из участников игры, — это проще простого». И уже через пару секунд он выдал решение: «Сельма Лагерлеф недавно получила Нобелевскую премию по литературе, так что она должна знать шведского короля Густава, он во время церемонии вручал ей награду.

Широко известно, что король Густав любит играть в теннис и участвует в международных соревнованиях. Ему доводилось играть и с Белой Керлингом, так что они должны быть знакомы. Так получилось, что я тоже знаю Керлинга». (Говоривший сам был неплохим теннисистом.) «Для этого нам потребовалось два звена из пяти.

И неудивительно, всегда проще найти кого-нибудь, кто знаком со знаменитостью, нежели с заурядной персоной. Ну, дайте-ка мне что-нибудь посложнее!»

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

Давайте узнаем про это подробнее …

Эксперименты, подтверждающие гипотезу

Однако без экспериментальных подтверждений это предположение остается не более чем игрой мысли. И эксперименты неоднократно проводились. Сначала гипотезу о том, что все люди знакомы друг с другом через относительно небольшое число промежуточных связей, проверил известный американский психолог Стэнли Милгрэм. Эксперимент, поставленный в 1967 году, назывался «Тесный мир».

Триста человек участников, случайно выбранные жители двух городов- Омахи, штат Небраска, и Уичито, штат Канзас, — должны были отправить письма некоему биржевому брокеру в Бостоне.

Адрес был неизвестен, однако можно было переслать письмо через кого-нибудь из знакомых, кто теоретически мог знать этого таинственного получателя, — и так далее, пока письмо не придет куда надо.

Каждый промежуточный получатель-отправитель должен был дописать в письме свое имя, чтобы можно было проследить, как шло письмо и какой длины получилась цепочка.

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

Так, например, двое исследователей из Корнеллского университета, Дункан Уоттс и Стивен Строгатц, в 1998 году создали математическую модель «тесного мира» и повторили эксперимент Милгрэма с большим размахом.

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

В этом исследовании письма передавались уже не по почте и не из рук в руки, а через интернет. Результат был близок к результату Стэнли Милгрэма: средняя длина цепочки составила около шести звеньев.

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

Наиболее же масштабное исследование, доказывающее гипотезу, провели в 2006 году Юре Лесковец и Эрик Хорвитц из компании Microsoft. Они проанализировали логи службы мгновенных сообщений MSN Messenger- всего более 30 млрд сообщений, отправленных 240 млн человек за 30 дней (разумеется, вся эта статистика обсчитывалась не вручную, а на компьютере, и исследование заняло около двух лет).

Не читая тексты сообщений, Лесковец и Хорвитц могли видеть данные пользователей: пол, возраст, местоположение, кто как часто общается, насколько объемны его сообщения и кто кого знает. Результаты этого исследования обширны, но главное, что нам интересно, — среднее расстояние между двумя пользователями MSN составило 6,6 связи.

Это число больше, чем в эксперименте Милгрэма, но довольно близко к нему.

В социальной сети ВКонтакте приложение («Цепочка друзей — теория шести рукопожатий») позволяет искать цепочки знакомств между пользователями сети.

Поскольку аудитория ВКонтакте ограничена (Россия и страны СНГ), добиться тех же результатов, какие были описаны выше, не удаётся — цепочки оказываются короче (3—4 человека).

Однако интересно, что цепочки длиной более 6 человек практически не встречаются, что косвенно подтверждает изначальную теорию. Вот тут подробнее про подобный эксперимент

С повсеместным распространением интернета принцип легкодоступности практически любого человека стал очевиден.

В социальных сетях и крупных тематических сообществах — таких как LiveJournal, , ontakte, и даже Wikipedia — существуют сервисы, позволяющие проследить цепочку общих знакомых от одного пользователя до другого, игры, основанные на принципах «тесного мира», и исследовательские приложения; есть и специальные сетевые проекты, созданные с целью дальнейшего исследования возможностей глобальной коммуникации.

По данным самого свежего эксперимента на эту тему, сегодня любого можно найти через социальные сети всего за 12 часов. Это стало известным благодаря Алексу Резерфорду из Масдарского института науки и технологий в Абу-Даби и социальной игре Tag Challenge, проведенной в 2012 году.

Целью соревнования было отыскать пять человек в пяти разных городах США и Европы. Единственными зацепками были фотоснимок человека, название города, в котором он находится, и информация о том, что он одет в футболку с логотипом Tag Challenge. Команда Алекса Резерфорда выиграла соревнование, разыскав трех из пяти человек в течение всего 12 часов.

Вопреки традиционной в таких ситуациях стратегии – рассказать об объекте поисков как можно большему количеству разных людей – команда Алекса Резерфорда пошла по другому пути, обращаясь персонально к тем, кто может помочь в поисках, основываясь на географических данных и другой информации, доступной в социальных сетях. По мнению руководителя команды, вполне вероятно, что при правильном подходе найти нужного человека можно и быстрее.

И все-таки: научный факт — или миф?

Сегодня гипотеза о «шести рукопожатиях» широко распространена.

Она популяризируется в художественных фильмах, телешоу и других явлениях массовой культуры, принцип «тесного мира» наглядно иллюстрируют социальные сети интернета, да и сама по себе идея доступности любого человека весьма притягательна. Кому не хочется быть «знакомым знакомого знакомого» английской королевы или Билла Гейтса, Джонни Деппа или Фиделя Кастро?..

Однако гипотезу зачастую трактуют неправильно: «я знаком с любым человеком на Земле через шесть рукопожатий» — так обычно говорят. Но «шесть» — это средняя длина цепочки, и до какого-нибудь африканского пигмея, тибетского монаха или полинезийского рыбака может оказаться все десять или пятнадцать «рукопожатий», если вообще удастся построить цепочку.

Второе распространенное заблуждение, связанное с «тесным миром», — что уже через один-два уровня знакомств мы имеем доступ к огромному числу людей. У каждого из нас, предположим, есть пресловутые сто друзей, у каждого из которых еще по сто друзей и т. д.

На самом деле людям свойственно образовывать замкнутые группы: по месту проживания, по роду деятельности или по работе, по интересам и увлечениям, по политическим и религиозным воззрениям, по образовательному уровню и уровню доходов… а ведь где-то есть и кастовые системы с весьма жесткими границами. И если основательно взяться и посчитать, сколько всего у вас «знакомых знакомых», довольно скоро обнаружатся границы социальной группы (или нескольких групп), к которой вы принадлежите, и станет видно, что на третьем уровне вы имеете доступ не к миллиону человек, как казалось, а всего к нескольким тысячам или десяткам тысяч.

Кроме заблуждений, происходящих от неправильного понимания «теории шести рукопожатий», недостатки присущи и ей самой. Уже Фридеш Каринти в своем рассказе заметил, что человечество не всегда было целостным.

Если Юлию Цезарю, писал Каринти, пришла бы в голову мысль связаться с одним из жрецов ацтеков или майя, жившим в Америке в одно время с ним, то у него ничего бы не вышло, невозможно было бы построить между ними цепочку ни из пяти, ни даже из трехсот звеньев — во времена Цезаря Америка была неизвестна европейцам.

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

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

Следовательно, результаты экспериментов, эти «шесть рукопожатий», могут быть применимы к Европе, к США, к европейской части России, быть может, к отдельным крупным городам, но не ко всей территории Земли, в разных районах будут разные цифры.

С результатами описанных выше исследований тоже не все безупречно.

В 2006 году Джудит Клейнфилд, профессор психологии из Аляскинского университета в Фэрбэнксе, обратила внимание, что 95% писем, отправленных входе эксперимента Милгрэма, не дошли до конечного адресата — то есть просто потерялись где-то на полпути.

Она обратилась к результатам других подобных исследований и обнаружила там то же самое. Так, например, во время эксперимента Уоттса и Строгатца из 24000 писем дошли 384.

«Если 95−97 писем из ста не доходят, можно ли говорить о доказательности такого эксперимента?- спрашивает Клейнфилд. — Почему мы в это верим? Соблазнительная идея, будто мы живем в ‘тесном мире’, где все знакомы со всеми максимум через шесть промежуточных знакомых, — это академический эквивалент городского мифа».

Исследование Microsoft, на первый взгляд подкупающее своими огромными числами (большие числа якобы не врут), тоже имеет свои недостатки: MSN-мессенджером пользуются 4% населения Земли, и эти 4% очень неравномерно распределены по планете — большая часть их приходится на США. В России, например, сервису MSN раньше массово предпочитали ICQ. Итак, мы опять пришли к тому, что результат исследования корректен для ограниченной территории, для ограниченных групп людей, но не для человечества в целом.

Что такое «теория шести рукопожатий» — факт или миф, точно сказать нельзя. Истина, скорее всего, где-то посередине. Но, так или иначе, «теория шести рукопожатий» — это интересное предположение, и вероятно, что по мере движения в будущее, с увеличением плотности населения Земли, с распространением интернет-технологий и взаимопроникновением культур люди будут становиться ближе друг к другу.

Откуда пошло название «шесть рубежей отдаления»

Драматург Джон Гуэйр, автор пьесы «Шесть рубежей отдаления», с легкой руки которого гипотеза пошла в массы, говорит, что использовать в названии пьесы число «шесть» его подтолкнули исследования отнюдь не Милгрэма, а… Гульельмо Маркони, одного из изобретателей радио.

В своей нобелевской речи Маркони сказал, что ему удалось передать читаемое сообщение на расстояние 2500 км. Он подсчитал, что если строить передающие станции с таким радиусом передачи, то для покрытия всей населенной территории Земли потребуется всего шесть (точнее — 5,83) передатчиков.

Гуэйр использовал это «шесть» как символ чего-то, охватывающего весь мир.

Игры «тесного мира»

Среди любителей кино известна игра «Шесть шагов до Кевина Бэйкона»: нужно найти цепочку до Кевина Бэйкона от любого другого актера (причем не обязательно современного, можно брать всю историю кинематографа). Цепочка строится по принципу «они снимались вместе» и не должна быть длиннее шести звеньев.

Интересно, что повод для возникновения этой игры дал сам Бэйкон, в одном из интервью хвастливо заметивший, что те, с кем он снимался, в свою очередь снимались со всеми голливудскими актерами. Другая похожая игра распространена среди математиков, она называется «Число Эрдеша».

Собственно число Эрдеша — это количество звеньев в цепочке совместных работ от заданного ученого до венгерского математика Пола Эрдеша, известного огромным количеством соавторских публикаций.

Вот еще некоторые интересные теории: вот например Теория струн одной картинкой, а вот интересно Теория Дарвина — миф или реальность? Вот еще знаменитая Теория заговоров: От Медичи к Ротшильдам ну и конечно же Шесть альтернатив теории Большого взрыва

Источник: https://masterok.livejournal.com/4845432.html

Правило 6 рукопожатий: что это и как работает?

Теория 6 рукопожатий: как проверить?

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

Чтобы совсем упростить эту схему, объясню на примере. Помните сериал «Во все тяжкие»? Там есть интересный момент, про то, что адвокат знает парня, который знает другого парня, который нужен.

Пока ещё не была сформирована теория, об этом впервые написал венгр Каринти Фридеш примерно в 1929 году.

Он в шуточной форме в рассказе «Звенья цепи» поделился идеей о том, что все люди на планете связаны между собой, несмотря на то, знамениты они, или из обычного простого рода.

Исследования психологов

В 1969 году психолог Стэнли Милгрэм вместе с коллегой Джеффри Трэверосом решили исследовать эту гипотезу и провести эксперимент. Для этого им требовался совершенно незнакомый человек, которого они решили обнаружить с помощью людей, что могли знать его «шапочных» знакомых и друзей. Случайным образом выбор пал на маклера из Массачучетса, который трудился в Бостоне.

Стэнли и Джеффри, по одним данным, подготовили 160 писем, а по другим – 300, и отправили разным жителям США. В этих письмах была просьба, чтобы они, написав свои контактные данные, переслали конверт какому-то человеку, который может быть близок к указанному маклеру или профессионально, или территориально, допустим, также живя в Бостоне или зная его родных в Массачусетсе.

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

У тех, кто знал об эксперименте, было мнение, что придётся затратить на процесс немало времени, и что письма пройдут, как минимум, через 100 рук, прежде, чем доберутся к указанному человеку.

В конце концов, до адресата дошло 60 писем.

И после того, как Милгрэм проанализировал весь список имён, которые указывали люди, участвующие в эксперименте, он понял, что конверты успели побывать в основном у 5-6 человек, после чего уже оказались у маклера.

То есть, теория шести рукопожатий действительно подтвердилась. После, Стэнли заметил, что имена трёх людей были указаны больше, чем на 30 конвертах.

Один из них – продавец одежды из магазина, рядом с которым проживал маклер, остальные два – его коллеги.

То есть, они обладали наиболее широким кругом знакомств, благодаря чему исследование завершилось благополучно. Позже, Малкольм Глауделл, журналист из Канады придумал термин «объединитель», который характеризует таких личностей, умеющих создавать связи.

Исследования Microsoft

В 2006 году компания Microsoft заинтересовалась этой теорией и решила провести собственное исследование. Благодаря современным технологиям стало возможным вычислить средний показатель математическим путём.

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

А если быть точнее, то средняя величина была равна 6,6.

Исследования на базе

Но на этом эксперименты не закончились, взяв за основу известную социальную сеть , в 2011 году учёные из университета в Милане получили немного иную цифру – всего 4,74.

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

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

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

А социологи из университета в Колубмии устроили целый квест. Набрав примерно тысячу добровольцев, они, предоставив всего поверхностную информацию, такую, как ФИО, место жительства и род деятельности 20 человек, попросили их найти при условии, что те будут пользоваться только электронной почтой. Не поверите, но буквально с помощью 4-х сообщений первый «секретный» человек был обнаружен.

Очень интересно представлена теория 6 рукопожатий в фильме «Ёлки». Он лёгкий, весёлый и трогательный, и повествует о том, как жители из разных уголков России помогают одному ребёнку из детского дома. А знаете, каким образом? Передают его просьбу друг другу, которая обращена к Президенту. А это сделать не так просто, хотя бы потому, что никто с ним лично не знаком.

Алгоритм

Предлагаю поиграть в игру и провести собственный эксперимент, чтобы убедиться, что вы действительно связаны через знакомых с абсолютно разными людьми на планете, даже с самим Дональдом Трампом или Аллой Пугачёвой с Тимати. Итак, что требуется:

1. Воспользуйтесь какой-либо социальной сетью, допустим ВК или .

2. В поиске напишите любое имя и фамилию, просто даже придумав.

3. Вам будет предложен список людей по запросу, выбирайте того, кто первым приглянется. Можете даже рискнуть и кликнуть на чужестранца.

4. Когда зашли на его страницу, посетите список друзей и нажимайте на самого первого.

5. Теперь повторяйте вышеуказанные действия, пока не обнаружите кого-то из тех, кто есть у вас в друзьях. Если даже придётся пройти 7-8 страничек, думаю, всё равно игру можно будет считать успешной.

Заключение

А на сегодня всё, уважаемые читатели! Напоследок предлагаю вам внести свою лепту в уменьшение уровней, чтобы связи обнаруживались намного быстрее. А как это сделать, можете узнать из статьи «14 правил эффективного использования нетворкинга».

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

Сил вам и вдохновения!

Материал подготовила Журавина Алина.

Источник: https://qvilon.ru/samorazvitie/pravilo-6-rukopozhatij.html

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.