Кривая Гильберта

Первые шаги создания кривой Гильберта

Кривая Гильберта (известная также как заполняющая пространство кривая Гильберта) — это непрерывная фрактальная заполняющая пространство кривая, впервые описанная немецким математиком Давидом Гильбертом в 1891 году[1], как вариант заполняющих пространство кривых Пеано, открытых итальянским математиком Джузеппе Пеано в 1890 году[2].

Поскольку кривая заполняет плоскость, её размерность Хаусдорфа равна (в точности, её образ является единичным квадратом, размерность которого равна 2 при любом определении размерности, а её граф является компактным множеством, гомеоморфным замкнутому единичному интервалу с хаусдорфовой размерностью 2).

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

Рисунки

Приложения и алгоритмы отображения

Как истинная кривая Гильберта, так и её дискретная аппроксимация дают отображение одномерного и двумерного пространств, довольно хорошо сохраняющих локальные свойства[3]. Если обозначить через (x, y) координаты точки в единичном квадрате, а через d расстояние вдоль кривой, на котором эта точка достигается, то точки, имеющие близкие к d значения, будут иметь также близкие значения и к (x, y). Обратное не всегда верно — некоторые точки, имеющие близкие координаты (x, y), имеют достаточно большую разницу в расстоянии d.

Ввиду этого свойства локальности кривая Гильберта широко применяется в компьютерных программах. Например, диапазон IP-адресов, присвоенных компьютерам, можно представить в виде рисунка путём использования кривой Гильберта. Программа создания такого представления для определения цвета точек может преобразовать изображение из двумерного в одномерное, и кривая Гильберта иногда используется ввиду свойства локальности этой кривой, поскольку это позволяет сохранять близкие IP-адреса близкими на одномерном представлении. Чёрно-белая фотография может быть подвержена дизерингу при использовании меньшего числа градаций серого путём переноса остаточного значения величины яркости на следующую точку вдоль кривой Гильберта. Кривая Гильберта используется в этом случае, поскольку она не создаёт видимых глазом переходов яркости, которые получаются при построчном преобразовании. Кривые Гильберта в пространствах большей размерности являются представителями обобщений кодов Грея и иногда используются в похожих ситуациях с похожими целями. Для многомерных баз данных предлагается использовать порядок Гильберта вместо Z-порядка, поскольку он даёт лучшее сохранение локальности. Например, кривые Гильберта использовались для сжатия и ускорения индексов в виде R-дерева[4]. Кривые Гильберта использовались также для сжатия информационных баз данных[5][6].

Полезно иметь алгоритм, позволяющий делать преобразование в обоих направлениях (как из (x, y) в d, так и из d в (x, y)). Во многих языках программирования предпочтительнее использовать итерации, а не рекурсию. Следующая программа на языке C осуществляет отображение в обоих направлениях, используя итерации и битовые операции, а не рекурсию. Программа предполагает разбиение квадрата на n х n ячеек (квадратов со стороной 1), где n является степенью двойки. Координаты (0,0) принадлежат левому нижнему углу, а (n-1, n-1) — правому верхнему углу. Расстояние d отсчитывается от левого нижнего угла (расстояние 0) и растёт до в правом нижнем углу.

//Преобразовать (x,y) к d
int xy2d (int n, int x, int y) {
    int rx, ry, s, d=0;
    for (s=n/2; s>0; s/=2) {
        rx = (x & s) > 0;
        ry = (y & s) > 0;
        d += s * s * ((3 * rx) ^ ry);
        rot(s, &x, &y, rx, ry);
    }
    return d;
}

//Преобразовать d к (x,y)
void d2xy(int n, int d, int *x, int *y) {
    int rx, ry, s, t=d;
    *x = *y = 0;
    for (s=1; s<n; s*=2) {
        rx = 1 & (t/2);
        ry = 1 & (t ^ rx);
        rot(s, x, y, rx, ry);
        *x += s * rx;
        *y += s * ry;
        t /= 4;
    }
}

