2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1 ... 79, 80, 81, 82, 83, 84, 85  След.
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение18.04.2025, 07:43 
Аватара пользователя


29/04/13
8974
Богородский
Всё-таки у меня ощущение, что Демису не всё понятно. И у меня и у Демиса valids=len=15, но чистых кортежей гораздо больше именно у меня. Потому что сравнивался поиск по разным паттернам. У меня последний поиск по 15-228-2, Демис же привёл стату по 19-252.
Надеюсь понятно, что такое идеальное попадание в паттерн. Это когда нет чужих чисел, то есть нет ни плюсов ни минусов в соответствующей записи в квадратных скобках.

При поиске кортежей 19-252, такое идеальное попадание было главной целью поиска и случилось лишь раз.

При поиске кортежей 15-228-2, такое идеальное попадание случилось уже более ста раз. Приведу фрагмент своего лога 15/15. Уменьшу шрифт, чтоб строки хорошо помещались.

Код:
0*61#-G22-11807:271541128585758431779: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-11877:98526220101384954128629: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-12179:73747183773847416132679: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-12425:84822854688108109313119: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-12731:12480848738857754155279: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-12804:92366725594191458390359: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-13510:37367256014233652901619: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-13659:84949079966606930488639: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-17843:46605568368689126923219: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-18347:34166808184761843016519: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-19279:10671796931507693781739: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-19828:96881461860437484320029: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-20307:99493156211464035650569: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-20354:97621863230890879951009: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-20354:74760856231911720860929: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-20491:2865889199912908889659: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15
0*61#-G22-20567:2022711875770842846529: [   0,  18,  30,  60,  78,  84, 108, 114, 120, 144, 150, 168, 198, 210, 228], len=15, valids=15

Видите — скукота. Везде справа одно и то же: ни плюсов тебе, ни минусов, запись одного и того же паттерна и правее 15/15.

Поэтому убираем правую часть и делаем обычный размер:

Код:
0*61#-G22-12804:92366725594191458390359
0*61#-G22-13510:37367256014233652901619
0*61#-G22-13659:84949079966606930488639
0*61#-G22-17843:46605568368689126923219
0*61#-G22-18347:34166808184761843016519
0*61#-G22-19279:10671796931507693781739
0*61#-G22-19828:96881461860437484320029
0*61#-G22-20307:99493156211464035650569
0*61#-G22-20354:97621863230890879951009
0*61#-G22-20354:74760856231911720860929
0*61#-G22-20491:2865889199912908889659

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

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

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

Огромный войд: 13659 — 17843.
То есть свыше 4 тысяч 100 юнитов оказались без единой 15-шки.

Чудовищная плотность: 20354 — 20354.
То есть в одном и том же юните оказались сразу две 15-шки.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение18.04.2025, 08:44 


22/11/17
70
Yadryara в сообщении #1682814 писал(а):
Всё-таки у меня ощущение, что Демису не всё понятно.
Да. Именно так. И не вижу в этом ничего зазорного.
Yadryara в сообщении #1682814 писал(а):
И у меня и у Демиса valids=len=15, но чистых кортежей гораздо больше именно у меня.
Есть такое.
Yadryara в сообщении #1682814 писал(а):
Потому что сравнивался поиск по разным паттернам. У меня последний поиск по 15-228-2, Демис же привёл стату по 19-252.
Все верно.
Т.к. исхожу из того что у меня есть.
Конечно это не совсем правильно.
Но примерный расклад по таймингам получить можно.
Yadryara в сообщении #1682814 писал(а):
Надеюсь понятно, что такое идеальное попадание в паттерн. Это когда нет чужих чисел, то есть нет ни плюсов ни минусов в соответствующей записи в квадратных скобках.
Да. Это не вызывает особых вопросов у меня.
Yadryara в сообщении #1682814 писал(а):
Здесь я хотел показать насколько велики могут быть флуктуации, когда речь идёт об отдельных кортежах.
Отличный пример.
Спасибо!

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

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение20.04.2025, 10:21 
Аватара пользователя


