Tiket untuk Naik Eropa - Aritmatika, Bagian Dua

Masih terus mempelajari dasar-dasar matematika dan mekanik dalam permainan. Artikel ini adalah yang kedua dalam seri ( Tautan ke bagian pertama ), melanjutkan analisis pengangkutan, upaya untuk mengurutkan mereka sesuai dengan kebutuhan, mempelajari berbagai cara membangun rute. Jika kita menggambar analogi dengan matematika, ini hanyalah dasar-dasar, aritmatika. Aljabar dan matematika yang lebih tinggi dalam semangat "mengambil mobil atau membangun panggung?", "Apa yang lebih baik untuk dibangun sekarang - panggung atau stasiun?" dan “penggunaan satu angkut oleh beberapa rute” masih dalam tahap perencanaan, saya harap tangan dan otak akan mencapainya.

Secara default, di pos ada alasan yang relevan untuk permainan 2-3 pemain (hanya satu jalur yang digunakan pada jalur "jalur ganda")

Informasi singkat tentang bagian pertama
Pada artikel pertama, dengan bantuan python dan Excel, sebuah upaya dilakukan untuk memahami mobil mana yang lebih menguntungkan untuk digunakan untuk pembangunan pengangkutan abu-abu, cara membuat rute ini atau itu dengan tercepat.

Dari perkembangan sebelumnya, hanya tabel "jumlah gerakan untuk pembangunan bentangan panjang N" yang akan digunakan:

Jumlah gerakan untuk pembangunan panggung

Cari cara yang paling "menguntungkan"


Seperti yang ditunjukkan oleh praktik permainan dan komentar dari peserta yang dihormati, jalur terpendek antara dua kota tidak selalu yang paling menguntungkan ( untuk menjadi sangat jujur, hampir tidak pernah ). Mari kita coba menemukan cara di mana rasio "poin yang diperoleh / bergerak dihabiskan" akan maksimum.

Deskripsi algoritma pencarian jalur
1. Untuk masing-masing dari 46 kartu rute, semua "rute" yang memungkinkan dicari dari titik awal ke titik tujuan. Untuk "rute" rute, kami memperkenalkan dua batasan:

  • Panjang (jumlah gerbong yang dihabiskan) tidak melebihi 45 (gerbong maksimum yang mungkin).
  • Setiap kota hanya dapat digunakan satu kali (loop tidak dipertimbangkan).

Semua ini diimplementasikan menggunakan pencarian standar "mendalam".
2. Dari semua "rute" yang mungkin, satu dipilih untuk yang rasio

(Poin untuk angkutan + Poin untuk rute) / (Jumlah gerakan yang dihabiskan)

adalah yang terbesar.

Algoritma itu ternyata agak lambat, untuk setiap kartu rute, itu "woolled" semua opsi yang mungkin selama sekitar satu setengah menit, sambil mengkonsumsi 3 gigabytes RAM.


Rute dan jalur yang paling menguntungkan bagi mereka

Hasil eksekusi algoritma kadang-kadang menghasilkan hasil yang sepenuhnya "tidak logis" di mata manusia. Misalnya, rute "London-Berlin" (7 poin), komputer menyarankan bangunan dengan cara ini: " London-Dieppe-Paris-Marseille-Roma-Palermo-Smyrna-Constantinople-Bukares-Budapest-Kiev-Warsawa-Berlin " (rata-rata 101 bergerak; 81 poin untuk hasil tangkapan yang dibangun).


Seperti kata kakek saya, seorang prajurit garis depan, "Dari Kiev melalui Penza ke Zhytomyr"

Setelah daftar rute yang paling "menguntungkan" terbentuk, Anda dapat melanjutkan ke tahap perhitungan selanjutnya.

Cari kota tersibuk


Terakhir kali, untuk setiap kota, jumlah rute yang dilibatkannya dihitung (sebagai stasiun terminal dan sebagai perantara). "Kemacetan" dianggap sebagai perbedaan antara jalur dari / ke kota dan jumlah rute.


Kota tersibuk


Kota-kota yang paling "bebas"