//вращаем/отражаем квадрант
void rot(int n, int *x, int *y, int rx, int ry) {
    if (ry == 0) {
        if (rx == 1) {
            *x = n-1 - *x;
            *y = n-1 - *y;
        }

        //Обмениваем x и y местами
        int t  = *x;
        *x = *y
        
        *y = t;
    }
}

Программа использует соглашения языка C: знак & означает побитную операцию AND (И), знак ^ — побитную XOR (ИЛИ), знак += означает оператор добавления к переменной, а знак /= — операцию деления переменной.

Функция xy2d работает сверху вниз, начиная со старших битов x и y, и начинает построение d со старших битов. Функция d2xy работает в противоположном направлении, начиная с младших битов d, и строит x и y с младших битов. Обе функции используют функцию вращения и отражения системы координат (x, y).

Оба алгоритма работают похожим образом. Весь квадрат рассматривается как 4 области 2 х 2. Каждая область состоит из 4 меньших областей и так далее до конечного уровня. На уровне s каждая область имеет s х s ячеек. Имеется единственный цикл FOR, пробегающий через уровни. На каждой итерации добавляется значение к d или к x и y, которое определяется областью (из четырёх), в которой находимся на данном уровне. Области задаются парой (rx, ry), где rx и ry принимают значение 0 или 1. Таким образом, область определяется 2 входными битами (либо двумя битами из d, либо по биту из x и y), и по ним образуется два выходных бита. Также вызывается функция вращения, чтобы (x, y) можно было использовать на следующем уровне на следующей итерации. Для xy2d она начинается с верхнего уровня всего квадрата и движется вниз до нижнего уровня до индивидуальных ячеек. Для d2xy процесс начинается снизу с ячеек и движется вверх до полного квадрата.

Можно реализовать эффективно кривые Гильберта, даже если область не образует квадрат[7]. Более того, существуют некоторые обобщения кривых Гильберта для более высоких размерностей[8][9].

Представление в системе Линденмайера

Создание кривой Гильберта можно переписать для L-системы.

Шестая итерация создания кривой Гильберта
Алфавит : A, B
Константы : F + −
Аксиома : A
Правила:
A → − B F + A F A + F B −
B → + A F − B F B − F A +

Здесь F означает «движение вперёд», «−» означает поворот влево на 90°, «+» означает поворот вправо на 90° (см. turtle graphics), а A и B игнорируются при рисовании.

Другие реализации

Arthur Butz[10] дал алгоритм вычисления кривой Гильберта в многомерных пространствах.

В книге Graphics Gems II[11] обсуждается кривая Гильберта и даётся реализация.

На основе кривой Гильберта могут быть реализованы вибраторные либо печатные конструкции антенн[12].

См. также

Примечания

  1. Hilbert, 1891, с. 459—460.
  2. Peano, 1890, с. 157—160.
  3. Moon, Jagadish, Faloutsos, Saltz, 2001, с. 124—141.
  4. Kamel, Faloutsos, 1994, с. 500—509.
  5. Eavis, Cueva, 2007, с. 1—12.
  6. Lemire, Kaser, 2011.
  7. Hamilton, Rau-Chaplin, 2007, с. 155—163.
  8. Alber, Niedermeier, 2000, с. 295—312.
  9. Haverkort, van Walderveen, 2009, с. 63—73.
  10. Butz, 1971, с. 424—42.
  11. Voorhies, 1991, с. 26—30.
  12. Слюсар, В. Фрактальные антенны. Принципиально новый тип «ломаных» антенн. Часть 2. Электроника: наука, технология, бизнес. — 2007. — № 6. С. 82—89. (2007). Дата обращения: 22 апреля 2020. Архивировано 3 апреля 2018 года.