29/04/13
8974
Богородский
DemISdx в сообщении #1682816 писал(а):
Ну также хочу сказать, что сейчас сам не считаю.

Не соскучились по счёту? Я вот теперь лучше понимаю людей которые считают в o25 в Боинке невесть что.

Возможно, довлеет некомфортное ощущение, что зря мощности простаивают, посчитаю-ка я хоть что-нибудь. А самому программировать трудно и/или лень, вот и посчитаю чужую задачу, не вникая в суть.

DemISdx в сообщении #1682816 писал(а):
Соответственно опираюсь на публикуемые Вами результаты и примеры.

Ну вот у меня вопрос не только к Вам, но и к Дмитрию.

Вот я сегодня достигну отметки в 10% от всего интервала $0-61\#$. Уже найдено 111 миллионов цепочек.

А если посчитать весь этот интервал, сколько таких цепочек найдётся?

Казалось бы, умножай на 10 не промахнёшься, явно больше миллиарда — примерно 1110 миллионов цепочек.

Но нет, и миллиард по моим оценкам никак не наберётся. Ожидаю от 920 до 950 миллионов.

Прошу сначала ответить Демиса, а уже потом Дмитрия.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение21.04.2025, 07:53 
Аватара пользователя


29/04/13
8974
Богородский
Ну вот вчера одна 15-ка, 132-я найденная мною, всё-таки сматрёшничала до 17-ки. Но это не новая 17-ка, это 5-я по величине среди всех известных 17-к, та которую давным-давно нашёл Jarek. Новые 17-ки ещё могут найтись, ведь одних только 17-240-1 в проверяемом интервале по прогнозу около 10 штук.

Код:
                                                  Прогноз
                                                   по HL1
   1.     1006882292528806742267 Jarek     
____________________________________________ 59#        0
   2.     3954328349097827424397 Jarek
   3.     4896552110116770789773 Jarek
   4.     6751407944109046348063 Jarek
   5.     7768326730875185894807 Jarek
   6.    19252814175273852997757 Jarek
____________________________________________ 61#       10
   7.   154787380396512840656507 Dmitriy
   8.   187749702383119068641837 An+Dm
   9.   901985248981556228168767 Dmitriy
  10.  4246610002636339828954837 An+Dm
____________________________________________ 67#      212
  11.  9425346484752129657862223 Dmitriy
  12.  9701757886114895320879547 Dmitriy
  13. 14451615724941305041645447 De+Dm
____________________________________________ 71#     5273

Ну а вероятность того, что 9-ка вдруг окажется 6-кратно матрёшечной, конечно меньше чем одна трилионная. Потому что все кэфы, видимо, 3-значные, то есть не меньше ста. Понимает ли это хоть кто-нибудь, кто считает в проекте о25...

А ситуация в моём счёте в сравнении со старым прогнозом по центральным 15-кам такая:

Код:
               G19  G20   G21   G22   ...   G28  G29  G30     Всего
Прогноз штук     0    3    29   112          14    2    0       160
Факт    штук     0    3    27    87          16    2    0       135

22-я группа посчитана на 81%. Через 5 дней её закончу.

Что дальше буду делать, пока не знаю. С новой прогой могу попробовать считать дальше. С нынешней (августовской) — ещё около 11 месяцев счёта.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение21.04.2025, 12:47 
Заслуженный участник


20/08/14
12128
Россия, Москва
Yadryara в сообщении #1683103 писал(а):
Вот я сегодня достигну отметки в 10% от всего интервала $0-61\#$. Уже найдено 111 миллионов цепочек.
А если посчитать весь этот интервал, сколько таких цепочек найдётся?
Меня бы оценка 10х=1.1млрд вполне устроила, пусть она и завышена.
Если пытаться оценить точнее, то смотрим сколько % посчитаете в G22, у меня выходит 78.34% (если посчитаны G19, G20, G21, G28, G29, G30 и всего 10% от всех 745472). Берём плотности на юнит для групп G22-G27 (с коэффициентом 1.12): [1598, 1427, 1274, 1137, 1015, 907], домножаем на количество не посчитанных юнитов в G22-G27: [12237, 128274, 182012, 178350, 118944, 51108] и складываем, получаем цифру 804млн, добавляем посчитанные 111млн и получаем оценку 915млн или скорее 900-940млн.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение21.04.2025, 18:04 
Аватара пользователя