Saat menghitung kemacetan kota, hanya jumlah jarak yang mendekati kota yang diperhitungkan, jumlah trek dalam jarak tersebut (satu atau dua) diabaikan. Dengan demikian, angkanya lebih atau kurang relevan untuk permainan dua atau tiga. Yah ... tabel itu sendiri tidak membawa informasi yang berguna, kecuali bahwa mereka akan membantu Anda memilih kota mana untuk memulai konstruksi dengan semua hal lain dianggap sama. Jauh lebih penting adalah informasi di atas panggung.

Penangkapan tersibuk


Sebagai yang terakhir kali, rute "paling menguntungkan" dianalisis, penggunaan haul di dalamnya dihitung, terlepas dari arah gerakan (yaitu, gerakan seperti "London-Edinburgh" dan "Edinburgh-London" dianggap sebagai gerakan pada saat yang sama). drive over).


Garis tersibuk, mereka harus ditempati terlebih dahulu


Tur yang tidak digunakan untuk petunjuk arah mengemudi

Dalam komentar pada entri sebelumnya, pproger dan g000phy menulis bahwa untuk memenangkan permainan, 8 dan 6 gerbong harus digunakan. Seperti yang diharapkan, tautan 6-kereta Kiev-Budapest dan Palermo-Smyrna, serta jalan akses ke mereka, berada di puncak tabel “tersibuk”. Tanpa diduga, Stockholm-Petrograd berada di bawah peringkat Top-10. Tampaknya, keterpencilannya dari rute utama dan sejumlah besar gerbong yang harus dihabiskan untuk konstruksi memengaruhinya.


Peta panas. Semakin jauh dari hijau, semakin banyak panggung / kota ini. Putih menandai jalur yang tidak digunakan

Mengemudi prioritas tertinggi


Dalam komentar di posting sebelumnya , woozle menulis tentang haul kunci, yang jika tidak diambil , akan menyebabkan peningkatan konsumsi gerobak dan bergerak (contoh nyata adalah tangkapan Kharkov-Rostov untuk segmen timur).

Dalam proses pencarian untuk tangkapan ini, saya ingin mencari saran dari komunitas terkemuka.

Saya melihat algoritma pencarian sebagai berikut:

  • Jumlah gerakan yang diperlukan untuk pembangunan setiap rute dirangkum (ternyata standar tertentu).
  • Setiap tahap secara berurutan dikecualikan dari matriks jalur. Sekali lagi, jumlah pergerakan yang dihabiskan pada setiap rute dipertimbangkan.
  • "Pentingnya" setiap tahap dianggap sebagai perbedaan antara gerakan yang dihabiskan dengan tahap jauh dan standar.

Saat ini, ada dua opsi untuk "rute" yang tersedia untuk setiap rute:

  1. Rute dari titik A ke titik B dalam jumlah gerakan paling sedikit . Algoritme dijelaskan dalam artikel sebelumnya, hasil dari menghitung pentingnya diberikan di bawah ini:


    Daftar ini tidak menunjukkan Edinburgh-London (jika satu pemain membangun mobil pada tahap ini, yang kedua akan mengatur stasiun atau tetap dengan rute yang belum selesai). Pentingnya garis Kopenhagen-Essen, Stockholm-Kopenhagen dan Kharkov-Rostov juga jelas, tetapi yang lain dalam daftar diragukan ...
  2. Rute dari titik A ke titik B dengan rasio tertinggi "jumlah poin yang diterima / jumlah gerakan yang dihabiskan" . Untuk kasus ini, tangkapan kritis tidak dipertimbangkan karena dua alasan. Pertama, untuk waktu yang lama (90 rute * 46 rute * 1,5 menit untuk menghitung). Kedua, "rute" yang diletakkan dari rute memberikan "putaran" sedemikian rupa sehingga sebagian besar dari mereka tidak mungkin digunakan dalam permainan nyata.

Sebenarnya, pencarian untuk "kunci" pengangkut didasarkan pada serangkaian data primer (daftar rute yang dibangun secara logis). "Rute yang dibangun secara logis" ini tidak tersedia, tidak ada ide bagaimana menemukannya. Saya akan berterima kasih atas pemikiran dan saran.

Untuk dilanjutkan (stasiun, jalan terpanjang) mengikuti ...

Source: https://habr.com/ru/post/id439020/


All Articles