<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://ermc2027.chombo.club/feed.xml" rel="self" type="application/atom+xml" /><link href="https://ermc2027.chombo.club/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-10-18T19:14:52+02:00</updated><id>https://ermc2027.chombo.club/feed.xml</id><title type="html">ERMC Katowice 2027</title><subtitle>ERMC Katowice 2027</subtitle><entry xml:lang="en"><title type="html">How the seating is made</title><link href="https://ermc2027.chombo.club/seating/" rel="alternate" type="text/html" title="How the seating is made" /><published>2026-10-07T12:00:00+02:00</published><updated>2026-10-07T12:00:00+02:00</updated><id>https://ermc2027.chombo.club/seating</id><content type="html" xml:base="https://ermc2027.chombo.club/seating/"><![CDATA[<p>Playing against people from other countries is the rare part of a championship like this, so our seating is built for it. You never play a compatriot, whatever the size of your country, and small countries are not merged into groups. You meet as many different countries as possible, around 20 for every player, and never the same opponent twice. Everyone also gets a similar mix of opponents, balanced seat winds and a different table every hanchan.</p>

<p>The plan for all 14 hanchans is computed in advance by a program. It knows only each player’s country, never names, ratings or results, and applies the same rules to everyone. Which schedule each player gets is then drawn by lot on a live stream before the tournament (see <a href="#when-you-get-your-seating">When you get your seating</a>).</p>

<h2 id="when-you-get-your-seating">When you get your seating</h2>

<ol>
  <li><strong>The seating chart.</strong> Once we know how many players each country sends, we will
publish the full seating chart for all 14 hanchans, ahead of the tournament. It
shows numbered places for each country instead of names, for example <strong>POL 07</strong>,
so you can check for yourself that it follows the rules on this page.</li>
  <li><strong>The live draw.</strong> One to two weeks before the tournament, we will draw on a live
stream which player takes which of their country’s places. After the draw, every
player knows their table and starting wind for every hanchan.</li>
</ol>

<h2 id="what-the-seating-aims-for">What the seating aims for</h2>

<p>The program pursues its goals in a fixed order and never trades a goal for one lower on the list. It first decides who plays together, then the winds, then the table numbers. The 14 hanchans are played over three days of 5, 5 and 4.</p>

<h3 id="who-you-play-against">Who you play against</h3>

<ol>
  <li>Never the same opponent twice.</li>
  <li>No compatriots at your table. Every country counts on its own, whatever its size (see the next section).</li>
  <li>At least one opponent in common with every player you never meet. Everyone’s results are then linked through shared opponents, which keeps the standings comparable.</li>
  <li>As many different countries as possible. Players who would meet the fewest countries are helped first.</li>
  <li>A fair mix of opponents on every day. Delegations are sorted into small, medium and large, each with about a third of the players, and everyone faces about the same mix of the three each day.</li>
  <li>Over the whole tournament, the small differences between days even out instead of adding up, so everyone ends close to the same overall mix.</li>
  <li>Not the same country in two consecutive hanchans.</li>
</ol>

<h3 id="your-starting-wind">Your starting wind</h3>

<ol>
  <li>Each wind 3 or 4 times: three of each, plus one extra East or South and one extra West or North. Starting West or North often costs the second dealer turn when a game hits the time limit, so nobody gets both extra seats there.</li>
  <li>Every day balanced: in a 5-hanchan day each wind once and one of them twice, in a 4-hanchan day each wind once.</li>
  <li>Not the same wind in two consecutive hanchans, and each wind spread over the tournament rather than bunched together.</li>
</ol>

<h3 id="where-you-sit">Where you sit</h3>

<ol>
  <li>A different table in every hanchan.</li>
  <li>Each area of the room in proportion to its size, over the tournament and, as far as possible, on each day.</li>
  <li>A different area from one hanchan to the next where possible.</li>
</ol>

<h2 id="compatriots-every-country-counts-on-its-own">Compatriots: every country counts on its own</h2>

<p>The program keeps compatriots apart without merging small countries into larger groups. Some events merge small countries into combined groups and keep each group apart as if it were one country. Here every country is its own group, whether it sends 1 player or 20.</p>