29/04/13
8974
Богородский
Dmitriy40, всё так, принцип правильно понят, только прогнозные цифры чуть другие. С кэфом 1.11 — 949 млн, с 1.12 — 931 млн.

Dmitriy40 в сообщении #1683228 писал(а):
Если пытаться оценить точнее, то смотрим сколько % посчитаете в G22, у меня выходит 78.34% (если посчитаны G19, G20, G21, G28, G29, G30 и всего 10% от всех 745472).

Да, всё так и было вчера днём. Только кэф уже прилично просел. Сейчас посчитано почти 83% от 22-й группы и кэф равен 1.1133.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение21.04.2025, 22:01 


22/11/17
70
Yadryara в сообщении #1683103 писал(а):
Ну вот у меня вопрос не только к Вам
Мое мнение было около 720млн.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение22.04.2025, 08:25 
Аватара пользователя


29/04/13
8974
Богородский
Я ещё не отметил такую приятную особенность поиска. Количество цепочек внутри группы идёт волнами. Вот для примера плохой волны взял фрагмент стат. файла:

Код:
Номер   Кэф    [       Найдено штук               ]
юнита  сниж.   0/0    1/1         13/13 14/14 15/15 

3738   11541   [2644, 26554, ...,  1653,  148,   8]
3739   11541   [2645, 26563, ...,  1653,  148,   8]
3740   11542   [2645, 26571, ...,  1654,  148,   8]
3741   11542   [2645, 26582, ...,  1656,  148,   8]
3742   11542   [2645, 26590, ...,  1657,  148,   8]
3743   11542   [2645, 26598, ...,  1658,  148,   8]
3744   11542   [2646, 26601, ...,  1659,  148,   8]
3745   11542   [2649, 26609, ...,  1660,  148,   8]
3746   11542   [2649, 26625, ...,  1661,  148,   8]
3747   11542   [2650, 26630, ...,  1661,  148,   8]
3748   11542   [2650, 26637, ...,  1661,  148,   8]
3749   11542   [2650, 26646, ...,  1661,  148,   8]
3750   11542   [2650, 26649, ...,  1662,  148,   8]
3751   11541   [2650, 26653, ...,  1662,  148,   8]
3752   11541   [2652, 26659, ...,  1662,  149,   8]


То есть первые 4-6 процентов кэф неуклонно рос, здесь мы видим достижение максимума. Затем было длительное неуклонное снижение, затем снова рост и так далее. Не очень много таких волн (периодов). Так вот можно определить от чего зависят эти волны и начинать поиск не абы где, а в самых лучших волнах, то есть в тех, где в среднем находится гораздо больше цепочек.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение22.04.2025, 09:26 
Аватара пользователя


29/04/13
8974
Богородский
А вот прохождение минимума:

Код:
Номер    Кэф                 Найдено штук             
юнита снижения     0/0     1/1       13/13 14/14 15/15

46497   11131   [34127, 342398, ..., 21323, 2060,   90]
46498   11131   [34127, 342404, ..., 21324, 2060,   90]
46499   11130   [34128, 342412, ..., 21324, 2060,   90]
46500   11130   [34128, 342417, ..., 21325, 2060,   90]
...
46613   11130   [34202, 343277, ..., 21366, 2065,   90]
46614   11130   [34202, 343281, ..., 21366, 2065,   90]
46615   11131   [34202, 343285, ..., 21367, 2065,   90]
46616   11131   [34202, 343294, ..., 21369, 2065,   90]

И стех пор идёт неуклонный рост:

Код:
Номер    Кэф                 Найдено штук             
юнита снижения     0/0     1/1       13/13 14/14 15/15
47997   11148   [35171, 352990, ..., 21946, 2124,   93]
47998   11148   [35173, 352997, ..., 21946, 2124,   93]
47999   11149   [35176, 353001, ..., 21946, 2124,   93]
48000   11149   [35177, 353010, ..., 21946, 2124,   93]

И, по опыту, рост будет продолжаться ещё сколько-то тысяч юнитов подряд. До самого конца группы, то есть на протяжении ещё 8.5 тысяч юнитов — вряд ли.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение22.04.2025, 12:31 
Заслуженный участник


20/08/14
12128
Россия, Москва
Yadryara в сообщении #1683318 писал(а):
Так вот можно определить от чего зависят эти волны и начинать поиск не абы где, а в самых лучших волнах, то есть в тех, где в среднем находится гораздо больше цепочек.
Максимум коэффициента всего лишь на 3.7% больше его же минимума. Т.е. поиск начиная с этих вот лучших волн уменьшит время нахождения на эти вот 4%. При условии что волны затрагивают и 15/15 (или что там ищем). "Маловато будет"(с).
Посчитайте кэфы отдельно по 0/0, 1/1, 2/2, ..., 14/14, 15/15 - будут ли там ровно те же волны или они будут распределены по другому?
Постройте кэфы отдельно внутри каждой группы G (и отнормируйте на размер группы как отдельный вариант проверки) - будут ли волны во всех группах синхронны?
Далее, сделайте разложение фурье (ну или корреляции посчитайте) по частотам равным простым числам (не кратным как обычно, а именно простым) чтобы понять насколько эти волны привязаны в простым и к каким. Особенно к тем что входят в нумерацию групп (2...19, 41, 43), остальные то внутри каждого юнита одинаковы.
Мне кажется что волны не будут синхронными, ни в первом случае, ни во втором (ни с нормировкой), ни в третьем (фурье).
Потому что нахождение кортежа - достаточно случайный процесс (случайные блуждания) и он волне может давать вот все эти якобы волны, тем более столь незначительные (3.7%).
Кроме того, средняя величина кэфа задана обрамляющими группами, например G21/G28: $\sqrt[7]{1815/813}\approx1.1216$, потому внутри кэфы не могут стать все сильно другими, ведь их среднее геометрическое задано (обрамляющими группами). Да, в кэфах могут быть всплески и провалы, но по моему мнению они будут чисто случайными (и с 98% не выйдут за 2 сигмы - собственно это наверное и будет ещё одним признаком что флуктуации случайны).
Короче одних лучших кэфов мало, надо ещё оценку насколько они неслучайны.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение22.04.2025, 12:32 


22/11/17
70
Yadryara в сообщении #1683103 писал(а):
Не соскучились по счёту?
Не знаю. Нет наверное.
Цитата:
Я вот теперь лучше понимаю людей которые считают в o25 в Боинке невесть что.
Отлично!
Цитата:
Возможно, довлеет некомфортное ощущение, что зря мощности простаивают, посчитаю-ка я хоть что-нибудь.
Вполне возможно.
Хотя можно заменить "довлеет некомфортное" на "посчитать что-то еще" и ничего кардинального в этой фразе не поменяется.
С точки зрения кранчера.
Цитата:
А самому программировать трудно и/или лень, вот и посчитаю чужую задачу, не вникая в суть.
Ну на этом принципе в основном и построено большинство нормально отстроенных, внешних, проектов boinc.

(Оффтоп)

Показательный пример прочитал вчера на форуме.

Вместо того, чтобы правильно подправить работу сервера, предлагается прикрутить пятое колесо.
По сравнению, например, с авто.
Если машину стало уводить в сторону после наскока на поребрик или пойманной ямы.
Смотрим, меняем тяги, делаем развал/схождение, пользуемся дальше.
Рекомендовать приделывать пятое колесо, для компенсации "увода в сторону", это бред.

Причем проблема изначально была создана и заложена примерно в середине декабря.
Видно-ли это, технически, снаружи? Однозначно - да.
Косвенно оная уже освещалась. В том смысле, что народ жаловался, но всем пофигу.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение22.04.2025, 12:45 
Заслуженный участник


