Vertex Ordering Algorithms for Graph Coloring Problem

08/26/2020
by   Arda Asik, et al.
Sabancı University
0

Graph coloring is a fundamental problem in combinatorics with many applications in practice. In this problem, the vertices in a given graph must be colored by using the least number of colors in such a way that a vertex has a different color than its neighbors. The problem, as well as its different variants, has been proven to be NP-Hard. Therefore, there are greedy algorithms in the literature aiming to use a small number of colors. These algorithms traverse the vertices and color them one by one. The vertex visit order has a significant impact on the number of colors used. In this work, we investigated if social network analytics metrics can be used to find this order. Our experiments showed that when closeness centrality is used to find vertex visit order, a smaller number of colors is used by the greedy algorithms.

READ FULL TEXT VIEW PDF
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

02/19/2021

A matheuristic approach for the b-coloring problem using integer programming and a multi-start multi-greedy randomized metaheuristic

Given a graph G=(V,E), the b-coloring problem consists in attributing a ...
08/26/2020

High-Performance Parallel Graph Coloring with Strong Guarantees on Work, Depth, and Quality

We develop the first parallel graph coloring heuristics with strong theo...
08/06/2019

An Index for Sequencing Reads Based on The Colored de Bruijn Graph

In this article, we show how to transform a colored de Bruijn graph (dBG...
06/03/2019

An Information-Theoretical Approach to the Information Capacity and Cost-Effectiveness Evaluation of Color Palettes

Colors are used as effective tools of representing and transferring info...
03/20/2018

Balanced Black and White Coloring Problem on knights chessboards

Graph anticoloring problem is partial coloring problem where the main fe...
11/24/2017

(Biased) Majority Rule Cellular Automata

Consider a graph G=(V,E) and a random initial vertex-coloring, where eac...
01/11/2020

Grundy Coloring friends, Half-Graphs, Bicliques

The first-fit coloring is a heuristic that assigns to each vertex, arriv...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

I Grş

Çizge renklendirme probleminde bir çizgenin noktaları, her bir nokta komşularından farklı renkte olacak şekilde ve en az renk kullanılarak renklendirilmelidir. Komşuluk ilişkisi tek bir kenar üzerinden tanımlandığından problemin bu hali 1-uzaklık çizge renklendirme olarak da adlandırılır. Problemin bu basit halinin bile NP-Zor olduğu kanıtlanmıştır [matula_SL, Zuckerman]. Literatürde daha genel renklendirme problemleri de incelenmiştir. Örneğin komşuluk ilişkisi kenar ile tanımlandığında, problem -uzaklık çizge renklendirme problemi olarak adlandırılır. Bu problemde, iki nokta arasında ya da daha az kenar kullanan bir yol varsa, bu iki nokta farklı renklerde olmalıdır.

Çizgeler gerçek hayatta birçok farklı veriyi ve problemi modellemek için kullanılmaktadır. Bu nedenle, çizge renklendirme problemlerinin pratikte birçok uygulaması bulunmaktadır. Örneğin, kablosuz bir ağdaki cihazlar çizge üzerindeki noktalar, cihazlar arasındaki potansiyel parazitler çizgede birer kenar olarak modellenebilir. Bu ağ üzerindeki kanal atama probleminde, cihazlar kanallara birbirleri ile parazit oluşturan (ya da çizge üzerinde kenar paylaşan) iki cihaz farklı kanallara atanacak şekilde yerleştirilmelidir. Bu atama yapılırken bütün cihazların (noktaların) kapsanması ve kanal (renk) sayısının en az olması istenmektedir. Bu da bir çizge renklendirme problemidir [Balasundaram06graphdomination]. Çizge renklendirme iletişim ağları üzerinde parazit azaltma, içerik iletimi, önbellek yapısının ayarlanması gibi problemler için de kullanılmıştır [hassan11, 8080217, DBLP:journals/corr/abs-1801-00106]. Bunun yanında nükleik asit dizisi tasarımı [7498232], hava trafik akış yönetimi [Barnier2004], sosyal ağlarda topluluk tespiti [6921552] ve paralel hesaplama [10.1145/2513109.2513110] alanlarında problemin farklı türleri karşımıza çıkmaktadır.

Renklendirme problemi NP-Zor olduğundan literatürde bu problem için açgözlü algoritmalar önerilmiştir. Bu algoritmalar çizge üzerindeki noktaları belli bir sırada gezer ve her noktayı o an için komşuluğunda kullanılmayan bir renge boyar. Bu çalışmada kullanılan algoritma, noktayı kullanılmayan ilk renge boyamaktadır. Açgözlü algoritmaların kullandığı nokta sırası oldukça önemlidir. Örneğin, verilen bir çizge için elimizde en az sayıda rengi kullanan bir renklendirmenin olduğunu varsayalım. Noktaları renklerine göre sıralayıp (ve renkleri silip) açgözlü algoritmaya verdiğimizde algoritma bize en iyi sonucu verecektir. Fakat kötü bir sıralama, renk sayısını arttıracaktır. Bu makalede sosyal ağ analizinde kullanılan metriklerin, açgözlü renklendirme algoritmalarının nokta sıralamasının bulunması üzerine çalışılmıştır. Yapılan deneyler göstermiştir ki, bir sosyal ağ metriği olan yakınlık merkeziyeti ile noktalar sıralandığında, açgözlü algoritmanın kullandığı renk sayısı azalmaktadır.

Ii Yöntem

yönsüz bir çizge olsun ve kümesindeki bütün noktaları için () fonksiyonu ’nin komşuluk kümesini belirtiyor olsun. Algoritma anlatılırken renkler, doğal sayılar ile gösterilecektir ve sayı -1 olduğunda nokta henüz renklendirilmemiş olarak düşünülecektir. Açgözlü algoritmanın sözde kodu Algoritma 1’de gösterilmiştir. Algoritma fonksiyonunun tanımına göre farklı türdeki renklendirme problemleri için kullanılabilir. Komşuluk fonksiyonu

olarak tanımlandığında algoritma 1-uzaklık renklendirme problemi için bir renklendirme üretecektir.

Komşuluk fonksiyonundan bağımsız olarak, açgözlü algoritma ilk noktalarda renk seçimi açısından daha rahat olacak, fakat noktalar boyandıkça renk seçiminde zorlanmaya başlayacaktır. Dolayısıyla noktaların sıralaması oldukça önemlidir. Rastgele bir sıralama her zaman iyi sonuç vermeyebilir. Literatürde bu algoritmanın sıralama özelinde analizi yapılmış, rastgele sıralamaların yüksek olasılıkla minimum renk sayısından çok daha fazla renk kullandığı çizge çeşitlerinin varlığı gösterilmiştir [KUCERA1991674, DBLP:journals/corr/Husfeldt15].

Girdi: , : renklendirilecek noktalar, : kenarlar
          (): komşuluk fonksiyonu
Çıktı: : renklendirme listesi.

1:for her noktası için do
2:     
3:     for her (do
4:          if  then
5:                               
6:      ilk uygun renk yöntemi
7:     while  do
8:                
9:     
Algoritma 1 ÇizgeRenklendirme

Literatürde noktaların sıralanması için farklı yöntemler denenmiştir. Sık kullanılan bir yöntem, noktaların bağlı oldukları kenar sayıları (dereceleri) kullanılarak sıralanmasıdır. Noktalar azalan kenar sayısına göre sıralandığında daha riskli noktalar önce boyanacak ve algoritma daha kısıtlanmış olduğu son adımlarda renk sayısını arttırmadan daha bir çözüm elde edebilecektir. Bu sıralamaya Welsch-Powell yöntemi de denmektedir [wwws]. Noktalar derecelerine, değerlerine göre sıralandıklarında açgözlü algoritmanın kullanacağı maksimum renk sayısı olacaktır.

Bu çalışmada kullanılan sıralama yöntemleri aşağıda verilmiştir.

  • 1-komşuluk: Bu yöntem yukarıda anlatılan, azalan değerlerini kullanan sıralama yöntemidir.

  • 2-komşuluk: Bu yöntem noktaları azalan değerlerine göre sıralar. Çizge üzerindeki herhangi iki ve noktası arasındaki en kısa uzaklık ile gösterilsin. Bir noktasının 2-komşuluğu,

    olarak hesaplanır.

  • 3-komşuluk: Bu yöntem noktaları azalan değerlerine göre sıralar. Bir noktası için kümesi

    olarak hesaplanır.

  • Yakınlık merkeziyeti: Çizge üzerindeki herhangi iki ve noktası arasındaki en kısa uzaklık ile gösterilsin. Bir noktasının yakınlık merkeziyeti

    olarak hesaplanır [Sabidussi1966, doi:10.1121/1.1906679]. Bu yöntem noktaları azalan yakınlık merkeziyeti değerlerine göre sıralar. Yöntemin amacı çizgeyi içeriden dışarıya doğru, öncelikle içerideki yoğun kısmın üzerinden geçerek renklendirmektir. Dolayısıyla çizgedeki zor ve riskli noktalar daha önce renklendirilecek, dışarıda kalan, kullanılan renk sayısını arttırması daha düşük olasılığa sahip uç noktalar algoritmanın kısıtlandığı son adımlarda renklendirilecektir.

  • Kümeleme katsayısı: Bu yöntemde noktalar azalan kümeleme katsayısı değerlerine göre sıralanır. Kümeleme katsayısı, noktanın komşularının birbirine ne kadar bağlı olduğunu gösterir [Watts1998Collective, doi:10.1177/104649647100200201]. Çizge üzerindeki bir noktası için

    noktanın kümeleme katsayısını vermektedir. Bu değer yüksek olduğunda nokta neredeyse birbirine tam bağlı bir alt çizge içerisinde yer almaktadır. Bu da noktayı açgözlü algoritma için riskli bir nokta yapmaktadır. Bu sıralama yöntemi bu tür noktaları ilk sıralara koyarak renk sayısını azaltmayı hedeflemektedir.

  • PageRank: PageRank sosyal ağ analizinde sıklıkla kullanılan bir merkeziyet metriğidir [Pageetal98]. Çizge üzerindeki bir noktanın PageRank değeri, kenarlar üzerinden rastgele nokta gezintisi yapan bir kişinin belli bir anda o noktada bulunma olasılığını vermektedir. Bu sıralama yöntemi azalan PageRank değerlerini kullanır. Bu yöntemin temel motivasyonu, yakınlık merkeziyeti için kullanılan yöntemin motivasyonu ile aynıdır ve çizgenin merkezinden başlayarak, renk sayısını arttırma olasılığı yüksek olan noktaları ilk sırada renklendirmektir. Çizge üzerindeki noktaların PageRank değerleri yinelemeli bir algoritma ile hesaplanır. Bir noktasının başlangıçtaki PageRank degeri olarak kabul edilir. Hesaplama esnasında adımındaki PageRank değeri ise

    olur.

  • Rastgele: Bu yöntem noktaları rastgele, gelişigüzel bir şekilde sıralamaktadır.

Iii Deney Sonuçları

Bu çalışmada yapılan deneyler, 512GB RAM’e sahip, 64 bit CentOS 6.5 ile çalışan, her bir soketin 15 çekirdeğe sahip olduğu (toplamda 60), 2.30 GHz ile çalışan Intel Xeon E7-4870 v2’de yapıldı. Yazılan bütün kodlar gcc 8.2.0 ile optimizasyon parametresi -O3 kullanılarak derlendi.

Deneylerde kullanılan bütün çizgeler SuiteSparse111http://faculty.cse.tamu.edu/davis/suitesparse.html seyrek matris kütüphanesinden indirildi. İlk kısım deneyler için nokta sayısı ila arasındaki bütün simetrik matrisler kullanıldı. Deneyler yapılırken, kütüphanede bu özelliklere sahip 204 matris bulunmaktaydı. Her bir matris, noktalar matrisin satır ve sütunları, kenarlar da matris içerisindeki sıfırdan farklı sayılar olmak üzere bir çizge şeklinde modellendi. Bir sıralama yönteminin bir matris özelindeki performansı ölçülürken, o yöntem ile elde edilen renk sayısının, 1-komşuluk yöntemi ile elde edilen renk sayısına oranı kullanıldı. Performans sonuçları ölçülürken, PageRank için 20 yineleme yapılmıştır. Rastgele sıralama yönteminin performansı ise 5 rastgele permütasyonun ortalaması alınarak ölçülmüştür. Yakınlık merkeziyeti için ise sonucu kesin olmasa da çok hızlı şekilde veren bir yakınsama algoritması kullanılmıştır [doi:10.1142/S0218127407018403].

Tablo I’de, Bölüm II’de anlatılan sıralama yöntemlerinin bütün matrisler için hesaplanan performanslarının geometrik ortalamaları verilmiştir. Tabloda da görüldüğü üzere, Yakınlık Merkeziyeti tabanlı sıralama diğer tüm sıralamalardan daha etkili bir sonuç vermiştir. Bu sonuçların daha detaylı incelemesi için Şekil 1’e bakılabilir. Görüldüğü gibi, yakınlık merkeziyeti tabanlı sıralama kimi çizgeler için 4.5 kat daha az renk kullanırken, bu çizgeler üzerinde en fazla fazla renk kullanmaktadır.

Sıralama 1-uzaklık
1-komşuluk 1.00
2-komşuluk 1.02
3-komşuluk 1.07
Yakınlık Merkeziyeti 0.97
Kümelenme Katsayısı 1.03
PageRank 1.02
Rastgele Sıralama 1.08
TABLO I: 1-UZAKLIK RENKLENDİRME İÇİN SIRALAMA ALGORİTMALARININ PERFORMANSLARININ GEOMETRİK ORTALAMASI
Şekil 1: Yakınlık merkeziyeti metriğinin renklendirme problemi için 204 çizge üzerindeki performansı.

Her ne kadar yakınlık merkeziyeti tabanlı sıralama bütün sıralama yöntemlerinden daha iyi çalışmış olsa da, performans sadece 1-komşuluk sıralama yöntemine göre değerlendirilmiştir. Bunun sebebi, kullanılan çizgelerin en iyi çözümü hızlı bir şekilde elde edemeyeceğimiz kadar büyük olmasıdır. Performansın en iyi çözüme göre değerlendirilmesi için ikinci, görece daha küçük çizgelerden oluşan bir çizge kümesi oluşturulmuştur. Bu kümeyi oluşturmak için SuiteSparse kütüphanesinden nokta sayısı 100 ila 500 arası, 260 simetrik matris seçilmiş ve çizge olarak modellenmiştir. Bütün bu çizgeler için en az sayıda renk kullanan çözümler, lineer programlama yöntemi ve CPLEX kütüphanesi kullanarak elde edilmiştir.

Bu küme üzerindeki performans sonuçları Tablo II’de verilmiştir. Değerlerden görüleceği üzere, yakınlık merkeziyeti büyük çizgelerde olduğu gibi daha önce anlatılan bütün sıralama yöntemlerinden daha başarılı bir performans elde etmiştir. Yakınlık merkeziyeti, en iyi sonuca göre ortalama daha fazla renk kullanmaktadır. 1-komşuluk tabanlı sıralama ise en iyi sonuca göre daha fazla renkle çizge renklendirme yapabilmektedir.

Ölçüt 1-uzaklık
1-komşuluk 1.36
2-komşuluk 1.35
3-komşuluk 1.40
Yakınlık Merkeziyeti 1.23
Kümelenme Katsayısı 1.40
PageRank 1.34
Rastgele Sıralama 1.56
Ağırlıklı Sıralama 1.16
Tekdüze Sıralama 1.53
TABLO II: 1-UZAKLIK RENKLENDİRME İÇİN SIRALAMA ALGORİTMALARININ EN İYİ ÇÖZÜME GÖRE PERFORMANSLARININ GEOMETRİK ORTALAMASI

Bu küme üzerindeki performans sonuçlarının oluşturulması sürecinde büyük çizgelerde kullanılan sıralama algoritmalarına ek olarak tekdüze ve ağırlıklı sıralama yöntemleri de denenemiştir. Bu sıralama yöntemleri normalize edilmiş değerleri kullanır. Bunun için bütün nokta değerlerinden o değerin ortalaması çıkartılır ve elde edilen değer standart sapmaya bölünür. Tekdüze sıralama bir noktasının normalize edilmiş bütün değerlerini (1-komşuluk, 2-komşuluk, 3-komşuluk, yakınlık merkeziyeti, kümelenme katsayısı ve PageRank) toplayarak elde edilen değer için azalan sıraya göre noktaları sıralar. Tablo II’de görüldüğü gibi bu sıralama rastgele bir sıralama kadar kötü sonuçlar vermiştir.

Ağırlıklı sıralama, Tablo II’de verilen metriklerin farklı kombinasyonlarının kullanılması ile en fazla ne kadar iyi bir sonuç alınabileceğini ölçmek için tasarlanmıştır. Sıralamalar, birbirleri arasındaki ölçek farkını gidermek için normalize edildikten sonra, tüm lineer kombinasyonlar arasından en iyi ortalama sonucu veren ağırlık kombinasyonu bulunmuştur. Elde edilen ağırlıklar Tablo III’te verilmiştir.

Ölçüt 1-uzaklık
1-komşuluk 0.10
2-komşuluk 0.05
3-komşuluk 0.10
Yakınlık Merkeziyeti 0.70
Kümelenme Katsayısı 0.05
PageRank 0.00
TABLO III: AĞIRLIKLI SIRALAMA ALGORİTMASI İÇİN AĞIRLIK DEĞERLERİ

Katsayılar incelendiğinde, yakınlık merkeziyeti değerinin diğer ağırlıklardan daha yüksek olduğu görülür. Başka bir deyişle, yakınlık merkeziyeti, en iyi kombinasyon içerisinde diğer metriklerden daha büyük bir etkiye sahiptir. Bu sıralama algoritması ile en iyi sonuçtan sadece kötü sonuç elde edilmiştir. Yine Tablo II’de görüldüğü gibi, yakınlık merkeziyeti, küçük çizgeler için sıralama algoritmalarıyla oluşturulabilecek en iyi renklendirmeden ortalama sadece daha fazla renk ile çizgeleri renklendirebilmektedir.

Şekil 2: Ağırlıklandırılmış sıralamanın ve yakınlık merkeziyeti metriğinin renklendirme problemi için 204 çizge üzerindeki performansı.

Ağırlıklandırılmış sıralama ilk deneydeki çizge kümesi üzerinde kullanıldığında, yakınlık merkeziyeti tabanlı sıralamanın iyileştiremediği çok sayıda çizgeyi iyileştirdiği görülmüştür (Şekil 2). Ağırlıklandırılmış sıralama yöntemi, 204 çizgenin sadece 45’inde yakınlık merkeziyeti tabanlı sıralamadan daha iyi sonuç elde edememiştir. Dolayısıyla, ağırlıklandırılmış yöntemin başarılı bir sıralama yaratma potansiyelinin olduğu düşünülmektedir.

Iv Sonuç

Bu çalışmada çizge renklendirme problemi için kullanılan açgözlü algoritmalardaki nokta sıralaması için yöntemler üzerine yoğunlaşılmıştır. Sosyal ağ analizi için kullanılan metriklerin bu sıralamaların bulunmasındaki başarıları araştırılmıştır. Yapılan deneyler göstermiştir ki, yakınlık merkeziyeti metriği, sıralama için oldukça başarılı bir metriktir.

Bu çalışmada sadece statik sıralama yöntemleri üzerinde durulmuştur. Algoritma çalıştıkça noktalar renklendirildiğinden, her adımda farklı bir sıralamanın en iyi olma olasılığı oldukça fazladır. İleride, sıralamanın noktaların komşuluklarındaki farklı renk sayısı gibi dinamik metrikler de kullanılrarak, sürekli değişen sıralamalar üzerinde çalışılacaktır. Verilen bir çizge için en iyi sıralama yönteminin tahmin edilmesi de oldukça ilginç bir problemdir. İleride bu problem üzerinde de çalışılması planlanmaktadır.

Kaynaklar