Feladat: I.375 Korcsoport: - Nehézségi fok: -
Füzet: 2015/április, 231 - 232. oldal  PDF  |  MathML 

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Készítsük el a közlekedési csomópont probléma mechanikai modelljének számítógépes változatát.
A probléma lényege: adott három város, egy közös közlekedési csomóponthoz szeretnének utat építeni úgy, hogy az összköltség minimális legyen. Az eredeti probléma mechanikai interpretációját Pólya György adta, amelynek lényege: helyezzünk el a három pontban egy-egy csigát, azokon vessünk át egy-egy kötelet, amelyet fogjunk össze egy közös pontban, a túlsó végükre pedig egy-egy azonos nagyságú súlyt erősítsünk. A rendszer egyensúlyi állapota ‐ amikor a közös pontban ható erők kioltják egymást ‐ adja meg a csomópont helyét. (Pólya György: Indukció és analógia, Gondolat, 1988, 165‐171.)
A fenti rendszert általánosítsuk n pontra. A megjelenítést egyszerűsítsük azzal, hogy a csigákat a pontokat tartalmazó síkon egy adott helyen vágott lyukkal helyettesítjük. A fonalakat egy közös pontból a lyukakhoz vezetett szakaszokkal ábrázoljuk. (A közös pont a lyukon nem haladhat át.) A modell 3 pontra itt tekinthető meg: http://demonstrations.wolfram.com/PolyasMechanicalModelForTheFermatPoint/.
A számítógépes modell a következőképpen legyen használható:

n értékét a 3 és 8 között szabadon megadjuk;
a lyukak helyét a felületen megadhatjuk, de véletlenszerű elhelyezést is választhatunk;
a program az egyensúlyi helyzet felé lépésenként halad az alábbiak szerint:
a.a felületet felülnézetből látjuk;
b.a közös pontra ható erőket a belőle induló, fonálirányban mutató egységvektorokkal szemléltetjük;
c.léptetéskor az összeköttetési pontot a program a fenti egységvektorok eredőjének irányába mozdítja.

A megoldást bármely programozási eszközzel elkészíthetjük. Ügyeljünk a szép megjelenésre és a könnyű használhatóságra.
Beküldendő egy tömörített (i375.zip) állományban a megoldás leírása (i375.pdf), amely tartalmazza megoldás lényeges lépéseinek ismertetését; valamint a program forrásnyelvi változata és a fordításához és működéséhez szükséges fájlok.