20/08/14
12128
Россия, Москва

(Оффтоп)

DemISdx в сообщении #1683346 писал(а):
Вместо того, чтобы правильно подправить работу сервера, предлагается прикрутить пятое колесо.
Так обычно происходит по двум причинам: а) недостаток квалификации; б) корректно исправлять слишком сложно и долго (или накладно). Часто действуют обе причины сразу (а вторая бывает следствием первой).
Хотя при отсутствии первой причины, т.е. при достаточной квалификации, решение с пятым колесом вполне может быть и адекватным.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение22.04.2025, 13:28 


22/11/17
70

(Оффтоп)

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

Когда система обрастает костылями - рулить этим становится все замороченнее...
Вернувшись к аналогии с авто - ну приделал пятое колесо, потом шестое, потом седьмое и т.д.
Через некоторое время тачка вся обустроена двумя десятками колес, а то и больше...
За которыми еще и следить нужно.
Хотя достаточно иметь четыре в нормальном состоянии.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение22.04.2025, 14:00 
Аватара пользователя


29/04/13
8974
Богородский
Dmitriy40 в сообщении #1683345 писал(а):
Максимум коэффициента всего лишь на 3.7% больше его же минимума. Т.е. поиск начиная с этих вот лучших волн уменьшит время нахождения на эти вот 4%.

Разумеется. Моё слово "гораздо" не должно вводить в заблуждение. Чудес не бывает и речь конечно идёт о единицах процентов.

Dmitriy40 в сообщении #1683345 писал(а):
При условии что волны затрагивают и 15/15 (или что там ищем).

Обычно ищем сам чистый кортеж, то есть да, в данном случае 15/15.

Dmitriy40 в сообщении #1683345 писал(а):
Посчитайте кэфы отдельно по 0/0, 1/1, 2/2, ..., 14/14, 15/15 - будут ли там ровно те же волны или они будут распределены по другому?

Не зря же я продолжаю делать внутренние сравнения. Но уже скучновато стало — они все (не считая флуктуаций) ведут себя так же как и группа в целом.

Но посчитал на всякий случай по двум волнам по показанным данным. Упрощённо посчитал, что плохая волна идёт от самого первого юнита и до 3745-го. Затем идёт гигантская хорошая волна (пока не учитываю 2-3 небольших отката) вплоть до 46500-го юнита.

Берём большие количества. То есть сначала для 1/1.

Для плохой волны:
$$\frac{26609}{3745}\approx 7.105$$
Для хорошей волны:
$$\frac{342417-26609}{46500-3745}\approx 7.386$$
Действительно хорошая волна. Цепочек 1/1 в ней находится в среднем в 1.040 раз больше:
$$\frac{7.386}{7.105}\approx 1.040$$

А теперь берём количества для 13/13.
Для плохой волны:
$$\frac{1660}{3745}\approx 0.443$$
Для хорошей волны:
$$\frac{21325-1660}{46500-3745}\approx 0.460$$
Действительно хорошая волна. Цепочек 13/13 в ней находится в среднем в 1.038 раз больше:
$$\frac{0.460}{0.443}\approx 1.038$$

Так что да, по-прежнему предполагаю, что затрагивает в равной степени все цепочки. Без учёта флуктуаций.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение22.04.2025, 14:57 
Заслуженный участник


20/08/14
12128
Россия, Москва
Yadryara в сообщении #1683352 писал(а):
Так что да, по-прежнему предполагаю, что затрагивает в равной степени все цепочки.
Я про другое, не что захватывает все варианты, а все ли варианты идут синхронно (с одинаковой частотой/периодом и фазой)? Не просто отношение кэфов (максимума к минимуму), а именно про расположение горбов и впадин каждой отдельной волны (а не их суммы) на протяжении группы. Или же они все случайны? Тогда смысла от их предсказания мало.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1262 ]  На страницу Пред.  1 ... 79, 80, 81, 82, 83, 84, 85  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group