Литература

  • I. Kamel, C. Faloutsos. Proceedings of the 20th International Conference on Very Large Data Bases / Jorge Bocca, Matthias Jarke, Carlo Zaniolo. — San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1994. — ISBN 1-55860-153-8.
  • G.Peano. Sur une courbe, qui remplit toute une aire plane. // Mathematische Annalen. — 1890. — Вып. 36.
  • D. Hilbert. Über die stetige Abbildung einer Linie auf ein Flächenstück. // Mathematische Annalen. — 1891. — Вып. 38.
  • A.R. Butz. Alternative algorithm for Hilbert’s space filling curve. // IEEE Trans. On Computers. — 1971. — Т. 20. — doi:10.1109/T-C.1971.223258.
  • B. Moon, H.V. Jagadish, C. Faloutsos, J.H. Saltz. Analysis of the clustering properties of the Hilbert space-filling curve // IEEE Transactions on Knowledge and Data Engineering. — 2001. — Т. 13, вып. 1. — doi:10.1109/69.908985.
  • I. Kamel, C. Faloutsos. Proceedings of the 20th International Conference on Very Large Data Bases. — San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1994.
  • T. Eavis, D. Cueva. A Hilbert space compression architecture for data warehouse environments // Lecture Notes in Computer Science. — 2007. — Т. 4654.
  • Daniel Lemire, Owen Kaser. Reordering Columns for Smaller Indexes // Information Sciences. — 2011. — Т. 181, вып. 12. — arXiv:0909.1346.
  • C. H. Hamilton, A. Rau-Chaplin. Compact Hilbert indices: Space-filling curves for domains with unequal side lengths // Information Processing Letters. — 2007. — Т. 105, вып. 5. — doi:10.1016/j.ipl.2007.08.034.
  • J. Alber, R. Niedermeier. On multidimensional curves with Hilbert property // Theory of Computing Systems. — 2000. — Т. 33, вып. 4. — doi:10.1007/s002240010003.
  • H. J. Haverkort, F. van Walderveen,. Proceedings of the Eleventh Workshop on Algorithm Engineering and Experiments. — New York: Society for Industrial and Applied Mathematics ( SIAM ), 2009. — ISBN 9781615671489.
  • Douglas Voorhies. Space-Filling Curves and a Measure of Coherence / Andrew S. Glassner. — Boston, San Diego, New York, London, Sydney, Tokyo, Toronto: AP Professional, 1991. — Т. II. — (Graphics Gems). — ISBN 0-12-059756-X.

Ссылки

Read other articles:

Jean-Baptiste KibweMinister of Finance of the State of KatangaIn office4 August 1960 – 21 January 1963 (end of the secession) Personal detailsBorn3 March 1924Kilwa, Belgian Congo[1]Died21 November 2008(2008-11-21) (aged 84)Brussels, Belgium[2]Political partyConfédération des associations tribales du Katanga Jean-Baptiste Kibwe Pampala Uwitwa (Kilwa, 3 March 1924 — Brussels, 21 November 2008) was a Congolese-Katangese politician who was the Minister of Justi...

 

Tinabo Bakka'Pantai berpasir putih di Pulau Tinabo Bakka'Tinabo Bakka'Tampilkan peta Kepulauan SelayarTinabo Bakka'Tampilkan peta Sulawesi SelatanTinabo Bakka'Tampilkan peta SulawesiTinabo Bakka'Tampilkan peta IndonesiaTinabo Bakka'Tampilkan peta Asia TenggaraGeografiLokasiLaut FloresAsia TenggaraSamudra HindiaKoordinat6°34′12.000″S 121°5′57.056″E / 6.57000000°S 121.09918222°E / -6.57000000; 121.09918222KepulauanKepulauan Takabonerate, Kepulauan Selayar, Ke...

 

