Wpis z mikrobloga

#ai #programowanie #informatyka #matematyka #programista15k #konieceldorado #chatgpt

Mamy zbiór kilku cyfr np. od 1 do 8.

[1,2,3,4,5,6,7,8]
Teraz wprowadźmy pojęcie koszyka. Koszyk to zbiór kilku powyższych unikalnych cyfr. Może zawierać minimum dwie cyfry, maksymalnie pięć.

Na przykład $koszyk = [1,5,7]; $koszyk = [8,5,4,2,7]; $koszyk = [6,7]; itp.

A teraz wprowadźmy pojęcie zbioru. Zbiór to jeden lub więcej koszyków, które zawierają łącznie wszystkie cyfr bez powtórzeń.

Np. jeden zbiór może zawierać trzy koszyki, pierwszy koszyk z 1, 2, 3, drugi koszyk z 4, 5, 6 oraz trzeci 7 i 8.

$zbior = [[1,2,3],[4,5,6],[7,8]]; albo
$zbior = [[1,4,5,6],[2,3,7,8]]; itp.

Ważne jest, aby w zbiorze znalazły się wszystkie cyfry.

Zadanie polega na tym, aby utworzyć wszystkie możliwe kombinacje takich zbiorów.

Jeszcze nie znalazłem AI, która rozwiązałaby poprawnie to zdanie.
  • 14
  • Odpowiedz
@Serghio: Zaraz przyjdzie jakiś #programista15k i powie, że takich rzeczy nie używa się w praktyce (bo przecież on nigdy nic takiego nie zrobił, więc to oznacza, że nikt inny na świecie też nie robi takich rzeczy), więc to jest bez sensu i się nie znasz.
  • Odpowiedz
@Serghio: bing mi odpowiedzial. Może źle zadajesz pytanie?

Rozumiem, że chcesz zobaczyć przykładowe rozwiązania dla problemu generowania zbiorów koszyków. Chociaż nie mogę bezpośrednio wykonać kodu, mogę przedstawić przykładowe rozwiązania w formie pseudokodu lub opisu.

Przykładowe rozwiązania dla zbiorów koszyków, które zawierają wszystkie cyfry od 1 do 8 bez powtórzeń, mogą wyglądać następująco:

Zbiór zawierający dwa koszyki:
Koszyk 1: [1, 2, 3, 4]
Koszyk 2: [5, 6, 7, 8]

Zbiór
  • Odpowiedz
via Android
  • 1
@GeDox próbowałem na różne sposoby zadać pytanie stosując różne poziomy abstrakcji, pytając o przykładowy kod w różnych językach programowania, niestety bez skutku

Odpowiedź Bing jest śmieszna. Napisał że trzeba zastosować algorytm rekurencyjny. No właśnie cały problem w tym, żeby AI taki algorytm napisał. ChatGTP był najbliżej, ale po analizowaniu kodu i testach znajduje cięgle błędy.
  • Odpowiedz
via Android
  • 2
@NieBendePrasowac

Tak, dokładnie jeden raz.

A dla tych co uważają, że to zadanie nie ma zastosowania. Jest to uproszczona wersja, jednego ze składowych następującego "problemu".

Mamy kilka produktów w różnych cenach. W sklepie istnieje promocja tzw. wielorabaty, drugi produkt 20% taniej, trzeci 50%, czwarty 75%, piaty 99%. Mamy do kupienia 8 konkretnych produktów w różnych cenach. Zadanie polega na znalezieniu najbardziej optymalnego zestawu koszyków, zamówień, aby otrzymać największy rabat.

Jedynym ze składowych
  • Odpowiedz
No właśnie cały problem w tym, żeby AI taki algorytm napisał.


@Serghio: mi wysłał, ale nie testowałem go, nawet nie przeglądałem kodu, bo na tel się nie da tego czytać

Przepraszam, ale nie mogę bezpośrednio wykonać kodu. Jednakże, mogę pomóc Ci zrozumieć, jak taki kod mógłby być napisany i jakie kroki należałoby podjąć, aby rozwiązać problem kombinatoryczny, który przedstawiłeś.

Zadanie polega na znalezieniu wszystkich możliwych zbiorów koszyków, które zawierają wszystkie cyfry
  • Odpowiedz
@Serghio: To zadanie jest przykładem problemu kombinatorycznego, który można rozwiązać za pomocą algorytmu generującego wszystkie możliwe kombinacje koszyków, a następnie wybierającego te, które razem tworzą pełny zbiór cyfr od 1 do 8 bez powtórzeń. Poniżej znajdziesz przykładowy kod w języku PHP, który wykonuje to zadanie:

<?php
function generateCombinations($set, $minSize, $maxSize) {
$combinations = [];
$subset = [];

function backtrack($start, $set, $subset, &$combinations, $minSize, $maxSize) {
if (count($subset) >= $minSize) {
$combinations[]
  • Odpowiedz
  • 1
@GeDox: Dziękuje za pomoc, ale niepotrzebnie. Generalnie problem udało mi się rozwiązać, natomiast chodziło mi głównie o zwrócenie uwagi na to, że AI, przynajmniej to powszechnie dostępne jeszcze daleko do zastępowania programistów, gdyż trzeba poświęcić bardzo dużo uwagi na poprawę, czy optymalizację kodu. Po testach i różnego sposobu zadawania pytań - musiałem pytać AI w sposób mniej skomplikowany, bardziej nastawić się na pojedyncze zapytania, dopiero później poskładać to w całość. Typu
  • Odpowiedz
@groman43: Problem jest też pokrewny do klasycznego problemu pokrycia zbioru (set cover problem). W problemie pokrycia zbioru mamy spośród podanych zbiorów znaleźć taki najmniejszy zbiór zbiorów którego suma (unia) zawiera wszystkie wymagane elementy. Problem wydaje się teoretyczny lub typowy na leetcode a tymczasem ja takowy solver napisałem jakoś 10 lat temu i do dzisiaj działa on w naszym kodzie produkcyjnym - służy do wyboru serwerów w klastrze, które trzeba odpytać aby
  • Odpowiedz
i takie AI pozostanie. Bo AI nie domyśli się co chce klient.


@GeDox: przede wszystkim AI nie rozwiąże samo czegoś, co już nie zostało rozwiązane i wtłoczone mu do "głowy", więc martwić się o to, że "zastąpi programistów" to jak twierdzić, że to samo zrobił Stack Overflow w 2008, teraz po prostu będziemy mieć trochę mniej do szukania samodzielnie, ale to tyle.
  • Odpowiedz