Wpis z mikrobloga

Mam zbiór cyfr i zestaw wag, chcę dopasować cyfry do wag w taki sposób, żeby średnia lub suma ważona wynosiła ileś tam. Teraz to robię tak, że układam te cyfry w jakieś pierwsze ułożenie i sprawdzam średnią, potem zamieniam miejscami pierwszą cyfrę z drugą, jeśli średnia jest bliższa oczekiwanej to tak zostawiam, jeśli nie to cofam. Potem sprawdzam tak po kolei wszystkie cyfry.

Jak znaleźć takie liczby w szybszy sposób? Takich porównań i sumowań jest dużo, do tego czasem suma ważona liczb powstałej z danego ułożenia cyfr różni się o 1 od oczekiwanej i żeby to poprawić trzeba zamienić miejscami więcej niż 2 cyfry, więc mój algorytm się wykłada, wtedy losuję nowe ułożenie cyfr i robię wszystko od nowa, problem w tym że tu wiele zależy od szczęścia, jak dobrze pójdzie to liczba szybko się znajdzie, a jeśli nie to takich losowań może być sporo.

Może da się do tego użyć sztucznej inteligencji, albo sieci neuronowej? W tym akurat moja wiedza jest nikła.

#programowanie #algorytmy #naukaprogramowania #machinelearning #deeplearning #siecineuronowe #sztucznainteligencja
  • 9
chcę dopasować cyfry do wag w taki sposób, żeby średnia lub suma ważona wynosiła ileś tam


A jakbys te dane ukladal w pary gdzie masz wartosc oczekiwana dla sredniej wazonej, a dopiero dla reszty losowal? ( ͡° ͜ʖ ͡°)
@Goglez: Ja bym to zrobił w oparciu o symulowane wyżarzanie. Jest też potencjał na optymalizację - można łatwo kolejne średnie ważone obliczać w czasie O(1), nie trzeba za każdym razem całości przeliczać. Minimalizowaną funkcją byłaby różnica pomiędzy docelową a aktualną średnią ważoną (wartość bezwzględna tej różnicy). Jeżeli chcesz, to napiszę Ci taki program w miarę tanio. Mam doświadczenie w pomaganiu studentom w zaliczaniu takich rzeczy.
oże da się do tego użyć sztucznej inteligencji, albo sieci neuronowej? W tym akurat moja wiedza jest nikła.


@Goglez: Nie sądzę, to zwykły algorytm optymalizacyjny. I np. genetyczne algorytmy dały by tu radę.

Do czego Ci to jest? Taka zabawa, zadanie domowe, czy jednak coś poważniejszego?

Bo dla rozrywki mógłbym pomyśleć. (jeżeli to nie zadanie domowe)
Jednak takie zamienianie nie jest aż tak potrzebne bez kłopotu możesz to zoptymalizować idąc "od
@Goglez: to co robisz to typowy algorytm przeszukiwana przestrzeni rozwiązań. Wszelkie optymalizacje, czyli wspomniane już przez kogoś wyżarzanie albo algorytm genetyczny dadzą radę. Symulowane wyżarzanie w zasadzie dokładnie to co robi twój algorytm, tylko tam wybór czy zostawiamy zmianę pozycji zależy od wzoru: na początku często wybieramy nawet mniej optymalne rozwiązania (przeszukiwanie przestrzeni) a wraz z czasem jesteśmy bardziej wybredni i wybieramy częsciej te, które są bliżej średniej