Алгоритм точного решения задачи построения помехозащищенного кода максимального объема для Z-канала

Для точного решения задачи построения помехозащищенного кода максимального объема для Z-канала, которая сводится к задаче нахождения максимального независимого множества вершин графа, предложен алгоритм ветвей и границ. Предложенный способ ветвления с использованием специфики рассматриваемых графов...

Full description

Saved in:
Bibliographic Details
Published in:Компьютерная математика
Date:2017
Main Authors: Шило, В.П., Рощин, В.А., Боярчук, Д.А., Шило, П.В.
Format: Article
Language:Russian
Published: Інститут кібернетики ім. В.М. Глушкова НАН України 2017
Subjects:
Online Access:https://nasplib.isofts.kiev.ua/handle/123456789/168447
Tags: Add Tag
No Tags, Be the first to tag this record!
Journal Title:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Cite this:Алгоритм точного решения задачи построения помехозащищенного кода максимального объема для Z-канала / В.П. Шило, В.А. Рощин, Д.А. Боярчук, П.В. Шило // Компьютерная математика. — 2017. — № 1. — С. 158-164. — Бібліогр.: 3 назв. — рос.

Institution

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id nasplib_isofts_kiev_ua-123456789-168447
record_format dspace
spelling Шило, В.П.
Рощин, В.А.
Боярчук, Д.А.
Шило, П.В.
2020-05-02T15:23:03Z
2020-05-02T15:23:03Z
2017
Алгоритм точного решения задачи построения помехозащищенного кода максимального объема для Z-канала / В.П. Шило, В.А. Рощин, Д.А. Боярчук, П.В. Шило // Компьютерная математика. — 2017. — № 1. — С. 158-164. — Бібліогр.: 3 назв. — рос.
2616-938Х
https://nasplib.isofts.kiev.ua/handle/123456789/168447
519.854
Для точного решения задачи построения помехозащищенного кода максимального объема для Z-канала, которая сводится к задаче нахождения максимального независимого множества вершин графа, предложен алгоритм ветвей и границ. Предложенный способ ветвления с использованием специфики рассматриваемых графов дает возможность резко сократить объем вычислений в разработанном алгоритме.
Для точного розв’язання задачі побудови завадозахищеного коду максимального об’єму для Z-каналу, яка зводиться до задачі знаходження максимальної незалежної множини вершин графу, запропоновано алгоритм гілок і меж. Запропонований спосіб розгалуження з використанням специфіки розглянутих графів дає можливість суттєво зменшити об’єм обчислень у розробленому алгоритмі.
Branch and bound algorithm for exact solving the problem of construction of error-correcting codes for Z-channel, which can be transformed into maximum independent set problem, is proposed. The proposed branching technique using the specificity of the graphs being considered provides a significant reduction of calculations in the developed algorithm.
ru
Інститут кібернетики ім. В.М. Глушкова НАН України
Компьютерная математика
Теория и методы оптимизации
Алгоритм точного решения задачи построения помехозащищенного кода максимального объема для Z-канала
Алгоритм точного розв’язання задачі побудови завадозахищеного коду максимального об’єму для Z-каналу
Exact algorithm for finding the largest correcting codes problem for Z-channel
Article
published earlier
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
title Алгоритм точного решения задачи построения помехозащищенного кода максимального объема для Z-канала
spellingShingle Алгоритм точного решения задачи построения помехозащищенного кода максимального объема для Z-канала
Шило, В.П.
Рощин, В.А.
Боярчук, Д.А.
Шило, П.В.
Теория и методы оптимизации
title_short Алгоритм точного решения задачи построения помехозащищенного кода максимального объема для Z-канала
title_full Алгоритм точного решения задачи построения помехозащищенного кода максимального объема для Z-канала
title_fullStr Алгоритм точного решения задачи построения помехозащищенного кода максимального объема для Z-канала
title_full_unstemmed Алгоритм точного решения задачи построения помехозащищенного кода максимального объема для Z-канала
title_sort алгоритм точного решения задачи построения помехозащищенного кода максимального объема для z-канала
author Шило, В.П.
Рощин, В.А.
Боярчук, Д.А.
Шило, П.В.
author_facet Шило, В.П.
Рощин, В.А.
Боярчук, Д.А.
Шило, П.В.
topic Теория и методы оптимизации
topic_facet Теория и методы оптимизации
publishDate 2017
language Russian
container_title Компьютерная математика
publisher Інститут кібернетики ім. В.М. Глушкова НАН України
format Article
title_alt Алгоритм точного розв’язання задачі побудови завадозахищеного коду максимального об’єму для Z-каналу
Exact algorithm for finding the largest correcting codes problem for Z-channel
description Для точного решения задачи построения помехозащищенного кода максимального объема для Z-канала, которая сводится к задаче нахождения максимального независимого множества вершин графа, предложен алгоритм ветвей и границ. Предложенный способ ветвления с использованием специфики рассматриваемых графов дает возможность резко сократить объем вычислений в разработанном алгоритме. Для точного розв’язання задачі побудови завадозахищеного коду максимального об’єму для Z-каналу, яка зводиться до задачі знаходження максимальної незалежної множини вершин графу, запропоновано алгоритм гілок і меж. Запропонований спосіб розгалуження з використанням специфіки розглянутих графів дає можливість суттєво зменшити об’єм обчислень у розробленому алгоритмі. Branch and bound algorithm for exact solving the problem of construction of error-correcting codes for Z-channel, which can be transformed into maximum independent set problem, is proposed. The proposed branching technique using the specificity of the graphs being considered provides a significant reduction of calculations in the developed algorithm.
issn 2616-938Х
url https://nasplib.isofts.kiev.ua/handle/123456789/168447
citation_txt Алгоритм точного решения задачи построения помехозащищенного кода максимального объема для Z-канала / В.П. Шило, В.А. Рощин, Д.А. Боярчук, П.В. Шило // Компьютерная математика. — 2017. — № 1. — С. 158-164. — Бібліогр.: 3 назв. — рос.
work_keys_str_mv AT šilovp algoritmtočnogorešeniâzadačipostroeniâpomehozaŝiŝennogokodamaksimalʹnogoobʺemadlâzkanala
AT roŝinva algoritmtočnogorešeniâzadačipostroeniâpomehozaŝiŝennogokodamaksimalʹnogoobʺemadlâzkanala
AT boârčukda algoritmtočnogorešeniâzadačipostroeniâpomehozaŝiŝennogokodamaksimalʹnogoobʺemadlâzkanala
AT šilopv algoritmtočnogorešeniâzadačipostroeniâpomehozaŝiŝennogokodamaksimalʹnogoobʺemadlâzkanala
AT šilovp algoritmtočnogorozvâzannâzadačípobudovizavadozahiŝenogokodumaksimalʹnogoobêmudlâzkanalu
AT roŝinva algoritmtočnogorozvâzannâzadačípobudovizavadozahiŝenogokodumaksimalʹnogoobêmudlâzkanalu
AT boârčukda algoritmtočnogorozvâzannâzadačípobudovizavadozahiŝenogokodumaksimalʹnogoobêmudlâzkanalu
AT šilopv algoritmtočnogorozvâzannâzadačípobudovizavadozahiŝenogokodumaksimalʹnogoobêmudlâzkanalu
AT šilovp exactalgorithmforfindingthelargestcorrectingcodesproblemforzchannel
AT roŝinva exactalgorithmforfindingthelargestcorrectingcodesproblemforzchannel
AT boârčukda exactalgorithmforfindingthelargestcorrectingcodesproblemforzchannel
AT šilopv exactalgorithmforfindingthelargestcorrectingcodesproblemforzchannel
first_indexed 2025-11-25T23:10:31Z
last_indexed 2025-11-25T23:10:31Z
_version_ 1850576536734793728
fulltext 158 Компьютерная математика. 2017, № 1 Для точного решения задачи по- строения помехозащищенного ко- да максимального объема для Z-канала, которая сводится к за- даче нахождения максимального независимого множества вершин графа, предложен алгоритм вет- вей и границ. Предложенный спо- соб ветвления с использованием специфики рассматриваемых гра- фов дает возможность резко со- кратить объем вычислений в раз- работанном алгоритме.  В.П. Шило, В.А. Рощин, Д.А. Боярчук, П.В. Шило, 2017 УДК 519.854 В.П. ШИЛО, В.А. РОЩИН, Д.А. БОЯРЧУК, П.В. ШИЛО АЛГОРИТМ ТОЧНОГО РЕШЕНИЯ ЗАДАЧИ ПОСТРОЕНИЯ ПОМЕХОЗАЩИЩЕННОГО КОДА МАКСИМАЛЬНОГО ОБЪЕМА ДЛЯ Z-КАНАЛА Введение. Интерес к задачам получения на- дежных кодов, позволяющих корректировать искажения информации при ее передаче, вы- зван развитием современных средств связи, Интернета, различных компьютерных техно- логий. Нередко при исследовании проблем теории кодирования возникают задачи, ма- тематические модели которых описываются в терминах дискретного программирования. Такими являются, например, задачи построе- ния помехозащищенных кодов, нахождения оценок их объема. Постановка задачи. Пусть nB  множе- ство n-мерных векторов x = ( 1x , …, nx ), ко- ординаты которых принимают значения 0 или 1. Двоичным кодом С называется произ- вольное подмножество множества nB , под объемом |C| кода подразумевается мощность этого подмножества. Число n будем называть длиной кода. Предположим, что вектор ix  nB из-за ошибок при передаче информации может пе- реходить в один из элементов произвольного множества R( ix ), i = 1, …, 2n . Двоичный код nC B называется поме- хозащищенным, если для любых x, y  ,nB x  y, выполняется условие (R(x)  {x})  (R(y)  {y}) =. АЛГОРИТМ ТОЧНОГО РЕШЕНИЯ ЗАДАЧИ ПОСТРОЕНИЯ ПОМЕХОЗАЩИЩЕННОГО КОДА … Компьютерная математика. 2017, № 1 159 Задача построения помехозащищенного кода максимального объема сво- дится к задаче нахождения максимального независимого множества вершин графа [1]. Подмножество I  V вершин графа ( , )G V E называется независимым, если никакие две его вершины не связаны ребром. Независимое множество maxI называется максимальным независимым, если для любого независимого множества I выполняется соотношение  maxI  I . Лексикографически упорядочим векторы nx B по возрастанию: 1 2(0,...,0) ... (1,...1), 2 .k nx x x k     Тем самым определим взаимно- однозначное преобразование подмножества  1,...,2n множества натуральных чисел в векторы nx B : ( ) , 1,...,2 .i ni x i   Определим граф ( , )G V E следую- щим образом. Предположим, что множество V вершин графа состоит из 2n вершин и ребро ( iv , jv )  E тогда и только тогда, когда    ( ( ( )) ( ) ) ( ( ( )) ( ) )i i j jR v v R v v       . Если найдено независимое множество I в ( , )G V E , то очевидно, что тем самым построен помехозащищен- ный код С. Он состоит из двоичных векторов, соответствующих вершинам независимого множества I : { ( ) : }C v v I   . Обозначим  (G)  число элементов в максимальном независимом множест- ве maxI ( (G) =  maxI ). Задачу нахождения максимального независимого множества вершин графа можно сформулировать как задачу целочисленного программирования с булевыми переменными. Поставим в соответствие каж- дой вершине jv V заданного графа ( , )G V E переменную {0,1}jx  , j = 1,…, k, а произвольному вектору х = 1( ,..., )kx x  множество ( ) { : 1,j jI x v V x   1,..., }.j k Тогда математическая модель задачи нахождения максимального независимого множества вершин графа описывается таким образом: найти 1 :( , ) max ( ) (1 ) : i j k k i j i j v v E f x x x x B               . (1) Если множество I (x)  независимое, то значение целевой функции f (x) рав- но количеству его элементов. Использование специфики графов. Предположим, что P  множество всех перестановок 1( ,..., )np p p целых чисел от 1 до n. Для произвольной переста- новки p P рассмотрим следующие преобразования n nB B : 11( ,..., ) ( ,..., ) nn p px x x y x x   , (2) 11( ,..., ) ( ,..., ) nn p px x x y x x   . (3) Множество всех таких преобразований обозначим Ψ, |Ψ| = 2n!. В.П. ШИЛО, В.А. РОЩИН, Д.А. БОЯРЧУК, П.В. ШИЛО Компьютерная математика. 2017, № 1160 Определение. Преобразование ψΨ будем называть правильным, если из условия ( iv , jv )E следует, что ( 1 (ψ (( iv ))), 1 (ψ (( jv ))))E. В дальнейшем для простоты изложения вместо    1 v   будем ис- пользовать запись  v . Обозначим Q – множество всех правильных преобра- зований. Пусть I(v) – независимое множество, в которое входит вершина vV. Обозначим (G,v) – число элементов в максимальном независимом множестве maxI (v) ((G,v) =| maxI (v)|). Справедлива теорема [2]. Теорема 1. Пусть ψ  Q. Тогда имеет место неравенство  (G, v)    (G,  v ). Предположим, что ψ  C. Тогда справедливо неравенство  (G, v)     ,G v  . Для произвольной вершины vV рассмотрим множество вершин графа M (v) = {uV : u =  v , C }. Из теоремы 1 следует, что если  (G, v)  k, то тем самым установлено, что  (G, u)  k, u M (v). Для произвольного двоичного вектора x определим величину 1 ( ) n j j w x x   – его вес. Вес вершины v определим как вес вектора ( )v :    ( )w v w y  , y  nB . Имеет место Лемма 1. Для любой пары вершин iv , jv V выполняется соотношение ( ) – ( )i jw v w v = ( ( )) – ( ( ))i jw v w v  . Доказательство. В случае, если преобразование ψ относится к типу (2), то очевидно, что ( ( )) ( ( ( )))w x w x    для любого xV, а если  к типу (3), то ( ( ))w x = ( ( ( )))n w x   для любого xV. Это и доказывает справедливость леммы. Для практики особый интерес представляют помехозащищенные коды для Z-канала, схема которого показана на рисунке. Z-канал – это асимметрический двоичный канал. При передаче информации в нем вероятность ошибки  пере- хода 1 в 0 равна p, а вероятность ошибки  перехода 0 в 1 равна 0. В работе [3] введено асимметрическое расстояние ( , )Ad x y = max ( N(x, y), N(y, x) ) между векторами x, y  nB , где  i( , ) : 0 1iN x y i x y    . АЛГОРИТМ ТОЧНОГО РЕШЕНИЯ ЗАДАЧИ ПОСТРОЕНИЯ ПОМЕХОЗАЩИЩЕННОГО КОДА … Компьютерная математика. 2017, № 1 161 Оно связано с расстоянием по Хеммингу ( , )Hd x y = 1 n i i i x y   = = N (x, y) + N (y, x) следующим соотношением: 2 ( , )Ad x y = ( , )Hd x y + w(x)w(y) . (4) 1 p 1 p РИСУНОК. Cхема Z-канала Для кода С nB определим минимальное асимметрическое расстояние  min ( , ) : , ,Ad x y x y C x y    . Доказано [3], что код C с минимальным асимметрическим расстоянием  может корректировать не более ( – 1) асимметрических ошибок (переходов 1 в 0). Далее будем рассматривать коды с минимальным асимметрическим расстоя- нием  = 2. Пусть в графе G (V, E) ребро ( iv , jv )E, i, j=1,...n, тогда и только тогда, когда ( ( ), ( ))A i jd v v    . Справедливы следующие утверждения [2] Лемма 2. Если любая пара вершин iv , jv V, то для нее имеет место соот- ношение ( ( ), ( )) ( ( ( )), ( ( )))A i j A i jd v v d v v       . Из леммы 2 следует, что для графа 1zc все преобразования ψΨ  правиль- ные. Вершины x, yV назовем эквивалентными, если (G, x) = (G, y). Теорема 2. Пусть произвольные вершины iv , jv V, такие, что w ( iv ) = w ( jv ) или w ( iv ) + w( jv ) = n. Тогда они эквивалентны в графе 1 2nzc . Изучим структуру графа 1 2nzc . Из равенства (4) следует, что вершины iv , jv V связаны ребром, если выполняется неравенство ( ( ), ( )) ( ( )) ( ( )) 2H i j i jd v v w v w v       . (5) Из соотношения (5) следует лемма. 1 0 1 0 В.П. ШИЛО, В.А. РОЩИН, Д.А. БОЯРЧУК, П.В. ШИЛО Компьютерная математика. 2017, № 1162 Лемма 3. В графе 1 2nzc могут быть связаны ребром только те вершины, абсолютная величина разности весов которых не превосходит 1. Для каждой вершины iv V определим вершину iv : ( ),i ix v v   1( ), : 1 , , 1,...,j jy y y x i j n     . Легко видеть, что справедлива Лемма 4. В любом графе 1 2nzc не существует ребер ( iv , iv ), .iv V Доказательство леммы следует из соотношения (5) и способа определения вершины iv . Покажем, что имеет место следующая теорема. Теорема 3. Пусть , , , 1,...,i jv v V i j n  . Тогда: 1) если ребро  , /i jv v E  , то и ребро  , /i jv v E  ; 2) если ребро  ,i jv v E , то ребро  ,i jv v E . Доказательство. Первая часть утверждения  следствие леммы 2. Если  ,i jv v E , то ( ( ), ( ))H i jd v v  =1 и, следовательно, ( ( ), ( )) 1H i jd v v n    , ( , ) / 2Ad x y n . Правильное преобразование ψΨ называется совершенным, если выполня- ются условия: 1) ( )i iv v  ,  ( )i iv v   ; 2) ребро  , ( ) ,i i iv v E v V   ; 3) если ребро  , /i jv v E  , то и ребро  ( ), ( ) /i jv v E    ; 4) если ребро  ,i jv v E , то ребро  , ( )i jv v E  . Очевидно, что множество совершенных преобразований не пусто, так как в него входят преобразования, переводящие вершины iv V графа в iv . Пусть ψΨ  совершенное преобразование. Рассмотрим следующий алгоритм преобразования множества. Шаг 1. Предположим, что S  некоторое подмножество множества V вершин графа. Полагаем r = 0. Шаг 2. Из множества S выбираем произвольную вершину riv и вершину ( ) riv . Если это невозможно, алгоритм заканчивает работу. Шаг 3. Удаляем из множества S вершины riv , ( ) riv и все вершины, связан- ные с ними ребром. Шаг 4. Если множество S не пусто, полагаем r = r + 1 и переходим на шаг 2. В противном случае алгоритм заканчивает работу. Назовем множество S разложимым, если алгоритм заканчивает его рассмот- рение на шаге 4. Легко показать, что имеет место следующая теорема. АЛГОРИТМ ТОЧНОГО РЕШЕНИЯ ЗАДАЧИ ПОСТРОЕНИЯ ПОМЕХОЗАЩИЩЕННОГО КОДА … Компьютерная математика. 2017, № 1 163 Теорема 4. Множество S, состоящее из всех вершин графа 1 2 ,nzc разло- жимо. Пары ( riv , ( ) riv ), r = 1,…,R, полученные в результате работы алгоритма, образуют независимое множество. Вышеприведенные утверждения дают основания для существенного уменьшения числа узлов (кандидатов) для ветвления в предлагаемом точном алгоритме ветвей и границ, базирующийся на использовании неявного перебора пар вершин  , ( )i iv v графа. Если выбрана какая-то пара  , ( )v v , то все вер- шины, соединенные с ней ребром, удаляются из рассматриваемого графа. Алгоритм Шаг 1. Инициализация. l = 0, lV = V, lE = E, lmis = 0. По некоторому прави- лу выбираем совершенное преобразование ψΨ и набор пар   , ( ) , r rl i iP v v  , ( ) , 1,..., r r l li iv v V r q   , обладающий свойством ( \ ) _l l lEst V P l mis mis  (Est() – функция оценки) lp = 0. Шаг 2. Ветвление l-го уровня. 1l lV V  , 1l lE E  . Из графа G( 1lV  , 1lE  ) удаляем вершины  , ( ) r ri iv v , r = 1,..., lp . Полагаем lp = lp + 1 и выбираем пару  , ( ) p pl li iv v . Из графа G( 1lV  , 1lE  ) удаляем вершины, связанные ребром с вершинами пары  , ( ) p pl li iv v , и вершины этой пары (если 1lv V  и 1( , ) pli lv v E  или 1( , ( )) pl liv v E   , вершина v удаляется). Шаг 3. Оценка l-го уровня. 1 2l lmis mis   . Если 1_ ll mis mis  , полагаем 1_ ll mis mis  . Если 1 1( ) _ ,l lEst V l mis mis   переходим на шаг 4. Иначе пола- гаем l = l + 1 и переходим на шаг 2. Шаг 4. Если ,l lp q переходим на шаг 2. Иначе полагаем l = l  1 и при l  0 переходим на шаг 2. Иначе останов. Интересным является свойство графов 1 2nzc . В них переменные, соответст- вующие вершинам с весом n/2 (при четном n) или переменные, соответствую- щие вершинам с весом (n  1)/2 и 1 + (n  1)/2 (при нечетном n),  связывающие в задаче (1). То есть, если задать им какие-то значения, то задача (1) распадается на две независимые симметрические подзадачи вида (1) с переменными, со- ответствующими вершинам с весом, меньшим n/2((n  1)/2) и переменными, соответствующими вершинам с весом, большим n/2(1 + (n  1)/2). Имеет место следующая теорема. Теорема 5. Алгоритм ветвей и границ, основанный на использовании неяв- ного перебора пар вершин, успешно заканчивает работу и находит в графе 1 2nzc замкнутое к включению независимое множество вершин с мощностью, равной четному числу. Справедливость теоремы следует из вышеприведенных утверждений. В.П. ШИЛО, В.А. РОЩИН, Д.А. БОЯРЧУК, П.В. ШИЛО Компьютерная математика. 2017, № 1164 Выводы. Предложенный в данной работе способ неявного перебора пар вершин использует специфику рассматриваемых графов и позволяет намного уменьшить объем вычислений в разработанном алгоритме ветвей и границ. С помощью программной реализации этого алгоритма на PC Intel CoreTM i7-3770 CPU 3.40 GHz и 8.0GB RAM за 1757 минут улучшена верхняя оценка для графа 1zc1024 c 117 до 113 (при известном решении 112). В.П. Шило, В.О. Рощин, Д.О. Боярчук, П.В. Шило АЛГОРИТМ ТОЧНОГО РОЗВ’ЯЗАННЯ ЗАДАЧІ ПОБУДОВИ ЗАВАДОЗАХИЩЕНОГО КОДУ МАКСИМАЛЬНОГО ОБ’ЄМУ ДЛЯ Z-КАНАЛУ Для точного розв’язання задачі побудови завадозахищеного коду максимального об’єму для Z-каналу, яка зводиться до задачі знаходження максимальної незалежної множини вершин графу, запропоновано алгоритм гілок і меж. Запропонований спосіб розгалуження з використанням специфіки розглянутих графів дає можливість суттєво зменшити об’єм обчислень у розробленому алгоритмі. V.P. Shylo, V.A. Roshchyn, D.A. Boyarchuk, P.V. Shylo EXACT ALGORITHM FOR FINDING THE LARGEST CORRECTING CODES PROBLEM FOR Z-CHANNEL Branch and bound algorithm for exact solving the problem of construction of error-correcting codes for Z-channel, which can be transformed into maximum independent set problem, is proposed. The proposed branching technique using the specificity of the graphs being considered provides a significant reduction of calculations in the developed algorithm. 1. Сергиенко И.В., Шило В.П. Задачи дискретной оптимизации: проблемы, методы реше- ния, исследования. Киев: Наук. думка, 2003. 264 с. 2. Шило В.П. Точное решение задачи построения помехозащищенного кода максимально- го объема. Компьютерная математика. Киев: Ин-т кибернетики имени В.М. Глушкова НАН Украины, 2005. № 2. C. 147 – 156. 3. Rao T.R.N., Chawla A.S. Asymmetric error codes for some LSI semiconductor memories. Southeastern Symp. System Theory. 1975. P. 170 – 171. Получено 03.05.2017 Об авторах: Шило Владимир Петрович, доктор физико-математических наук, профессор, ведущий научный сотрудник Института кибернетики имени В.М. Глушкова НАН Украины, Е-mail: v.shylo@gmail.com Рощин Валентина Алексеевна, кандидат физико-математических наук, старший научный сотрудник Института кибернетики имени В.М. Глушкова НАН Украины, Е-mail: v.roshin@gmail.com Боярчук Дмитрий Алексеевич, научный сотрудник Института кибернетики имени В.М. Глушкова НАН Украины, Е-mail: dopt135@gmail.com Шило Петр Владимирович, младший научный сотрудник Института кибернетики имени В.М. Глушкова НАН Украины. Е-mail: petershylo@gmail.com