<p>Players from different small countries can therefore meet each other. A player from Slovakia can sit with a player from Hungary, because they are never treated as compatriots. This also helps the goal of meeting many countries: you can meet players from every other country, so you meet more different countries.</p>

<p>Unequal delegation sizes are handled by weighting instead. Each compatriot meeting counts as (largest delegation ÷ your delegation)², so the smaller your delegation, the more strongly it is protected. For example, with a largest delegation of 20 players:</p>

<table>
  <thead>
    <tr>
      <th>Your delegation</th>
      <th>Weight of one compatriot meeting</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>2 players</td>
      <td>100</td>
    </tr>
    <tr>
      <td>10 players</td>
      <td>4</td>
    </tr>
    <tr>
      <td>20 players</td>
      <td>1</td>
    </tr>
  </tbody>
</table>

<p>As long as no delegation has more players than there are tables (50 tables for 200 players), nobody ever plays a compatriot. Only a bigger delegation would make some meetings unavoidable. The program would then keep them to the minimum and place them in the largest delegations.</p>

<h2 id="how-it-works">How it works</h2>

<p>The program builds the whole schedule in seven steps, each based on a published method (see Sources). It uses only countries, never ratings or results.</p>

<ol>
  <li><strong>Countries first.</strong> Each delegation is treated as if its players had already played one hanchan together. Meeting a compatriot then counts like meeting someone twice, which the program is built to avoid.</li>
  <li><strong>A first draft.</strong> Tables are filled one at a time, each with the two pairs of players who still have the most possible opponents left.</li>
  <li><strong>Improving by swaps.</strong> The program swaps two players between tables of the same hanchan, always choosing the swap that helps most. Players just swapped are left alone for a while, and a few random swaps get it out of dead ends. This runs until nobody meets an opponent twice and no avoidable compatriot meeting is left.</li>
  <li><strong>The finer goals.</strong> The same swapping continues for shared opponents, countries met, the mix of opponents per day and overall, and back-to-back countries. Schedules are compared goal by goal, so a lower goal never costs anything on a higher one.</li>
  <li><strong>Winds.</strong> Everyone starts East or South exactly 7 times and West or North exactly 7 times, with 3 or 4 of each wind and every day balanced. To get this, the program first decides which two players at each table sit East or South, then who takes which wind. A last round of swaps avoids the same wind twice in a row and spreads the winds out.</li>
  <li><strong>Table numbers.</strong> With the groups of four and their winds fixed, each hanchan’s groups get their table numbers from the Hungarian method, a classic way to solve such matching problems exactly. Hanchans are then renumbered one at a time while that improves tables and areas.</li>
  <li><strong>Checking.</strong> The finished schedule is recounted from scratch, and a report shows how well each goal was met.</li>
</ol>

<p>The schedule is made for numbered places in each country, such as POL 07, and the live draw then decides which player takes which of their country’s places. Your schedule therefore depends only on your country and the draw.</p>

<h2 id="sources">Sources</h2>

<ul>
  <li><a href="https://en.wikipedia.org/wiki/Social_golfer_problem">Social golfer problem</a>: the classic puzzle of seating players in groups so that no two meet twice, which this program extends with countries.</li>
  <li>M. Triska &amp; N. Musliu, <a href="https://www.patatconference.org/patat2008/proceedings/Triska-HC3a.pdf">Solving the Social Golfer Problem with a GRASP</a>, PATAT 2008, and “An effective greedy heuristic for the Social Golfer Problem”, Annals of Operations Research 194 (2012): steps 2 and 3.</li>
  <li>I. Dotú &amp; P. Van Hentenryck, “Scheduling social golfers locally”, CPAIOR 2005: the swap search in step 3.</li>
  <li>D. de Werra, “Equitable colorations of graphs”, RAIRO 5 (1971): the wind splits in step 5.</li>
  <li>M. M. Lester, <a href="https://centaur.reading.ac.uk/98698/">Scheduling reach mahjong tournaments using pseudoboolean constraints</a>, SAT 2021: the goal that players who never meet share an opponent (a tournament graph of diameter 2), and the wind rule of one extra East or South and one extra West or North, used for the 2016 ERMC.</li>
  <li>H. W. Kuhn, “The Hungarian method for the assignment problem”, Naval Research Logistics Quarterly 2 (1955): step 6.</li>