Akira Miyawaki Akira Miyawaki Nascimento 29 de janeiro de 1928Takahashi Morte 16 de julho de 2021 Cidadania Japão Irmão(ã)(s) Toshio Miyawaki Alma mater Universidade de Hiroshima Ocupação botânico, professor universitário, ecologista Prêmios Prêmio Planeta Azul (2006)Prêmio Reinhold Tüxen (1995)honorary doctor of the Saarland University (1981) Empregador(a) Universidade Nacional de Yokohama Causa da morte hemorragia intracerebral [edite no Wikidata] Akira Miyawaki (Takahashi, 2...

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (مارس 2018) جامعة لوليا للتكنولوجيا   معلومات التأسيس 1971 النوع عامة الموقع الجغرافي إحدا...

 

Chuta Kimura Información personalNacimiento 25 de febrero de 1914TakamatsuFallecimiento 3 de julio de 1987 (73 años)ParísNacionalidad FrancesaInformación profesionalOcupación Pintor Años activo 1937-1987[editar datos en Wikidata] Chuta Kimura (Takamatsu, 25 de febrero de 1914 - París, 3 de julio de 1987) fue un pintor japonés. Biografía Chuta Kimura nació en una familia acomodada, su padre era un promotor inmobiliario, descendiente de famosos samuráis del siglo ...

 

The Shirt. Caricature by Spy published in Vanity Fair in 1894. James Edwards Sewell (1810 – 29 January 1903) was an English academic, Warden of New College, Oxford, from 1860.[1] Life Sewell was educated at Winchester College and New College. In 1830, he became a Fellow of New College, and practically passed the rest of his life there, being elected to the headship in 1860.[1] The first University Commission had just released the colleges from the fetters of the...

German composer, organist and choir leader August Eberhard Müller August Eberhard Müller (13 December 1767, Northeim – 3 December 1817, Weimar) was a German composer, organist and choir leader. Life Trained by his organist father, he made his first public performance aged eight. He then studied under Johann Christoph Friedrich Bach at Bückeburg, where Müller served as organist at the Ulrichskirche until 1788. From 1789 he worked as choir leader, teacher and organist in Magdeburg. On the...

 

José Ángel Informasi pribadiNama lengkap José Ángel Valdés DíazTanggal lahir 5 September 1989 (umur 34)Tempat lahir Gijón, SpanyolTinggi 1,82 m (5 ft 11+1⁄2 in)Posisi bermain Bek kiriInformasi klubKlub saat ini PortoNomor 14Karier junior1994–1996 Roces1996–1997 La Braña1997–2008 Sporting GijónKarier senior*Tahun Tim Tampil (Gol)2008–2009 Sporting B 22 (0)2009–2011 Sporting Gijón 52 (1)2011–2014 Roma 27 (0)2012–2014 → Real Sociedad (pinjaman)...

 

2002 film For other uses, see Toofan (disambiguation). ToofanMovie Posterतूफ़ानDirected byPervaiz RanaProduced byBao Muhammad ShafiqStarringShaanReshamArbaaz KhanMoammar RanaNargisSaimaMusic byWajahat AttreRelease date26 July 2002CountryPakistanLanguageUrdu Toofan is a 2002 Pakistani Urdu film starring Shaan, Saima, Resham, Laila, and Arbaaz Khan.[1][2] Cast Shaan as Mujrem Daud[1] Saima[1] Resham[1] Nargis Laila Arbaaz Khan as ASP Arbaaz Mo...

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (ديسمبر 2018) هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها...

 

SnapchatCuplikanCuplikan menu Snapchat Discover di iOSPengembangEvan SpiegelReggie BrownBobby MurphyRilis perdanaSeptember 2011[1]Rilis stabil8.1.1Templat:Latest stable software release/Snapchat Sistem operasiiOS, AndroidPlatformiOS, AndroidUkuran16,2 MBTersedia dalamInggris, Arab, Bengali, Dansk, Belanda, Filipina, Suomi, Prancis, Jerman, Yunani, Gujarati, Hindi, Indonesia, Italia, Jepang, Kannada, Korea, Melayu, Malayalam, Marathi, Norwegia, Polandia, Portugis, Punjabi, Rumania...

 

1962 book by Gilles Deleuze Nietzsche and Philosophy Cover of the first editionAuthorGilles DeleuzeOriginal titleNietzsche et la philosophieTranslatorHugh TomlinsonCountryFranceLanguageFrenchSeriesBibliothèque de philosophie contemporaineSubjectFriedrich NietzschePublisherPresses Universitaires de France, Columbia University PressPublication date1962Published in English1983Media typePrint (Hardcover and Paperback)Pages221 (Columbia University Press edition)ISBN0-231-05669-9 (E...

This article is about broadcasts of National Football League games broadcast since 2006 on Sundays. For games broadcast before 2006, see ESPN Sunday Night Football. For games not broadcast on ESPN prior to 2006, see NFL on TNT. For other uses, see Sunday Night Football. For games broadcast by ESPN after 2006, see Monday Night Football.American television series NBC Sunday Night FootballCurrent SNF logo, in use since 2022Also known asSunday Night Football on NBCSNFGenreAmerican football teleca...

 

American musical duo Not to be confused with the film Jupiter Ascending. This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Jupiter Rising – news · newspapers · books · scholar · JSTOR (December 2014) (Learn how and when to remove this template message) Jupiter RisingBackground informationGenresDance-rock, funk...

 

American long jumper John William Brooks (July 31, 1910 – October 9, 1990) was an American long jumper. He competed in the 1936 Summer Olympics in Berlin, placing seventh in the long jump. Career Representing the University of Chicago, Brooks placed second behind Lambert Redd at the 1932 NCAA championships with a season-best jump of 25 ft 2+3⁄4 in (7.69 m).[1][2] He placed fourth with a leap of 24 ft 10+5⁄8 in (7.58 m) at t...

Berikut adalah artikel tentang daftar Kepala Daerah dan Wakil Kepala Daerah di 33 kabupaten/kota di Sumatera Utara yang saat ini masih menjabat. Kabupaten/Kota Foto Bupati/Wali Kota Bupati/Wali Kota Foto Wakil Bupati/Wali Kota Wakil Bupati/Wali Kota Mulai Menjabat Selesai Menjabat(Direncanakan) Ref KabupatenAsahanDaftar Bupati/Wakil Bupati Surya Taufik Zainal Abidin 26 Februari 2021 26 Februari 2024 [1] KabupatenBatubaraDaftar Bupati/Wakil Bupati Zahir lowong(mengundurkan diri mengiku...

 

Genus of insects For the mythical figure, see Galanthis. Historis Historis odius Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Arthropoda Class: Insecta Order: Lepidoptera Family: Nymphalidae Tribe: Coeini Genus: HistorisHübner, [1819] Synonyms Coea Hübner, [1819] Aganisthos Boisduval & Le Conte, [1835] Megistanis Doubleday, 1844 Historis is a genus of butterflies in the family Nymphalidae found from Mexico to South America.[1] Species Wikimedia Commons h...

 

Francesco Mantica Francesco Maria Mantica (20 Maret 1534 – 28 Januari 1617), adalah seorang kardinal dan yuris asal Italia. Jasadnya disemayamkan di Basilika Santa Maria del Popolo.[1] Vaticanae lucubrationes de tacitis et ambiguis conventionibus, 1621 Catatan ^ Alcune foto della tomba del cardinal Mantica. Diarsipkan dari versi asli tanggal 2022-07-03. Diakses tanggal 2018-05-23.  Pranala luar http://www.catholic-hierarchy.org/bishop/bmanticaf.html Diarsipkan 202...

Arquidiócesis de San Antonio Archidioecesis Sancti Antonii (en latín) Escudo de la arquidiócesis Catedral de San FernandoInformación generalIglesia católicaIglesia sui iuris latinaRito romanoSufragánea(s) • Amarillo• Dallas• El Paso• Fort Worth• Laredo• Lubbock• San ÁngeloFecha de erección 28 de agosto de 1874 (como diócesis)Breve de erección Arcano divinaeElevación a arquidiócesis 3 de agosto de 1926SedeCatedral de San FernandoCiudad sede San AntonioDivisión admini...

 

Hugo Morales Medallista olímpico Datos personalesNombre completo Hugo Alberto MoralesApodo(s) Huguito, Moralito, El Diez, ArgentinoNacimiento Buenos Aires, Argentina30 de julio de 1974 (49 años)Nacionalidad(es) ArgentinaAltura 1,74 metrosCarrera deportivaDeporte FútbolClub profesionalDebut deportivo 1991(Huracán)Posición MediocampistaRetirada deportiva 18 de agosto de 2007(Universidad Católica)               ...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!