Підрахунок трикутників у загальних графах можна робити тривіально за час, і я думаю, що робити набагато швидше важко (посилання вітаються). А як щодо плоских графіків? Наступна пряма процедура показує, що це можна зробити за . Моє запитання двояке:
- Що таке посилання на цю процедуру?
- Чи можна зробити лінійним час?
З алгоритмічного підтвердження теореми планарного сепаратора Ліптона-Тарджана ми можемо, за часом лінійного розміру графа, знайти поділ вершин графа на три множини таким чином, що немає ребер з однією кінцевою точкою в а інший у , має розмір, обмежений і обидва мають розміри, які верхньо обмежені числа вершин. Зауважте, що будь-який трикутник на графіку повністю лежить всередині або повністю всередині або використовує принаймні одну вершину з двома іншими вершинами з або обидві з . Таким чином, достатньо порахувати кількість трикутників у графі на та сусідів у (і аналогічно для ). Зауважте, що та його -суперечки індукують -більший плоский графік (згаданий графік є підграфом плоского графіка діаметром ). Таким чином, підрахунок кількості трикутників у такому графіку можна здійснити безпосередньо за допомогою динамічного програмування або застосуванням теореми Courcelle (я точно знаю, що така версія підрахунку існує в світі журналів Ельберфельда та ін., І я гадаю, що вона також існує у лінійному часовому світі), оскільки формування непрямого трикутника є an і оскільки розкладання дерева з обмеженою шириною легко отримати з вбудованого -усього плоского графа.
Таким чином ми звели проблему до пари задач, кожна з яких є постійною дробою меншою за рахунок лінійної процедури часу.
Зауважте, що процедуру можна розширити, щоб знайти кількість примірників будь-якого фіксованого підключеного графа всередині вхідного графіка за час .