</ul>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[Playing against people from other countries is the rare part of a championship like this, so our seating is built for it. You never play a compatriot, whatever the size of your country, and small countries are not merged into groups. You meet as many different countries as possible, around 20 for every player, and never the same opponent twice. Everyone also gets a similar mix of opponents, balanced seat winds and a different table every hanchan.]]></summary></entry><entry xml:lang="en"><title type="html">Accommodation</title><link href="https://ermc2027.chombo.club/accommodation/" rel="alternate" type="text/html" title="Accommodation" /><published>2026-07-08T17:02:00+02:00</published><updated>2026-07-08T17:02:00+02:00</updated><id>https://ermc2027.chombo.club/accommodation</id><content type="html" xml:base="https://ermc2027.chombo.club/accommodation/"><![CDATA[<p>The <a href="/venue/">venue</a> is in the centre of Katowice, so there are
plenty of hotels within walking distance. Here are some options, from right next door
to a short walk away. Walking times are approximate.</p>

<p><strong>Player discounts:</strong> we are asking several of these hotels for discount codes for
ERMC players. Codes will be added to the hotels below as soon as we have them.
We still recommend booking early.</p>

<h2 id="in-the-venue-complex">In the venue complex</h2>

<div class="feature__wrapper">

  
    <div class="feature__item--left">
      <div class="archive__item">
        

        <div class="archive__item-body">
          
            <h2 class="archive__item-title">Hotel Diament Spodek</h2>
          

          
            <div class="archive__item-excerpt">
              <p>Inside the Spodek building, a couple of minutes’ walk from the playing hall.
A simple three-star hotel with 30 rooms. Parking is available on site but must
be booked in advance.</p>

<p><em>al. Korfantego 35</em></p>

            </div>
          

          
            <p><a href="https://www.hotelediament.pl/hotele/hotel-diament-spodek/" class="btn btn--primary">Hotel website</a></p>
          
        </div>
      </div>
    </div>
  

</div>

<h2 id="around-10-minutes-walk">Around 10 minutes’ walk</h2>

<div class="feature__wrapper">

  
    <div class="feature__item--left">
      <div class="archive__item">
        
          <div class="archive__item-teaser">
            <img src="/assets/images/hotels/voco.jpg" alt="voco Katowice" />
            
              <span class="archive__item-caption">Photo: Adrian Tync, <a href="https://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0</a>, via Wikimedia Commons
</span>
            
          </div>
        

        <div class="archive__item-body">
          
            <h2 class="archive__item-title">voco Katowice</h2>
          

          
            <div class="archive__item-excerpt">
              <p>Modern hotel with a restaurant, gym and pool, about 10 minutes’ walk from the venue.</p>

<p><em>al. Korfantego 9</em></p>

            </div>
          

          
            <p><a href="https://www.ihg.com/voco/hotels/us/en/katowice/ktwkp/hoteldetail" class="btn btn--primary">Hotel website</a></p>
          
        </div>
      </div>
    </div>
  
    <div class="feature__item--left">
      <div class="archive__item">
        
          <div class="archive__item-teaser">
            <img src="/assets/images/hotels/courtyard.jpg" alt="Courtyard by Marriott Katowice City Center" />
            
              <span class="archive__item-caption">Photo: Matti Blume, <a href="https://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0</a>, via Wikimedia Commons
</span>
            
          </div>
        

        <div class="archive__item-body">
          
            <h2 class="archive__item-title">Courtyard by Marriott Katowice City Center</h2>
          

          
            <div class="archive__item-excerpt">
              <p>High-rise hotel with city views and a top-floor restaurant, about 10 minutes’
walk from the venue.</p>

<p><em>ul. Uniwersytecka 13</em></p>

            </div>
          

          
            <p><a href="https://www.marriott.com/hotels/travel/ktwcy-courtyard-katowice-city-center" class="btn btn--primary">Hotel website</a></p>
          
        </div>
      </div>
    </div>
  
    <div class="feature__item--left">
      <div class="archive__item">
        
          <div class="archive__item-teaser">
            <img src="/assets/images/hotels/novotel.jpg" alt="Novotel Katowice Centrum" />
            
              <span class="archive__item-caption">Photo: Marek Mróz, <a href="https://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0</a>, via Wikimedia Commons
