open source – Travelling Salesman Problem simulation

I apologise if I’m wrong to ask this here but I couldn’t think of a better forum.

I am learning about the travelling sales man algorithm and wish to implement a demonstration.

My initial thought was to develop it in a webpage but as I am natively a PHP developer, I feel it might not be the best solution to use javascript/jQuery to animate characters from point to point through a graph.

I wonder if there is an open-source 2D game engine I can use and write PHP/javascript logic for my algorithm implementation?

boot – MSI Bravo 17 and Linux compatibility

After received my new laptop bought to code under linux Ubuntu, i discovered that this product based on AMD Ryzen 4800H (Navi 14 Mobile) VEGA 10 with Radeon RX 5500M is unable to work with ubuntu !

I am totally disappointed cause i bought it to work on linux but all my tries with the forllowing distributions failed :

  • ubuntu 20.04 desktop stucks on black screen after installation reboot.
  • Linux Mint works with nomodeset but a permanent banner indicating me missing graphic accelerator push me to try AMD Radeon software for Ubuntu 20.04 – since installation – i completely lost any shell command.

Only Windows works, Grrrrrrrrrrrrrr…

Please help if you have any ideas

Why is the winding number of a surface locally constant?

Given a smooth closed surface $Ssubseteqmathbb R^3$, we can define its winding number around some point $pinmathbb R^3setminus S$ as $$omega_S(p):=frac1{4pi}int_Sfrac{langle x-p,nu_S(x)rangle}{|x-p|^3}dS(x),$$ where $nu_Scolon Stomathbb S^2$ is the unit normal vector field of $S$. I would like to show that $omega_Scolonmathbb R^3setminus Stomathbb R$ is locally constant (which I think to be true based on the properties of the standard winding number $omega_gamma(p)=frac1{2pi}int_gammafrac{dz}{z-p}$ of a loop $gammacolon Itomathbb C$ around a point $pinmathbb Csetminusgamma$).

I read somewhere (can’t find it anymore) that my claim is trivial, because the “solid angle differential” $$dOmega_p=frac{langle x-p,nu_S(x)rangle}{|x-p|^3}dS$$ is closed. However, if $dOmega_p$ was closed, then Stokes’ theorem tells me that $$omega_S(p)=int_SdOmega_p=int_{partial V}dOmega_p=int_Vd(dOmega_p)=0,$$ even if $S$ encloses $pinmathbb R^3setminus S$.

My next attempt was to show that all partial derivatives of $omega_S$ vanish everywhere. And now, I’m stuck at
$$frac{partialomega_S}{partial p_i}(p)=frac1{4pi}int_Sbiggl(frac3{|x-p|^2}frac{langle x-p,nu_S(x)rangle}{|x-p|^3}(x_i-p_i)-frac1{|x-p|^3}nu_{S,i}(x)biggr)dS(x),$$ which doesn’t look like it will get me anywhere.

Is $omega_S$ actually locally constant? And how would I go about showing it?

linux networking – Add IP addresses to systemd-network besides netplan

On an Ubuntu 20.04 server, netplan is used to configure the network. It can configure ordinary static IP addresses but I need additional IPv6 addresses with preferred_lft=0. Netplan can’t do that (there’s an open bug for that). So I found out that it actually goes like this:

  • Netplan reads its own limited config and transforms it into a config for the more powerful systemd-network.
  • systemd-network probably passes on its data to things like the ip command when a network device appears.
  • The network device then applies the actual configuration. Down here everything is possible.

If netplan can’t help me, I tried to move on to systemd. Since I don’t want to remove the apparently widely used and highly praised netplan entirely, I just need to add my additional addresses besides the basic netplan config.

I tried to create the file /etc/systemd/network/web-ipv6.conf with this content:

(Match)
Name=ens33 (this is the name from the existing netplan file)

(Address)
Address=fd9e:21a7:a92c:2323::2/64
PreferredLifetime=0

The address fd9e:21a7:a92c:2323::1 is configured statically via netplan. In this demo it’s a local address, in reality it’s my server’s main IPv6 address. Additional addresses have a different interface value, like this …::2.

I guess I have to apply my config with systemctl restart systemd-networkd but I’m not sure. The log says things I’d consider a success. But the new IPv6 address …::2 doesn’t show up in ip addr.

In the man page for systemd.network I’ve read that only a single file for a (Match) will be used. I clearly have two files now: one from netplan (/run/systemd/network/10-netplan-ens33.network) and my other one. So this doesn’t seem to work. But I don’t want to edit netplan’s file as it will surely be overwritten sometime.

How should I continue with this? I’d like to have a separate and persistent file that only adds my additional addresses. I’m going to manage that file in a custom script.

Should I go back to ifupdown or what it was in the old days? In a previous server setup I use a file named /etc/network/if-up.d/dynamic6 that contains all the ip addr add ... dev ... preferred_lft 0 commands. From what I’ve seen this is today considered deprecated.