</span>
            
          </div>
        

        <div class="archive__item-body">
          
            <h2 class="archive__item-title">Novotel Katowice Centrum</h2>
          

          
            <div class="archive__item-excerpt">
              <p>Large hotel with a pool and sauna, about 12 minutes’ walk from the venue.</p>

<p><em>al. Roździeńskiego 16</em></p>

            </div>
          

          
            <p><a href="https://all.accor.com/hotel/3377/index.en.shtml" class="btn btn--primary">Hotel website</a></p>
          
        </div>
      </div>
    </div>
  
    <div class="feature__item--left">
      <div class="archive__item">
        
          <div class="archive__item-teaser">
            <img src="/assets/images/hotels/ibis-budget.jpg" alt="ibis budget Katowice Centrum" />
            
              <span class="archive__item-caption">Photo: Panek, <a href="https://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0</a>, via Wikimedia Commons
</span>
            
          </div>
        

        <div class="archive__item-body">
          
            <h2 class="archive__item-title">ibis budget Katowice Centrum</h2>
          

          
            <div class="archive__item-excerpt">
              <p>The budget option, next door to the Novotel and about 12 minutes’ walk from the
venue. The airport bus stops right by the hotel.</p>

<p><em>al. Roździeńskiego 18</em></p>

            </div>
          

          
            <p><a href="https://all.accor.com/hotel/6601/index.en.shtml" class="btn btn--primary">Hotel website</a></p>
          
        </div>
      </div>
    </div>
  

</div>

<h2 id="in-the-city-centre">In the city centre</h2>

<div class="feature__wrapper">

  
    <div class="feature__item--left">
      <div class="archive__item">
        
          <div class="archive__item-teaser">
            <img src="/assets/images/hotels/vienna-house.jpg" alt="Vienna House Easy by Wyndham Katowice" />
            
              <span class="archive__item-caption">Photo: Marek Mróz, <a href="https://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0</a>, via Wikimedia Commons
</span>
            
          </div>
        

        <div class="archive__item-body">
          
            <h2 class="archive__item-title">Vienna House Easy by Wyndham Katowice</h2>
          

          
            <div class="archive__item-excerpt">
              <p>Modern hotel close to the city centre, about 15 minutes’ walk from the venue.</p>

<p><em>ul. Sokolska 24</em></p>

            </div>
          

          
            <p><a href="https://www.wyndhamhotels.com/vienna-house/katowice-poland/vienna-house-easy-katowice/overview" class="btn btn--primary">Hotel website</a></p>
          
        </div>
      </div>
    </div>
  
    <div class="feature__item--left">
      <div class="archive__item">
        
          <div class="archive__item-teaser">
            <img src="/assets/images/hotels/monopol.jpg" alt="Hotel Monopol" />
            
              <span class="archive__item-caption">Photo: Gower, <a href="https://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0</a>, via Wikimedia Commons
</span>
            
          </div>
        

        <div class="archive__item-body">
          
            <h2 class="archive__item-title">Hotel Monopol</h2>
          

          
            <div class="archive__item-excerpt">
              <p>Historic five-star hotel from 1902 with a spa and pool, near the main railway
station and about 15–20 minutes’ walk from the venue.</p>

<p><em>ul. Dworcowa 5</em></p>

            </div>
          

          
            <p><a href="https://monopolkatowice.hotel.com.pl/hotel-monopol-katowice" class="btn btn--primary">Hotel website</a></p>
          
        </div>
      </div>
    </div>
  

</div>

<p>There are many more hotels and apartments in the city centre. Anywhere near
<strong>Katowice</strong> railway station or the <strong>Rondo</strong> roundabout is within easy reach of the
venue on foot or by tram. See <a href="/transport/">Getting to Katowice</a>
for details.</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[The venue is in the centre of Katowice, so there are plenty of hotels within walking distance. Here are some options, from right next door to a short walk away. Walking times are approximate.]]></summary></entry><entry xml:lang="en"><title type="html">Getting to Katowice</title><link href="https://ermc2027.chombo.club/transport/" rel="alternate" type="text/html" title="Getting to Katowice" /><published>2026-07-08T17:01:00+02:00</published><updated>2026-07-08T17:01:00+02:00</updated><id>https://ermc2027.chombo.club/transport</id><content type="html" xml:base="https://ermc2027.chombo.club/transport/"><![CDATA[<p>ERMC 2027 takes place in Katowice, in southern Poland. The city is well connected by air,
rail and road, and the <a href="/venue/">venue</a> is in the city centre,
a short walk from the main railway station.</p>

<p>Timetables and prices change, so please check the operators’ websites before you travel.</p>

<h2 id="by-plane">By plane</h2>

<p><strong>Katowice Airport (KTW)</strong> in Pyrzowice is about 34 km north of the city centre and has
connections to destinations across Europe. Airport buses run to the centre and take about
45 minutes; a taxi takes around 40 minutes. See the
<a href="https://www.katowice-airport.com/">airport’s website</a> for current bus options.</p>

<p><strong>Kraków Airport (KRK)</strong> has even more connections and is about 80 km from Katowice.
Direct buses go from the airport to Katowice in roughly an hour. Alternatively, take the
airport train to Kraków Główny and change there for Katowice, which takes around two hours
in total. By car the trip is about an hour.</p>

<p><strong>Ostrava Airport (OSR)</strong> in the Czech Republic is about 130 km away, around 1 hour
15 minutes by car. From Ostrava there are direct trains and buses to Katowice, taking
about 1.5 hours.</p>

<h2 id="by-train">By train</h2>

<p><strong>Katowice</strong> is the city’s main railway station, in the centre, about 15 minutes’ walk
from the venue.</p>

<ul>
  <li><strong>From Kraków:</strong> about 1 hour 10 minutes, with frequent trains.</li>
  <li><strong>From Warsaw:</strong> about 2.5–3 hours.</li>
  <li><strong>International:</strong> Katowice has direct trains to several other countries, including
Germany, the Czech Republic, Austria and Hungary.</li>
</ul>

<p>Tickets and timetables for all Polish rail operators are on <a href="https://koleo.pl/">koleo.pl</a>.</p>

<h2 id="by-bus">By bus</h2>

<p>Long-distance buses, such as FlixBus, arrive at the Katowice bus station, about
5 minutes’ walk from the main railway station and around 20 minutes’ walk from the venue.</p>

<h2 id="by-car">By car</h2>

<p>Katowice sits at the junction of the A4 (east–west) and A1 (north–south) motorways. The
venue has its own car park with around 1,500 spaces.</p>

<h2 id="getting-around-katowice">Getting around Katowice</h2>

<p>From the main railway station you can walk to the venue in about 15 minutes, or take a tram
a few stops to <strong>Katowice Rondo</strong>. Other nearby stops are <strong>Katowice Spodek</strong> and
<strong>Katowice Uniwersytecka</strong>.</p>

<p>Trams and buses are run by the regional transport authority (ZTM). Plan your journey and
buy tickets with the <a href="https://jakdojade.pl/">Jakdojade</a> app, or check timetables at
<a href="https://rj.metropoliaztm.pl/">rj.metropoliaztm.pl</a>. Taxis and ride-hailing apps such as
Uber and Bolt are also available.</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[ERMC 2027 takes place in Katowice, in southern Poland. The city is well connected by air, rail and road, and the venue is in the city centre, a short walk from the main railway station.]]></summary></entry><entry xml:lang="en"><title type="html">Organisers</title><link href="https://ermc2027.chombo.club/organisers/" rel="alternate" type="text/html" title="Organisers" /><published>2026-07-08T17:00:00+02:00</published><updated>2026-07-08T17:00:00+02:00</updated><id>https://ermc2027.chombo.club/organisers</id><content type="html" xml:base="https://ermc2027.chombo.club/organisers/"><![CDATA[<p>Main organiser:</p>
<ul>
  <li><a href="http://mahjong.org.pl">Polish League of Mahjong (PLM)</a></li>
</ul>

<p>Support:</p>
<ul>
  <li><a href="https://mahjongsilesia.wordpress.com/">Upper Silesian Mahjong Association (USMA)</a></li>
  <li><a href="https://chombo.club/">Kraków Chombo Club Association</a></li>
  <li><a href="https://mahjongkaszebe.pl">Mahjong Kaszëbë</a></li>
</ul>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[Main organiser: Polish League of Mahjong (PLM)]]></summary></entry></feed>